Le guide essentiel des commandes de gestion des volumes Docker
Apprenez les commandes de volume Docker pour créer, lister, inspecter, monter, sauvegarder, supprimer et nettoyer les données persistantes.
Le guide essentiel des commandes de gestion des volumes Docker
Les commandes de gestion des volumes Docker deviennent importantes dès que votre conteneur écrit des données auxquelles vous tenez. La couche inscriptible d'un conteneur disparaît lorsque vous supprimez le conteneur, mais un volume Docker peut conserver les fichiers de base de données, les téléchargements, les données de cache ou l'état de l'application lors des reconstructions de conteneurs.
Ce guide vous présente les commandes principales docker volume, comment attacher des volumes aux conteneurs et où les commandes de nettoyage peuvent vous surprendre.
Que sont les volumes Docker ?
Les volumes Docker sont des objets de stockage gérés par Docker. Ils vivent en dehors de la couche inscriptible du conteneur, généralement dans un emplacement géré par Docker sur l'hôte lorsque vous utilisez le pilote local par défaut. Un volume nommé reste disponible après avoir arrêté, supprimé ou recréé le conteneur qui l'utilisait.
Les volumes sont utiles car ils offrent :
- Persistance : Les données survivent au remplacement du conteneur.
- Isolation : Les données de l'application sont séparées de l'image et de la couche inscriptible.
- Support des pilotes : Les pilotes de volume peuvent utiliser des disques locaux, du stockage réseau ou des backends de stockage spécifiques à la plateforme.
- Clarté opérationnelle : Les volumes nommés sont plus faciles à inspecter, sauvegarder et réutiliser que les couches de conteneurs anonymes.
Commandes principales docker volume
La commande docker volume est l'interface principale pour créer, lister, inspecter et supprimer des volumes.
docker volume create
Créer un volume nommé :
docker volume create my-app-data
Créer un volume avec un nom généré par Docker :
docker volume create
Vous pouvez également passer des options de pilote lorsque vous utilisez une configuration non par défaut :
docker volume create --driver local my-app-data
docker volume ls
Lister les volumes :
docker volume ls
Afficher uniquement les noms :
docker volume ls -q
Filtrer les volumes orphelins :
docker volume ls --filter dangling=true
dangling=true signifie que Docker ne voit pas le volume comme référencé par un conteneur. Cela ne signifie pas que les données sont sans importance.
docker volume inspect
Inspecter un volume :
docker volume inspect my-app-data
Pour un volume local, la sortie ressemble à ceci :
[
{
"CreatedAt": "2026-05-23T10:00:00Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/my-app-data/_data",
"Name": "my-app-data",
"Options": null,
"Scope": "local"
}
]
Le Mountpoint est utile pour le dépannage, mais évitez de modifier les fichiers directement pendant que les conteneurs utilisent le volume. Laissez l'application ou un conteneur de maintenance contrôlé écrire les données.
docker volume rm
Supprimer un ou plusieurs volumes :
docker volume rm my-app-data
Docker ne supprimera pas un volume tant qu'un conteneur le référence encore, même si ce conteneur est arrêté. Trouvez et supprimez d'abord ces conteneurs :
docker ps -a --filter volume=my-app-data
docker rm <nom-ou-id-du-conteneur>
docker volume rm my-app-data
Cette commande supprime les données du volume. Sauvegardez-les d'abord si les données sont importantes.
docker volume prune
Prune supprime les volumes locaux inutilisés. Dans les versions actuelles de Docker, docker volume prune supprime par défaut les volumes anonymes inutilisés. Utilisez --all si vous souhaitez également supprimer les volumes nommés inutilisés.
Supprimer les volumes anonymes inutilisés :
docker volume prune
Ignorer l'invite de confirmation :
docker volume prune --force
Supprimer tous les volumes locaux inutilisés, y compris les volumes nommés :
docker volume prune --all
Utilisez des étiquettes pour rendre le nettoyage plus sûr :
docker volume create --label app=myapp myapp-cache
docker volume prune --filter label=app=myapp
Les opérations de prune suppriment définitivement les données. Vérifiez ce qu'un volume contient avant de supprimer des données d'application nommées.
Monter des volumes avec des conteneurs
Attachez des volumes lorsque vous créez un conteneur. Docker peut créer automatiquement le volume nommé s'il n'existe pas déjà.
Utilisation de -v
docker run --name my-postgres \
-v pgdata:/var/lib/postgresql/data \
-d postgres
Ici, pgdata est le nom du volume et /var/lib/postgresql/data est le chemin à l'intérieur du conteneur.
Utilisation de --mount
--mount est plus explicite et plus facile à lire dans les scripts :
docker run --name my-redis \
--mount type=volume,source=redisdata,target=/data \
-d redis
Les deux formes sont valides. Utilisez --mount lorsque vous souhaitez une syntaxe clé-valeur plus claire, surtout avec des options de montage supplémentaires.
Sauvegarder et restaurer un volume
Les volumes Docker sont un stockage persistant, mais ce ne sont pas des sauvegardes. Un modèle de sauvegarde simple consiste à exécuter un conteneur temporaire qui monte le volume et écrit une archive dans le répertoire courant :
docker run --rm \
-v my-app-data:/data:ro \
-v "$PWD":/backup \
alpine \
tar czf /backup/my-app-data.tgz -C /data .
Restaurer dans un volume vide :
docker volume create my-app-data-restored
docker run --rm \
-v my-app-data-restored:/data \
-v "$PWD":/backup \
alpine \
tar xzf /backup/my-app-data.tgz -C /data
Pour les bases de données, privilégiez les outils de sauvegarde natifs de la base de données lorsque la cohérence est importante. Une archive du système de fichiers d'un volume de base de données en direct peut ne pas être sûre à moins que la base de données ne soit arrêtée ou ne prenne en charge cette méthode de sauvegarde.
Meilleures pratiques pour la gestion des volumes Docker
- Utilisez des volumes nommés pour les données que vous prévoyez de conserver.
- Étiquetez les volumes qui appartiennent à une application ou un environnement.
- Inspectez les volumes avant de les supprimer ou de les nettoyer.
- Sauvegardez les volumes importants en dehors de l'hôte Docker.
- Évitez de stocker des données irremplaçables uniquement dans un volume anonyme.
- Testez les restaurations, pas seulement les sauvegardes.
- Utilisez des pilotes de volume lorsque vous avez besoin de stockage en dehors de l'hôte Docker local.
À retenir
Utilisez des volumes Docker nommés pour l'état que vous souhaitez conserver, inspectez-les avant de supprimer quoi que ce soit et traitez prune comme une commande de nettoyage avec un risque réel de perte de données. Le flux de travail quotidien est simple : créez ou laissez Docker créer le volume, montez-le avec docker run, inspectez-le en cas de dépannage, sauvegardez-le quand c'est important et supprimez-le uniquement après qu'aucun conteneur ne le référence.