在Windows 10上的Docker中将当前目录作为卷挂载

我正在通过Hyper-V在Windows 10" title="Windows 10">Windows 10上使用Docker

1.12.5版本,并想在当前路径中将容器可执行文件用作命令。我构建了运行良好的Docker映像,但是挂载当前路径时遇到了问题。这个想法是创建一个别名并执行一个docker

run --rm [...]命令,以便可以在当前目录的系统范围内使用它。

我有一个带文件夹“ test”的驱动器E,在其中有一个名为“

Windows主机上的文件夹”的文件夹,以显示该命令正在运行。Dockerfile创建目录/data,将其定义为VOLUME和WORKDIR。

E:\test在PowerShell中的当前目录和绝对路径执行多克尔命令,我可以看到的内容E:\test

PS E:\test> docker run --rm -it -v E:\test:/data mirkohaaser/docker-clitools ls -la

total 0

drwxr-xr-x 2 root root 0 Jan 4 11:45 .

drwxr-xr-x 2 root root 0 Jan 5 12:17 folder on windows host

我想使用当前目录而不是绝对符号。由于不同的错误消息,我无法在卷中使用pwd:

尝试使用($ pwd)

PS E:\test> docker run --rm -it -v ($pwd):/data mirkohaaser/docker-clitools ls -la

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: ":/data" is not a valid repository/tag.

See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

尝试使用/($ pwd)

PS E:\test> docker run --rm -it -v /($pwd):/data mirkohaaser/docker-clitools ls -la

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: "E:\\test" is not a valid repository/tag.

See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

尝试\´pwd \´

PS E:\test> docker run --rm -it -v ´$pwd´:/data mirkohaaser/docker-clitools ls -la

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Invalid bind mount spec "´E:\\test´:/data": invalid mode: /data.

See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

尝试使用pwd

PS E:\test> docker run --rm -it -v `$pwd`:/data mirkohaaser/docker-clitools ls -la

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: create $pwd: "$pwd" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed.

See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

在Windows 10上的Docker中将当前目录作为卷挂载的正确语法是什么?

回答:

在Windows命令行(cmd)中,您可以像这样挂载当前目录:

docker run --rm -it -v %cd%:/usr/src/project gcc:4.9

在PowerShell中,您可以使用${PWD},它为您提供当前目录:

docker run --rm -it -v ${PWD}:/usr/src/project gcc:4.9

在Linux上:

docker run --rm -it -v $(pwd):/usr/src/project gcc:4.9

以下选项在PowerShell和Linux(至少是Ubuntu)上均可使用:

docker run --rm -it -v ${PWD}:/usr/src/project gcc:4.9

docker run --rm -it -v $(pwd):/usr/src/project gcc:4.9

以上是 在Windows 10上的Docker中将当前目录作为卷挂载 的全部内容, 来源链接: utcz.com/qa/419390.html

回到顶部