Boot2docker/Windows:不能在 Ubuntu 容器上 运行 bash

Boot2docker/Windows: can't run bash on Ubuntu container

我正在学习 "The Docker Book",正在学习第 3 章,安装和 运行 安装 Ubuntu 容器。我在 Windows 7.1,使用 Boot2Docker。

以下是我尝试 运行 它时发生的情况(这是第二次尝试,因此它已经有图像的本地副本):

$ docker run -i -t ubuntu /bin/bash
exec: "C:/Program Files (x86)/Git/bin/bash": stat C:/Program Files (x86)/Git/bin/bash: no such file or directory
FATA[0000] Error response from daemon: Cannot start container 5e985b0b101bb9584ea3e40355089a54d1fba29655d5a1e0900c9b32c4f7e4c4: [8] System error: exec: "C:/Program Files (x86)/Git/bin/bash": stat C:/Program Files (x86)/Git/bin/bash: no such file or directory

状态:

$ docker ps -a
CONTAINER ID    IMAGE           COMMAND                CREATED            STATUS              PORTS   NAMES
5e985b0b101b    ubuntu:latest   "C:/Program Files (x   21 minutes ago     loving_mayer

它抱怨缺少 C:/Program Files (x86)/Git/bin/bash,但我的机器上确实有它:

$ ls -l "c:/Program Files (x86)/Git/bin/bash"
-rwxr-xr-x    1 neilw    Administ   598016 May  4 09:27 c:/Program Files (x86)/Git/bin/bash

有什么想法吗?

您的主机的 shell 似乎在传递给 Docker 之前自动将 /bin/bash 扩展为 C:/Program Files (x86)/Git/bin/bash,这显然是不正确的t Ubuntu 容器内的 C:/Program Files (x86)/Git/bin/bash

使用引号可以解决问题吗?例如:

docker run -i -t ubuntu "/bin/bash"

我刚遇到同样的问题,但是

docker run -t -i ubuntu

在图像中打开 shell。

这对我有用:

docker run -t -i ubuntu //bin/bash

double // 避免转换[1]

[1] http://www.mingw.org/wiki/Posix_path_conversion