Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

docker run -it -v $(pwd):/tmp ubuntu bash Não funciona no Windows

Não consigo copiar um arquivo do diretório do Windows para dentro do Ubuntu. Não sei se alguém teve esse problema também mas será possível copiar um diretório para dentro do container??

4 respostas

Fala aí Jean, blz?

Creio que isso não funcione pois o comando pwd não rola no prompt do windows. Tente passar o caminho completo para o seu diretório atual.

Espero ter ajudado.

Então Fernando, estou usando PowerShell, do qual possui esse comando.

O erro que da é assim:

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Todos os direitos reservados.

PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> d:
PS D:\> cd .\dockerTest\
PS D:\dockerTest> dir


    Diretório: D:\dockerTest


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2017/04/09     20:01                app
d-----       2017/04/10     17:07                DEV
d-----       2017/04/09     20:24                wordpressEX
-a----       2017/04/09     20:02            192 Dockerfile


PS D:\dockerTest> docker run -it -v d:/dockerTest/wordpressEX:/tmp ubuntu bash
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: D: drive is not shared. Please share it in Docker for Windows Settings.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
PS D:\dockerTest> docker run -it -v $(pwd):/tmp ubuntu bash
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: ":/tmp" is not a valid repository/tag: invalid reference format.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
PS D:\dockerTest>

Dessa forma não puder testar como LINKA um container ao outro.

solução!

Fala aí Jean, aparentemente seu diretório D: não está mapeado para compartilhamento para o Docker.

Da uma olhada nas preferencias da engine do docker, tem uma de File Share. Nela você tem uma lista com os diretórios a partir dos quais você pode usar para mapear nos seus containers. Se não estiver listado o D: lá você pode adiciona-lo.

Espero ter ajudado e bons estudos.

100% Fernando, porém vou passar um passo-á-passo que pode ser replicado no Windows para a galera do ms, ou pode ficar apenas como booking para quem precisar consultar.

No Windows 10 Professional (é a versão mínima hoje para subir o Hyper V que é a base do Docker na microsoft), vc procura no canto da tela o ícone do Docker(baleia) e com o segundo botão selecione >>Settings e na tela do Docker o menu Shared Drives, clique qual HD pretende compartilhar e coloque um usuário(pede automaticamente).

Quando utilizar o comando Docker RUN, note que a montagem fica similar ao Linux e dessa forma não necessita usar o path com (: >> dois pontos), dessa forma:

 docker run -it -v /d/dockerTest:/tmp ubuntu bash

Note que o drive D citado acima não possui "dois pontos".

Vlw Fernando

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software