web-dev-qa-db-fra.com

Docker Toolbox: Réponse d'erreur du démon: mode non valide: / root / docker

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

6
Markus Knopfler

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
9
saurabh singh

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.

  • J'ai d'abord défini un dossier partagé sur VirtualBox sur la machine que j'utilise.
  • Ensuite, fermez cette machine et les fenêtres Docker, puis redémarrez la boîte à outils Docker.
  • Ensuite, exécutez docker-machine ssh par défaut et changez simplement de répertoire dans le dossier que vous avez partagé (avec un nom donné). Le mien était "cd mydocker", puis avec ls vous pouvez voir les fichiers que vous avez partagés avec VM.
  • Et dans la boîte à outils, exécutez docker run -it -v/mydocker:/path_in_container nom_image/bin/sh
  • Vous devriez voir le dossier et le contenu dans/path_in_container.
4
Mehmet Kurtipek

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.

2
tolulope owolabi