繁体   English   中英

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

[英]Using Docker via Windows console: includes invalid characters $PWD for a local volume name

我尝试通过 Windows 控制台(Windows 10)使用 Docker 运行 Python 程序。

我已经让 Windows 控制台能够运行 Docker你好,世界! .

但是当我运行时:

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

我得到错误:

docker:来自守护进程的错误响应:创建 $PWD:卷名无效:
“$PWD”包含本地卷名的无效字符,仅允许使用“[a-zA-Z0-9][a-zA-Z0-9_.-]”。

请参阅“docker run --help”。

通过 Docker 快速启动终端运行相同的代码时,它运行良好。

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

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

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

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 守护程序只能有限地访问您的 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 机器在 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

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

docker run -v /$PWD:/src

这在Powershell中对我有用。

docker run -p 8080:3000 -v ${pwd}:/var/www -w "/var/www" node npm start

在 Windows 10 上,使用 Cmder (cmd.exe) 我在此步骤的入门教程中遇到此错误:第 6 部分:使用绑定挂载

启动开发模式容器

如果您使用的是 PowerShell,请使用以下命令:

 PS> docker run -dp 3000:3000 `
     -w /app -v "$(pwd):/app" `
     node:12-alpine `
     sh -c "yarn install && yarn run dev"

但是,如果您使用的是命令提示符,请使用以下命令:

docker run -dp 3000:3000 ^
-w /app -v "%cd%":/app ^
node:12-alpine ^
sh -c "yarn install && yarn run dev"

不知道您是否已经使用已经提供的解决方案修复了它,但我的解决方法是 windows 不读取手镯$(pwd) ${pwd}对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM