web-dev-qa-db-fra.com

Lier un répertoire à un conteneur Docker

Je construis un projet de test qui nécessite un module en dehors du répertoire du projet. Le dossier du projet est dans docker, et je voudrais lier ce répertoire de module au conteneur docker de mon projet. Est-il même possible de le faire? Ou est-ce que je pose la mauvaise question? Soit dit en passant, je suis encore nouveau sur Docker, donc j'essaie juste de faire les choses.

12
avian

Je crois comprendre que vous devez monter le dossier Host sur le conteneur. Essayez donc ceci:

docker run -v /Host/project_folder:/container/project -t avian/project_image bash

explication

  • -v - --volume = [] Lier monter un volume
  • /Host/project_folder - Dossier du serveur hôte
  • /container/project - dossier du conteneur

Mise à jour:

La dernière version de docker (v1.9.1) prend en charge une nouvelle commande volume. Vous devriez donc être plus facile à gérer le volume dans Docker.

# For example, I need attach a volume to mysql container.
docker volume create --name mysql-data
docker run --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

Avec cela, vous pouvez supprimer le conteneur mysql à tout moment, sans perdre vos données de base de données.

20
BMW

Vous pouvez utiliser le -v option pour monter un volume (par exemple votre dossier) dans le conteneur. Plus de détails peuvent être trouvés dans les documents .

Par exemple, à partir de l'exemple de Dockerfile de la plateforme de blog ghost:

docker run -v /data/ghost:/var/lib/ghost -d ghost

Quelles cartes /data/ghost sur le disque local vers /var/lib/ghost à l'intérieur du conteneur.

Vous pouvez également spécifier un autre conteneur Docker comme source des données à l'aide de --volumes-from option.

5
musically_ut