简体   繁体   中英

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

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?

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

I've just had the same problem, but

docker run -t -i ubuntu

opens up a shell inside the image.

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"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM