通过Windows控制台使用Docker:包含本地卷名

时间:2016-03-03 09:21:25

标签: python windows docker

我尝试通过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运行相同的代码时,它运行良好。

我试过,但我无法解决。我该怎么办?

5 个答案:

答案 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}帮了我大忙。