我尝试通过Windows控制台(Windows 10)使用Docker运行Python程序。
我让Windows控制台能够使用Docker Hello,World!。
但是当我跑步时:
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
我收到错误:
docker:来自守护程序的错误响应:create $ PWD:卷名无效:
“$ PWD”仅包含本地卷名的无效字符 “[a-zA-Z0-9] [a-zA-Z0-9 _.-]”是允许的。参见'docker run --help'。
通过Docker Quickstart Terminal运行相同的代码时,它运行良好。
我试过,但我无法解决。我该怎么办?
答案 0 :(得分:17)
我认为,在Windows中替换Linux命令$(pwd)
是"%cd%"
。
因此,请尝试以下可能对您有帮助的命令。
docker run -it --rm --name my-running-script -v "%cd%":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
答案 1 :(得分:6)
阅读文档: Manage data in containers
如果您在Mac或Windows上使用Docker Machine,您的Docker守护程序只能有限地访问您的OS X或Windows文件系统。 Docker Machine尝试自动共享您的/ Users(OS X)或C:\ Users(Windows)目录。
因此,您可以使用以下命令在OS X上安装文件或目录:
docker run -v /Users/<path>:/<container path> ...
在Windows上,使用以下命令安装目录:
docker run -v /c/Users/<path>:/<container path> ...`
我的Docker Machine在Windows上,所以不是像“$ PWD”那样:
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
使用'/ c / Users / your_name',如:
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
答案 2 :(得分:4)
如果在Windows上使用bash命令行,则只需在$ PWD之前放置/即可。像这样:
docker run -v /$PWD:/src
答案 3 :(得分:4)
这确实在 Powershell 中对我有用。
docker run -p 8080:3000 -v ${pwd}:/var/www -w "/var/www" node npm start
答案 4 :(得分:-1)
不知道您是否已经使用提供的解决方案对其进行了修复,但是我的解决方法是Windows无法读取手镯$(pwd)
。 ${pwd}
帮了我大忙。