有人能教我如何在 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
由于在 Windows 上使用默认配置运行 Docker,因此需要winpty
前缀。您可以在安装过程中更改此行为。在 Windows 10 上更改它可能是一个好主意,因为改进的命令行没有此功能旨在克服的限制。