84 votes

Docker essaie de mkdir le dossier que je monte

Pourquoi Docker essaie-t-il de créer le dossier que je monte? Si je passe à C: \ Users \ szx \ Projects

 docker run --rm -it -v "${PWD}:/src" ubuntu /bin/bash
 

Cette commande se termine avec l'erreur suivante:

 C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: error while creating mount source path '/c/Users/szx/Projects': mkdir /c/Users/szx/Projects: file exists.
 

J'utilise Docker Toolbox sur Windows 10 Home.

45voto

melicent Points 316

J'ai eu cette erreur après avoir changé mon mot de passe Windows. J'ai dû aller dans les paramètres Docker et faire "Réinitialiser les informations d'identification" sous "Shared Drives", puis redémarrer Docker.

6voto

BMitch Points 3744

Assurez-vous que le dossier est partagé avec la machine virtuelle intégrée Docker. Cela diffère avec les différents types de docker pour les installations de bureau. Avec la boîte à outils, je pense que vous pouvez trouver les dossiers partagés dans la configuration VirtualBox. Vous devez également noter que ces répertoires sont sensibles à la casse. Une façon de déboguer est d'essayer:

 docker run --rm -it -v "/:/host" ubuntu /bin/bash
 

Et voyez à quoi ressemble le système de fichiers sous "/ hôte".

4voto

Mornor Points 933

Avez-vous déjà utilisé ce conteneur? Vous pouvez essayer de supprimer tous les docker-volumes avant de réexécuter votre commande.

 docker volume rm `(docker volume ls -qf dangling=true)`
 

J'ai essayé votre commande localement (MacOS) sans aucune erreur.

1voto

TheOperator Points 1801

Dans le cas où vous travaillez avec un utilisateur Windows distinct, avec lequel vous partagez le volume (C: généralement): vous devez vous assurer qu'il a accès aux dossiers avec lesquels vous travaillez - y compris leurs parents , jusqu'à votre répertoire personnel.

Assurez-vous également que EFS (Encrypting File System) est désactivé pour les dossiers partagés.

Voir aussi ma réponse ici .

0voto

Abhishek Jain Points 36

J'ai rencontré cette erreur lorsqu'un autre conteneur en cours d'exécution utilisait déjà un dossier en cours de montage dans la commande docker run. Veuillez vérifier la même chose et si vous n'en avez pas besoin, arrêtez le conteneur. La meilleure solution consiste à utiliser le volume en utilisant la commande suivante -

volume de docker créer

puis montez ce volume créé s'il doit être utilisé par plusieurs conteneurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X