Outils pour utilisateurs

Outils du site


informatique:docker:volumedocker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
informatique:docker:volumedocker [2023/11/23 10:33]
benoit créée
informatique:docker:volumedocker [2023/11/23 10:35] (Version actuelle)
benoit [Type TmpFs]
Ligne 1: Ligne 1:
 ====== Gestion des volumes sous Docker ====== ====== Gestion des volumes sous Docker ======
 +
 +===== Introduction =====
  
 L'​objectif des volumes est de pouvoir utiliser des données persistantes dans les conteneurs (sauf pour le tmpfs). L'​objectif des volumes est de pouvoir utiliser des données persistantes dans les conteneurs (sauf pour le tmpfs).
Ligne 7: Ligne 9:
   - Type **Bind** : Permet de monter un dossier de l'​hôte dans un dossier du conteneur. Les données du dossier ne seront pas initialisées par celle de l'​image.   - Type **Bind** : Permet de monter un dossier de l'​hôte dans un dossier du conteneur. Les données du dossier ne seront pas initialisées par celle de l'​image.
   - Type **tmpfs** : Permet d'​utiliser la mémoire RAM comme espace de stockage. Utile pour charger des données rapidement.   - Type **tmpfs** : Permet d'​utiliser la mémoire RAM comme espace de stockage. Utile pour charger des données rapidement.
 +
 +===== Type Volume =====
 +
 +Lister les volumes : 
 +  docker volume ls
 +
 +Créer un volume nommé ''​MyVolume''​ : 
 +  docker volume create MyVolume
 +
 +Ci-dessous pour démarrer un conteneur en utilisant le volume ''​MyVolume''​ qui sera monté dans le dossier ''/​mnt/​vol_docker''​ du conteneur : 
 +  docker run -d --name MyContainer -v MyVolume:/​mnt/​vol_docker ubuntu
 +
 +ou
 +  docker run -d --name MyContainer --mount type=bind,​source=MyVolume,​destination=/​mnt/​vol_docker ubuntu
 +  ​
 +  ​
 +Pour identifier où sont stockées les données de ''​MyVolume''​ sur la machine hôte :
 +  docker volume inspect MyVolume
 +
 +Exemple de résultat attendu : 
 +  [
 +    {
 +        "​CreatedAt":​ "​2023-11-17T11:​06:​32Z",​
 +        "​Driver":​ "​local",​
 +        "​Labels":​ null,
 +        "​Mountpoint":​ "/​var/​lib/​docker/​volumes/​MyVolume/​_data",​
 +        "​Name":​ "​MyVolume",​
 +        "​Options":​ null,
 +        "​Scope":​ "​local"​
 +    }
 +  ]
 +
 +:!: Les données des volumes sont stockées dans le répertoire ''/​var/​lib/​docker/​volumes/''​ de la machine hôte. Les données de ''​MyVolume''​ sont stockées dans le répertoire ''/​var/​lib/​docker/​volumes/​MyVolume/​_data''​.
 +
 +Pour identifier les conteneurs qui utilisent le volume ''​MyVolume''​ :
 +  docker ps -a --filter volume=MyVolume
 +
 +Exemple de résultat attendu :
 +  CONTAINER ID   ​IMAGE ​    ​COMMAND ​             CREATED ​         STATUS ​         PORTS     NAMES
 +  b3f7ec23a377 ​  ​httpd ​    "​httpd-foreground" ​  29 minutes ago   Up 29 minutes ​  ​80/​tcp ​   MyContainer
 +
 +
 +Pour supprimer le volume ''​MyVolume''​ : 
 +  docker volume rm MyVolume
 +
 +:!: Remarque : Les conteneurs créés en utilisant le volume, doivent être arrêté et supprimé avant : 
 +  docker stop MyContainer
 +  docker rm MyContainer
 +  docker volume rm MyVolume
 +
 +===== Type Bind =====
 +
 +On peut aussi démarrer un conteneur en montant un dossier du système hôte dans un répertoire du conteneur.
 +Par exemple, ci-dessous on monte le dossier ''/​mnt''​ de l'​hôte dans le dossier ''/​home''​ du conteneur.
 +
 +  docker run -d --name MyC2 --mount type=bind,​source=/​mnt,​destination=/​home httpd
 +
 +Pour inspecté le montage du conteneur : 
 +  docker inspect -f '{{ .Mounts }}' MyC2
 +
 +===== Type TmpFs =====
 +
 +Pour démarrer une instance avec le dossier ''/​home''​ du conteneur en mémoire RAM de l'​hôte :
 +
 +  docker run -d --name MyC3 --mount type=tmpfs,​destination=/​home httpd
informatique/docker/volumedocker.1700732001.txt.gz · Dernière modification: 2023/11/23 10:33 par benoit