Docker / Conteneur Windows: comment monter un dossier hôte en tant que volume de données sur Windows 2016

17

Comment monter un volume d'un hôte Windows sur un système invité Windows?

Je suis sur Windows Server 2016 TP4 utilisant Docker.

Suivre la documentation sur https://docs.docker.com/engine/userguide/containers/dockervolumes/

Si vous utilisez Docker Machine sur Mac ou Windows, votre démon Docker n'a qu'un accès limité à votre système de fichiers OS X ou Windows. Docker Machine essaie de partager automatiquement votre répertoire / Users (OS X) ou C: \ Users (Windows). Ainsi, vous pouvez monter des fichiers ou des répertoires sur OS X en utilisant.

Sous Windows, montez les répertoires en utilisant:

docker run -v / c / Users / [chemin]: / [chemin du conteneur] ... `

J'ai essayé:

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

ce qui me donne une erreur:

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

J'ai aussi essayé:

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

Notez que le chemin C: \ meinedaten sur l'invité / conteneur existe déjà, ce qui est requis selon la documentation du docker.

La commande me semble correcte selon la documentation.

entrez la description de l'image ici

(Le montage de volumes depuis un hôte Mac OS X vers un conteneur Docker Ubuntu fonctionne très bien, j'ai juste des problèmes avec Windows.)

Mise à jour

J'ai également essayé d'utiliser Windows Containers nativement (via Powershell), sans utiliser Docker. Je suis la documentation sur 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

Mais j'ai aussi des problèmes.

entrez la description de l'image ici

Sujets éventuellement liés:

Mathias Conradt
la source

Réponses:

23

Sous Windows, les chemins doivent être spécifiés à l'aide de la sémantique de style Windows. Vous ne devez pas utiliser de barre oblique devant le chemin.

docker run -v c:\Users\[path]:c:\[containerPath]
Mathias Conradt
la source
Cela ne fonctionne pas si vous avez créé les dossiers avec une commande copier ou ajouter.
Steve Coleman
le répertoire hôte peut être également relatif "./" et le système d'exploitation interne invité peut être de type linux, donc le chemin linux normal "/ a / b / c /" comme dans docker, composez de cette façon `volumes: - ./:/var / www / html`
FantomX1
7

Mise à jour anniversaire de Windows 10 et Windows Server 2016 RTM.

Ajoutez un volume:

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

Montez un répertoire hôte:

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