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 09:33] – créée benoitinformatique:docker:volumedocker [2023/11/23 09:35] (Version actuelle) – [Type TmpFs] benoit
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 : de benoit