Descrição
Estou usando o Docker versão 1.12.5 no Windows 10 via Hyper-V e quero usar executáveis de contêiner como comandos no caminho atual. Construí uma imagem Docker que está funcionando bem, mas tenho um problema para montar o caminho atual. A ideia é criar um alias e fazer um docker run --rm [...]
comando para que possa ser usado em todo o sistema no diretório atual.
Configuração
Eu tenho um drive E com uma pasta "test" e nela uma pasta chamada "folder on windows host" para mostrar que o comando está funcionando. O Dockerfile cria o diretório /data
, define-o como VOLUME e WORKDIR.
Tendo E:\test
como o diretório atual no PowerShell e executando o comando Docker com um caminho absoluto, posso ver o conteúdo de E:\test
:
PS E:\test> docker run --rm -it -v E:\test:/data mirkohaaser/docker-clitools ls -la
total 0
drwxr-xr-x 2 root root 0 Jan 4 11:45 .
drwxr-xr-x 2 root root 0 Jan 5 12:17 folder on windows host
Problema
Desejo usar o diretório atual e não uma notação absoluta. Não consegui usar o pwd no volume devido a diferentes mensagens de erro:
Tentando com ($ pwd)
PS E:\test> docker run --rm -it -v ($pwd):/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: ":/data" is not a valid repository/tag.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Tentando com / ($ pwd)
PS E:\test> docker run --rm -it -v /($pwd):/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: "E:\\test" is not a valid repository/tag.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Tentando com \ ´pwd \ ´
PS E:\test> docker run --rm -it -v ´$pwd´:/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Invalid bind mount spec "´E:\\test´:/data": invalid mode: /data.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Tentando com `pwd`
PS E:\test> docker run --rm -it -v `$pwd`:/data mirkohaaser/docker-clitools ls -la
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: create $pwd: "$pwd" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Qual é a sintaxe correta para montar o diretório atual como um volume no Docker no Windows 10?