La description
J'utilise Docker version 1.12.5 sur Windows 10 via Hyper-V et je souhaite utiliser des exécutables de conteneur comme commandes dans le chemin actuel. J'ai créé une image Docker qui fonctionne correctement, mais j'ai un problème pour monter le chemin actuel. L'idée est de créer un alias et d'exécuter une docker run --rm [...]
commande afin qu'il puisse être utilisé à l'échelle du système dans le répertoire courant.
Installer
J'ai un lecteur E avec un dossier «test» et là-dedans un dossier appelé «dossier sur l'hôte Windows» pour montrer que la commande fonctionne. Le Dockerfile crée le répertoire /data
, le définit comme VOLUME et WORKDIR.
Ayant E:\test
comme répertoire actuel dans PowerShell et exécutant la commande Docker avec un chemin absolu, je peux voir le contenu 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
Problème
Je veux utiliser le répertoire courant et non une notation absolue. Je n'ai pas pu utiliser pwd dans le volume à cause de différents messages d'erreur:
Essayer avec ($ 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'.
Essayer avec / ($ 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'.
Essayer avec \ ´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'.
Essayer avec `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'.
Quelle est la syntaxe correcte pour monter le répertoire actuel en tant que volume dans Docker sous Windows 10?