簡體   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