Skip to main content

Gestion des volumes Docker

Les volumes Docker

Les volumes permettent de persister les données des conteneurs. Sans volume, les données sont perdues à la suppression du conteneur.

Types de stockage

Il existe trois façons de monter du stockage dans un conteneur :

  • Volumes : gérés par Docker, stockés dans /var/lib/docker/volumes/
  • Bind mounts : montage d’un répertoire de l’hôte
  • tmpfs : stockage en mémoire (non persistant)

Gestion des volumes

Créer un volume :

$ docker volume create mon_volume

Lister les volumes :

$ docker volume ls
DRIVER    VOLUME NAME
local     mon_volume
local     portainer_data

Inspecter un volume :

$ docker volume inspect mon_volume
[
    {
        "CreatedAt": "2024-01-15T10:30:00Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/mon_volume/_data",
        "Name": "mon_volume",
        "Options": {},
        "Scope": "local"
    }
]

Supprimer un volume :

$ docker volume rm mon_volume

Utiliser un volume avec un conteneur

Avec l’option -v :

$ docker run -d --name nginx -v mon_volume:/usr/share/nginx/html nginx

Avec un bind mount (répertoire local) :

$ docker run -d --name nginx -v /home/user/html:/usr/share/nginx/html nginx

Sauvegarde d’un volume

Pour sauvegarder les données d’un volume :

$ docker run --rm -v mon_volume:/data -v $(pwd):/backup alpine tar cvf /backup/sauvegarde.tar /data

Pour restaurer :

$ docker run --rm -v mon_volume:/data -v $(pwd):/backup alpine tar xvf /backup/sauvegarde.tar -C /

Nettoyage des volumes

Supprimer les volumes non utilisés :

$ docker volume prune

Attention : cette commande supprime définitivement les données !