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

折月煮酒 提交于 2019-12-03 10:09:04

问题


I'm working through "The Docker Book", am on chapter 3, installing and running an Ubuntu container. I'm on Windows 7.1, using Boot2Docker.

Here's what happens when I try to run it (this is the second attempt, so it already has a local copy of the image):

$ 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

Status:

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

It's complaining about lack of C:/Program Files (x86)/Git/bin/bash, but I certainly have that on my machine:

$ 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

Any thoughts?


回答1:


This works for me:

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

The double // avoids the conversion[1]

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




回答2:


I've just had the same problem, but

docker run -t -i ubuntu

opens up a shell inside the image.




回答3:


It looks like your host's shell is automatically expanding /bin/bash to C:/Program Files (x86)/Git/bin/bash before it is passed to Docker, which isn't correct as obviously there isn't a C:/Program Files (x86)/Git/bin/bash inside the Ubuntu container.

Does using quotes fix the problem? For example:

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


来源:https://stackoverflow.com/questions/30132231/boot2docker-windows-cant-run-bash-on-ubuntu-container

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!