Je suis un débutant Docker et je reproduis actuellement des vidéos de cours. Je dois ajouter que je n'ai que Windows 10 Home et je suis donc limité à Docker Toolbox. (Au travail, j'ai W 10 Pro et j'utilise Docker lui-même et je n'ai pas rencontré le problème que je suis sur le point de signaler).
Lorsque j'exécute ce qui suit dans Windows Power Shell:
PS C:\Program Files\Docker Toolbox> docker run -ti -h python -v ${pwd}:/root/docker -p 9999:9999 ubuntu:latest /bin/bash
J'obtiens l'erreur suivante
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: invalid mode: /root/docker.
See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.
Le problème ne se produit pas dans l'invite de commande, il semble donc être lié au Power Shell. Je n'ai rien trouvé dans les forums de discussion. Toute contribution serait appréciée.
Meilleur Markus
J'ai eu le même problème lors de l'utilisation de la boîte à outils Docker. L'utilisation d'un "/" de plus avant votre chemin source ainsi qu'avant votre chemin cible résoudra ce problème. Dans votre cas, cela ressemblera à ceci:
docker run -ti -h python -v /${pwd}://root/docker -p 9999:9999 ubuntu:latest /bin/bash
si cela ne fonctionne pas, essayez d'utiliser un chemin absolu avec des '/' supplémentaires comme ceci:
docker run -ti -h python -v //c/path_to_application://root/docker -p 9999:9999 ubuntu:latest /bin/bash
Il s'est avéré que Docker Toolbox a besoin d'une approche différente comme indiqué dans cette discussion
Forums Docker: mapper le répertoire Windows sur le conteneur Docker
Comme ils l'ont dit,
Sous Windows, vous ne pouvez pas mapper directement le répertoire Windows à votre conteneur. Parce que vos conteneurs résident dans une machine virtuelle VirtualBox. Votre commande docker -v mappe donc le répertoire entre le VM et le conteneur.
Vous devez donc le faire en deux étapes:
Mappez un répertoire Windows sur le VM via le gestionnaire VirtualBox Mappez un répertoire de votre conteneur sur le répertoire de votre VM Vous feriez mieux d'utiliser l'interface utilisateur Kitematic pour vous aider. C'est beaucoup plus agréable.
Utiliser un chemin absolu dans les fenêtres, quelque chose comme:
docker run -ti -h python -v /c/path_to_application:/root/docker -p 9999:9999 ubuntu:latest /bin/bash
Ajoutez/c/then_remaining_part_to_your_app, notez que/c/est le lecteur. Ça devrait marcher.