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