2015-04-22 11 views
5

Sto provando a montare un volume host su un contenitore Docker per MongoDB. Il Dockerfile contiene quanto segue.Boot2Docker installa il volume host per esternalizzare i dati usando Windows

# Create the MongoDB data directory 
RUN mkdir -p /data/db 
# Identify mount point 
VOLUME /data/db 

-> L'immagine di finestra mobile ha un nome chiamato mongo.

Ma quando provo ad avviare l'immagine e montare una cartella locale Windows utilizzando:

finestra mobile run -d -v/c/Users/310.145.787/Desktop/mongo:/data/db mongo

ricevo un messaggio di errore che dice:

valore non valido "C: \ Users \ 310.145.787 \ Desktop \ mongo; C: \ Program Files (x86) \ Git \ data \ db" per la bandiera - v: \ Users \ 310145787 \ Desktop \ mongo; C: \ Program Files (x86) \ Git \ data \ db è non un percorso assoluto

ho controllato con boot2docker ssh se il percorso è accessibile e sembra ok. [email protected]:/c/Users/310145787/Desktop/mongo

Qualche indizio di cosa sta succedendo qui? O cosa mi manca?

Utilizzando Boot2Docker 1.6, il Dockerfile can be found here

+0

'VOLUME/data/db' è per contenitore del volume di dati. Se stai montando un volume host, non dovresti aver bisogno del 'VOLUME' nel tuo Dockerfile. La stessa finestra mobile funziona -v funziona su un'immagine definita * senza * 'VOLUME'? – VonC

+0

@VonC Ho ricreato l'immagine senza VOLUME e l'ho avviata come prima. Sempre ricevendo lo stesso messaggio di errore. – Marco

+0

Ok. Puoi provare senza la direttiva 'MKDIR'? Monta sempre la cartella host per docker-compose, e funziona sempre (boot2docker 1.6 su Windows: http://stackoverflow.com/a/29728993/6309) – VonC

risposta

5

ho sperimentato lo stesso problema.

vedi: https://github.com/docker/docker/issues/12590

Se stai usando git bash su Windows, msysgit converte i percorsi come/c/agli utenti di C: \ Users (non qualcosa che si desidera perché il percorso all'interno del boot2docker VM è/c/Utenti)

Se si utilizza cmd.exe o PowerShell non si dovrebbe avere questo problema.

Sono riuscito a installare un'unità dopo aver utilizzato cmd.

Le istruzioni che seguono sono per l'avvio Boot2Docker con le finestre cmd

Boot2Docker Up 
set DOCKER_HOST=tcp://192.168.59.103:2376 
set DOCKER_CERT_PATH=C:/Users/<yourusername>/.boot2docker/certs/boot2docker-vm 
set DOCKER_TLS_VERIFY=1 

docker run -d -v /c/Users/310145787/Desktop/mongo:/data/db mongo 

Si dovrebbe essere buona per andare :-)

7

mi è stato fatto notare a una soluzione alternativa. Invece di usare una singola barra/c/Users/usando una doppia barra // c/Users/

Ho controllato e il montaggio del volume funziona bene ora!

+0

Grazie mille! Funziona perfettamente e risolve il mio problema :-) –

Problemi correlati