Outils pour utilisateurs

Outils du site


informatique:docker:volumedocker

Ceci est une ancienne révision du document !


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).

Il faut distinguer 3 types de volume sous Docker :

  1. Type Volume : Les données seront initialisées avec les celles de l'image s'il n'y a pas déjà de données dans le volume.
  2. 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.
  3. 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
informatique/docker/volumedocker.1700732059.txt.gz · Dernière modification: 2023/11/23 10:34 par benoit