Docker / Contenitore Windows: come montare una cartella host come volume di dati su Windows 2016


17

Come montare un volume dall'host Windows al sistema guest Windows?

Sono su Windows Server 2016 TP4 utilizzando Docker.

Di seguito la documentazione su https://docs.docker.com/engine/userguide/containers/dockervolumes/

Se stai usando Docker Machine su Mac o Windows, il tuo demone Docker ha un accesso limitato al tuo filesystem OS X o Windows. Docker Machine tenta di condividere automaticamente la directory / Users (OS X) o C: \ Users (Windows). Quindi, puoi montare file o directory su OS X usando.

Su Windows, montare le directory usando:

docker run -v / c / Users / [percorso]: / [percorso contenitore] ... `

Provai:

docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/meinedaten iis cmd

che mi dà un errore:

docker : docker: Error response from daemon: Invalid bind mount spec "/c/Users/mlin/meinedaten:/meinedaten": volumeinvalid: Invalid volume specification: 
'/c/Users/mlin/meinedaten:/meinedaten'.

Ho anche provato:

docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/c/meinedaten iis cmd

Si noti che esiste già il percorso C: \ meinedaten sul guest / container, necessario in base alla documentazione della finestra mobile.

Il comando mi sembra corretto secondo la documentazione.

inserisci qui la descrizione dell'immagine

(Il montaggio dei volumi dall'host Mac OS X al contenitore docker Ubuntu funziona correttamente, sto riscontrando problemi con Windows.)

Aggiornare

Ho anche appena provato a usare i contenitori di Windows in modo nativo (tramite Powershell), non usando Docker. Seguo la documentazione su https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/manage_powershell#create-a-shared-folder .

Add-ContainerSharedFolder -ContainerName mysql2 -SourcePath C:\Users\mlin\meinedaten -DestinationPath C:\meinedaten

Ma sto riscontrando problemi ci sono anche.

inserisci qui la descrizione dell'immagine

Argomenti eventualmente correlati:

Risposte:


22

Su Windows, i percorsi devono essere specificati usando la semantica in stile Windows. Non dovresti usare una barra iniziale davanti al percorso.

docker run -v c:\Users\[path]:c:\[containerPath]

Questo non funziona se hai creato le cartelle con un comando copia o aggiungi.
Steve Coleman,

la directory host può anche essere relativa "./" e il sistema operativo interno guest potrebbe essere un tipo di sistema operativo linux, quindi il normale percorso linux "/ a / b / c /" come, nella finestra mobile comporre in questo modo `volumi: - ./:/var / www / html`
FantomX1

7

Aggiornamento dell'anniversario di Windows 10 e Windows Server 2016 RTM.

Aggiungi un volume:

docker run -d -v my-named-volume:C:\MyNamedVolume testimage:latest

Montare una directory host:

docker run -d -v C:\Temp\123:C:\My\Shared\Dir testimage:latest
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.