2015-05-08 10 views
6

Ich arbeite durch "The Docker Book", bin in Kapitel 3, Installieren und Ausführen eines Ubuntu-Containers. Ich bin auf Windows 7.1, mit Boot2Docker.Boot2docker/Windows: Bash auf Ubuntu-Container kann nicht ausgeführt werden

Hier ist, was passiert, wenn ich versuche, es zu laufen (dies ist der zweite Versuch ist, so dass es bereits eine lokale Kopie des Bildes hat):

$ 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 

Es beschwert über den Mangel an C:/Program Files (x86)/Git/bin/bash, aber ich habe sicher, dass auf meinem Rechner:

$ 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 

Irgendwelche Gedanken?

+0

Wenn es um bash beschwert, es ist die bash in der Ubuntu Bild, nicht auf Ihrem Computer. Vielleicht sollten Sie erneut das Ubuntu-Image herunterladen, ich habe gerade auf Windows getestet, wenn ich den gleichen Befehl wie Sie, bekomme ich eine Eingabeaufforderung innerhalb des Containers, keine Fehlermeldung – user2915097

Antwort

23

Dies funktioniert für mich:

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

Die doppelte // die Konvertierung vermeidet [1]

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

+0

Danke danke, danke, es funktioniert jetzt. Normalerweise benutze ich Cygwin, daher sind MinGW-Eigenheiten mir noch fremd. Diese Verbindung ist sehr nützlich. – neilw

0

Es sieht aus wie Shell Ihren Hosts automatisch /bin/bash-C:/Program Files (x86)/Git/bin/bash erweitert wird, bevor es zu Docker übergeben wird, die nicht so offensichtlich korrigieren ist, gibt es keine C:/Program Files (x86)/Git/bin/bash im Innern des Behälters Ubuntu.

Behebt die Verwendung von Zitaten das Problem? Zum Beispiel:

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

in boot2docker 'docker run -it ubuntu/bin/bash 'funktioniert gut, mit dieser genauen Syntax – user2915097

+0

Ja, sollte es zumindest (Zitate haben keine Wirkung BTW). Wenn ich docker inspect auf dem Container, den ich gerade erstellt habe, ist eine Zeile "Pfad": "C:/Programme (x86)/Git/bin/bash". Wenn Sie es ausführen und es funktioniert, was gibt Inspizieren für den Pfad? – neilw

2

Ich habe gerade das gleiche Problem hatte, aber

docker run -t -i ubuntu 

öffnet eine Shell im Bild oben.

+0

Das funktioniert auch bei mir, was gut zu wissen ist. Ich benötige jedoch weiterhin die ursprüngliche Funktionalität, um ordnungsgemäß zu funktionieren, wenn ich einen Container mit einem bestimmten Befehl starten möchte. – neilw

Verwandte Themen