Docker Windows - 在bash位置查找Ubuntu命令

时间:2016-03-12 00:25:12

标签: windows ubuntu docker

Docker新手。下载的DockerToolbox-1.10.2.exe并安装在Windows 7上,似乎运行正常。

在以下位置尝试hello world教程:

Hello World at Docker.com

当我运行以下命令时

$ docker run ubuntu /bin/echo 'Hello world'

似乎下载了Ubuntu映像:

Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5a132a7e7af1: Pull complete
fd2731e4c50c: Pull complete
28a2f68d1120: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:4e85ebe01d056b43955250bbac22bdb8734271122e3c78d21e55ee235fc6802d
Status: Downloaded newer image for ubuntu:latest

但后来我收到以下错误消息:

exec: "C:/devel/Git/bin/echo": stat C:/devel/Git/bin/echo: no such file or directory
docker: Error response from daemon: Container command not found or does not exist

该路径是我在Windows中运行bash.exe以运行docker的地方。我确定这一定是配置问题,但我不确定从这里开始。

3 个答案:

答案 0 :(得分:1)

你可能有一个PATH首先有c:\devel\Git,然后是其余的,使shell调用错误的回声。
尝试更改该顺序(set PATH=...;c:\devel\Git)。

确保首先连接到您的机器:

docker-machine ssh

然后你可以再试一次你的docker run命令

答案 1 :(得分:1)

简答

使用/转义命令中的unix样式路径。以下作品。

$ docker run ubuntu //bin/echo 'Hello world'
Hello world

更长的答案

此行为背后的原因似乎是Git Bash(基于MinGW64 / MSYS2)尝试进行智能路径转换找到unix风格的路径。我只找到了转换的源代码(我相信here),但没有文档。我在此发现的唯一文档是MSYS1 path conversion,它应该是类似的。

让我通过屏幕截图引用MSYS1 path conversion。从示例中可以看出,像/bar这样的“unix样式”路径将被重写为MSYS2根目录的相对路径(即Git Bash情况下的Git目录),而像转义路径一样//foobar按原样传递。

MSYS1 path conversion examples screenshot

答案 2 :(得分:0)

尝试docker run ubuntu //bin/echo 'Hello world'