Descrizione
Sto utilizzando Docker versione 1.12.5 su Windows 10 tramite Hyper-V e desidero utilizzare gli eseguibili del contenitore come comandi nel percorso corrente. Ho creato un'immagine Docker che funziona correttamente, ma ho problemi a montare il percorso corrente. L'idea è di creare un alias ed eseguire un docker run --rm [...]
comando in modo che possa essere utilizzato a livello di sistema nella directory corrente.
Impostare
Ho un drive E con una cartella "test" e lì dentro una cartella chiamata "cartella su host di Windows" per mostrare che il comando sta funzionando. Il Dockerfile crea la directory /data
, la definisce come VOLUME e WORKDIR.
Avendo E:\test
come directory corrente in PowerShell ed eseguendo il comando Docker con un percorso assoluto, posso vedere il contenuto di 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
Voglio usare la directory corrente e non una notazione assoluta. Non ho potuto usare pwd nel volume a causa di diversi messaggi di errore:
Sto provando con ($ 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'.
Provando con / ($ 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'.
Sto provando con \ ´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'.
Provando con "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 è la sintassi corretta per montare la directory corrente come volume in Docker su Windows 10?