2015-05-08 23 views
6

Sto lavorando attraverso "The Docker Book", sono sul capitolo 3, l'installazione e l'esecuzione di un contenitore Ubuntu. Sono su Windows 7.1, utilizzando Boot2Docker.Boot2docker/Windows: impossibile eseguire bash sul contenitore Ubuntu

Ecco cosa succede quando provo a farlo funzionare (questo è il secondo tentativo, quindi ha già una copia locale dell'immagine):

$ 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 

Stato:

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

Si lamenta per la mancanza di C:/Program Files (x86)/Git/bin/bash, ma certamente ho che sulla mia macchina:

$ 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 

qualche idea?

+0

Quando si lamenta bash, è il bash all'interno di Ubuntu immagine, non sul tuo computer. Forse dovresti scaricare di nuovo l'immagine di Ubuntu, ho appena provato su Windows, quando invio lo stesso comando come te, ricevo un prompt all'interno del contenitore, non un messaggio di errore – user2915097

risposta

23

questo funziona per me:

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

La doppia // evita la conversione [1]

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

+0

Grazie grazie grazie, sta funzionando ora. Di solito uso Cygwin, quindi le idiosincrasie MinGW mi sono ancora estranee. Quel collegamento è molto utile. – neilw

0

Sembra guscio del padrone di casa si sta espandendo automaticamente /bin/bash-C:/Program Files (x86)/Git/bin/bash prima di essere passato a Docker, che non è corretto come, ovviamente, non v'è un C:/Program Files (x86)/Git/bin/bash all'interno del contenitore di Ubuntu.

L'uso di virgolette risolve il problema? Per esempio:

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

in boot2docker 'finestra mobile run -it ubuntu/bin/bash 'funziona bene, con questa sintassi esatta – user2915097

+0

Sì, dovrebbe almeno (le virgolette non hanno effetto btw). Quando eseguo il controllo docker sul container che ho appena creato, una riga è "Path": "C:/Programmi (x86)/Git/bin/bash". Quando lo esegui e funziona, cosa controlla dare per il percorso? – neilw

2

Ho appena avuto lo stesso problema, ma

docker run -t -i ubuntu 

apre una shell all'interno dell'immagine.

+0

Questo funziona anche per me, che è bello sapere. Tuttavia, ho ancora bisogno che la funzionalità originale funzioni correttamente se voglio dare il via ad un contenitore con un comando specifico. – neilw

Problemi correlati