Docker / Windows Container: como montar uma pasta host como volume de dados no Windows 2016


17

Como montar um volume do host do Windows para o sistema convidado do Windows?

Estou no Windows Server 2016 TP4 usando o Docker.

Seguindo a documentação em https://docs.docker.com/engine/userguide/containers/dockervolumes/

Se você estiver usando o Docker Machine no Mac ou Windows, o seu daemon do Docker terá acesso limitado apenas ao seu sistema de arquivos OS X ou Windows. O Docker Machine tenta compartilhar automaticamente o diretório / Users (OS X) ou C: \ Users (Windows). Portanto, você pode montar arquivos ou diretórios no OS X usando.

No Windows, monte diretórios usando:

docker run -v / c / Users / [caminho]: / [caminho do contêiner] ... `

Eu tentei:

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

o que me dá um erro:

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

Eu também tentei:

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

Observe que o caminho C: \ meinedaten no convidado / contêiner já existe, o que é necessário de acordo com a documentação da janela de encaixe.

O comando parece correto para mim de acordo com a documentação.

insira a descrição da imagem aqui

(A montagem de volumes do host do Mac OS X para o contêiner do docker do Ubuntu funciona bem, só estou tendo problemas com o Windows.)

Atualizar

Também tentei usar o Windows Containers nativamente (via Powershell), sem usar o Docker. Sigo a documentação em 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

Mas também estou tendo problemas.

insira a descrição da imagem aqui

Tópicos eventualmente relacionados:

Respostas:


22

No Windows, os caminhos devem ser especificados usando a semântica no estilo do Windows. Você não deve usar uma barra à frente do caminho.

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

Isso não funciona se você criou as pastas com um comando copiar ou adicionar.
Steve Coleman

o diretório host também pode ser relativo "./" e o sistema operacional interno convidado pode ser do tipo linux do sistema operacional, portanto, o caminho linux comum "/ a / b / c /" como no docker compõe desta maneira `volumes: - ./:/var / www / html`
FantomX1 16/11/19

7

Atualização de aniversário do Windows 10 e Windows Server 2016 RTM.

Adicione um volume:

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

Monte um diretório host:

docker run -d -v C:\Temp\123:C:\My\Shared\Dir testimage:latest
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.