关于python:通过Windows控制台使用Docker:包含本地卷名的无效字符

Using Docker via Windows console: includes invalid characters for a local volume name

我尝试通过Windows控制台(Windows10)在Docker上运行Python程序。

我已经使Windows控制台能够支持Docker Hello,World!。

但是当我跑步时:

1
 docker run -it --rm --name my-running-script -v"$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py

我得到错误:

docker: Error response from daemon: create $PWD: volume name invalid:
"$PWD" includes invalid characters for a local volume name, only
"[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed.

See 'docker run --help'.

通过Docker Quickstart Terminal运行相同的代码时,它运行良好。

我曾尝试过,但无法解决。 我该怎么做?


我认为,Windows中Linux命令$(pwd)的替换是"%cd%"

因此,请尝试使用以下命令可能会对您有所帮助。

1
docker run -it --rm --name my-running-script -v"%cd%":/usr/src/myapp -w /usr/src/myapp python:2 python test.py


阅读文档:管理容器中的数据

如果在Mac或Windows上使用Docker Machine,则Docker守护程序仅具有对OSX或Windows文件系统的有限访问权限。 Docker Machine尝试自动共享您的/ Users(OS X)或C: Users(Windows)目录。

因此,您可以使用以下方法在OSX上挂载文件或目录:

1
docker run -v /Users/<path>:/<container path> ...

在Windows上,使用以下命令挂载目录:

1
docker run -v /c/Users/<path>:/<container path> ...`

我的Docker机器在Windows上,所以不是'" $ PWD"',例如:

1
docker run -it --rm --name my-running-script -v"$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py

使用" / c / Users /您的名字",例如:

1
docker run -it --rm --name my-running-script -v /c/Users/cn_pa:/usr/src/myapp -w /usr/src/myapp python:2 python test.py


不知道您是否已经使用提供的解决方案对其进行了修复,但是我的解决方法是Windows无法读取手镯$(pwd)${pwd}帮了我大忙。