有人可以教我如何在 Windows 10 中執行 docker 映像嗎?請不要告訴我閱讀教程,我這樣問是有原因的。
我已經安裝了 Windows 版的 docker。所有教程都說“使用 docker Quickstar 終端”。嗯,那不存在。只有 docker 桌面。
我可以在任何終端機中執行“docker ps”,例如 Git bash 或 Windows 終端機(命令提示字元)。不過我想運行這個
docker run -it -p 4567:4567 -v 'pwd':/work udacity/controls_kit:latest
如果我在 Git bash 上執行此操作,則會收到以下錯誤:
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
如果我在命令提示字元下執行此操作,我會得到
docker: Error response from daemon: create 'pwd': "'pwd'" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.
在 Windows 10 中執行容器映像的正確方法是什麼?
答案1
很近!
您正在嘗試評估該pwd
命令並將其結果用作 Docker 呼叫的一部分。完成了反引號符號(也稱為重音)。在美式鍵盤上Tab,您可以使用 旁邊的按鈕輸入它們1。目前您(錯誤)使用單引號,它用於引用常規字串。
理想情況下,您應該使用$(pwd)
而不是`pwd`
.它做同樣的事情,但嵌套時更容易預測,並且更難將其與其他東西混淆。
# should work:
winpty docker run -it -p 4567:4567 -v `pwd`:/work udacity/controls_kit:latest
# even better:
winpty docker run -it -p 4567:4567 -v $(pwd):/work udacity/controls_kit:latest
winpty
由於使用預設配置在 Windows 上執行 Docker,因此您需要前綴。您可以在安裝過程中變更此行為。在 Windows 10 上更改它可能是一個好主意,因為改進的命令列沒有此功能旨在克服的限制。