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

qin*_*jin 11 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
Run Code Online (Sandbox Code Playgroud)

我收到错误:

docker:来自守护进程的错误响应:create $ PWD:卷名无效:
"$ PWD"包含本地卷名的无效字符,仅"[a-zA-Z0-9] [a-zA-Z0-9 _.-] " 被允许.

请参阅'docker run --help'.

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

我试过,但我无法解决它.我该怎么做?

Nav*_*G C 25

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

因此,请尝试以下命令,这可能会对您有所帮助.

docker run -it --rm --name my-running-script -v "%cd%":/usr/src/myapp -w /usr/src/myapp python:2 python test.py
Run Code Online (Sandbox Code Playgroud)

  • 假设是 CMD 窗口而不是 PowerShell 窗口? (2认同)
  • 这对我有用。看来该指南 http://localhost/tutorial/using-bind-mounts/ 是为 Linux 编写的。 (2认同)
  • “%cd%”救了我的命。哈哈。 (2认同)

qin*_*jin 6

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

如果您在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> ...
Run Code Online (Sandbox Code Playgroud)

在Windows上,使用以下命令安装目录

docker run -v /c/Users/<path>:/<container path> ...`
Run Code Online (Sandbox Code Playgroud)

我的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
Run Code Online (Sandbox Code Playgroud)

使用'/ 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
Run Code Online (Sandbox Code Playgroud)

  • 文档链接已损坏,*“抱歉,我们找不到该页面”*。 (2认同)

Bri*_*ian 6

如果您在 Windows 上使用 bash 命令行,您只需在 $ PWD 之前放置一个 / 即可。就像是:

docker run -v /$PWD:/src
Run Code Online (Sandbox Code Playgroud)


Har*_*val 6

这在Powershell 中对我有用

docker run -p 8080:3000 -v ${pwd}:/var/www -w "/var/www" node npm start
Run Code Online (Sandbox Code Playgroud)