J'essaie de créer un conteneur de données pour mon application dans Docker. J'exécute cette commande pour exposer certains volumes:
docker run --name svenv.nl-data -v /etc/environment -v /etc/ssl/certs -v /var/lib/mysql -d svenv/svenv.nl-data
Le problème est que je reçois cette erreur de cette commande:
Error response from daemon: cannot mount volume over existing file, file exists /var/lib/docker/aufs/mnt/aefa66cf55357e2e1e4f84c2d4d2d03fa2375c8900fe3c0e1e6bc02f13e54d05/etc/environment
Si je comprends bien la documentation de Docker. La création de volumes pour des fichiers uniques est prise en charge. Donc, je ne comprends pas pourquoi je reçois cette erreur.
Y a-t-il quelqu'un qui peut m'expliquer cela? J'exécute Docker 1.9.1 sur Ubuntu 14.04.
Tu devrais utiliser:
-v /etc/environment:/etc/environment
au lieu de:
-v /etc/environment
L'ancien mappe le volume du conteneur sur le volume de l'hôte. Ce dernier tente de créer un nouveau volume à /etc/environment
et échoue car ce répertoire existe déjà.
Supposons que vous êtes sous Linux, lancez le code suivant
docker run -it --rm -v /local_dir:/image_root_dir/mount_dir image_name
Voici quelques détails:
-it: interactive terminal
--rm: remove container after exit the container
-v: volume or say mount your local directory to a volume
Puisque la fonction de montage couvrira le répertoire dans votre image, vous devez toujours créer un nouveau répertoire dans le répertoire racine de vos images.
Consultez la documentation officielle Utilisez des supports de reliure pour obtenir plus d'informations.
Je suppose que parce que vous ne montez pas un fichier mais déclarez un montage Essayez cette notation à la place: -v <full path to a file you want to overwrite the target with>:/etc/environment