[英]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.