Montando um diretório do host no boot2docker para Windows

11

Estou executando o docker 1.6 e o boot2docker em uma caixa do Windows 8.1. Quando eu uso o atalho Boot2Docker Start, ele me leva a um prompt bash do cygwin, onde posso executar os comandos do docker nativamente.

Estou tendo problemas para montar um diretório da pasta Meus usuários. Eu tentei:

$ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Eu recebo o erro:

invalid value "C:\Users\someone\AppData\Roaming/Bitcoin:/datadir"
for flag -v: \Users\someone\AppData\Roaming/Bitcoin:/datadir 
is not an absolute path 
See 'c:\Program Files\Boot2DockeForWindows\docker.exe run --help'.

Eu obtenho os mesmos resultados quando os chamo assim:

$ docker run -d --name abe -v "$APPDATA/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v "/c/users/someone/AppData/Roaming/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v ~/AppData/Roaming/Bitcoin:/datadir poliver/bitcoin-abe

Eu também tentei:

$ docker run -d --name abe -v ~/APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

E eu recebi o erro:

FATA[0000] Error response from daemon: cannot bind mount volume: ~\AppData\Bitcoin volume paths must be absolute.

Parece que o cygwin bash está substituindo / por \ e, em seguida, o docker analisa o argumento passado para -v e não pode aceitá-lo.

    
por Paul Oliver 18.04.2015 / 20:41

2 respostas

12

Se você quiser montar o $APPDATA em sua máquina host com Windows em /datadir no contêiner do Docker, em vez do comando abaixo:

docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Você pode emitir:

docker run -d --name abe -v //c/Users/YOUR_USER_NAME/$APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

//c/Users/PATH_TO_DIR é a chave aqui para o diretório do Windows

Seu $APPDATA Diretório DEVE residir no diretório /c/Users/Your_User_Name e não pode residir em outros lugares. (por exemplo, D:/$APPDATA na partição D.)

    
por 30.04.2015 / 09:06
6

veja: link

If you're using git bash on windows, msysgit converts paths like /c/users to c:\users (not something you want because the path inside the boot2docker VM is /c/Users)

On cmd.exe/powershell you shouldn't be having this problem.

    
por 25.04.2015 / 02:34