Docker / Windows-Container: Mounten eines Hostordners als Datenvolumen unter Windows 2016

17

Wie mounte ich ein Volume vom Windows-Host auf das Windows-Gastsystem?

Ich bin auf Windows Server 2016 TP4 mit Docker.

Befolgen Sie die Dokumentation unter https://docs.docker.com/engine/userguide/containers/dockervolumes/

Wenn Sie Docker Machine unter Mac oder Windows verwenden, hat Ihr Docker-Dämon nur eingeschränkten Zugriff auf Ihr OS X- oder Windows-Dateisystem. Docker Machine versucht, Ihr Verzeichnis / Users (OS X) oder C: \ Users (Windows) automatisch freizugeben. Sie können also Dateien oder Verzeichnisse unter OS X mithilfe von bereitstellen.

Mounten Sie unter Windows Verzeichnisse mit:

Docker run -v / c / Users / [Pfad]: / [Containerpfad] ... `

Ich habe es versucht:

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

was mir einen Fehler gibt:

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

Ich habe auch versucht:

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

Beachten Sie, dass der Pfad C: \ meinedaten auf dem Gast / Container bereits vorhanden ist, was gemäß der Docker-Dokumentation erforderlich ist.

Der Befehl sieht für mich gemäß der Dokumentation korrekt aus.

Geben Sie hier die Bildbeschreibung ein

(Das Mounten von Volumes vom Mac OS X-Host in den Ubuntu-Docker-Container funktioniert einwandfrei. Ich habe nur Probleme mit Windows.)

Aktualisieren

Ich habe auch nur versucht, Windows-Container nativ (über Powershell) zu verwenden, ohne Docker zu verwenden. Ich folge der Dokumentation unter 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

Aber ich bekomme auch Probleme.

Geben Sie hier die Bildbeschreibung ein

Eventuell verwandte Themen:

Mathias Conradt
quelle

Antworten:

23

Unter Windows müssen die Pfade mithilfe der Windows-Semantik angegeben werden. Sie sollten keinen führenden Schrägstrich vor dem Pfad verwenden.

docker run -v c:\Users\[path]:c:\[containerPath]
Mathias Conradt
quelle
Dies funktioniert nicht, wenn Sie die Ordner mit einem Befehl zum Kopieren oder Hinzufügen erstellt haben.
Steve Coleman
Das Host-Verzeichnis kann auch relativ "./" sein, und das interne Gast-Betriebssystem kann vom Linux-Typ des Betriebssystems sein / www / html`
FantomX1
7

Windows 10 Anniversary Update und Windows Server 2016 RTM.

Fügen Sie ein Volume hinzu:

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

Mounten Sie ein Host-Verzeichnis:

docker run -d -v C:\Temp\123:C:\My\Shared\Dir testimage:latest
Der_Meister
quelle