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 !