Description
J'utilise la version 1.12.5 de Docker sur Windows 10 via Hyper-V et je veux utiliser les exécutables du conteneur comme commandes dans le chemin actuel. J'ai construit une image Docker qui fonctionne bien, mais j'ai un problème pour monter le chemin actuel. L'idée est de créer un alias et de faire un docker run --rm [...]
afin qu'elle puisse être utilisée par tout le système dans le répertoire courant.
Configuration
J'ai un lecteur E avec un dossier "test" et dans celui-ci un dossier appelé "dossier sur l'hôte Windows" pour montrer que la commande fonctionne. Le Dockerfile crée le répertoire /data
Il est défini comme VOLUME et WORKDIR.
Avoir E:\test
comme répertoire courant dans PowerShell et en exécutant la commande Docker avec un chemin absolu, je peux voir le contenu du fichier 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 des 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 ?
0 votes
Comme décrit par d'autres, la solution est soit d'utiliser
%cd%
ou pour revenir à PowerShell plutôt qu'à la console standard de Windows. Toutefois, cela met en évidence le fait que Docker présente une lacune fondamentale. L'objectif du framework est d'agir comme un cadre indépendant de la plateforme pour les développeurs. Le fait que vous ayez besoin de différentes configurations pour différentes plates-formes sape plutôt ce principe.