Les commandes suivent la page des volumes de Docker et celle de docker compose down, relues le 14 octobre 2026.
Volume nommé ou dossier monté
Un fichier compose peut garder les données de deux façons :
services:
base:
image: postgres:17
volumes:
- base_donnees:/var/lib/postgresql/data
app:
image: votre-application:1.0
volumes:
- ./fichiers:/app/fichiers
volumes:
base_donnees:
Volume nommé (base_donnees) | Dossier monté (./fichiers) | |
|---|---|---|
| Où sont les données | sous /var/lib/docker/volumes/, géré par Docker | dans le dossier que vous indiquez |
| Accès depuis le serveur | par les commandes Docker | directement, comme n'importe quel dossier |
| Usage conseillé | données internes, bases de données | fichiers à éditer ou à copier à la main |
La documentation de Docker conseille les volumes pour les données des conteneurs, plus simples à sauvegarder et à déplacer, et les dossiers montés quand le serveur et le conteneur doivent tous deux lire les fichiers. Les deux gardent les données d'une mise à jour à l'autre. L'image de l'exemple, postgres:17, est donnée à titre d'illustration : prenez l'étiquette indiquée par la documentation de votre application.
Les commandes utiles
| Commande | Effet |
|---|---|
docker volume ls | liste les volumes |
docker volume inspect base_donnees | détails, dont l'emplacement (Mountpoint) |
docker volume create mon-volume | crée un volume à l'avance |
docker volume rm mon-volume | supprime un volume, s'il n'est plus utilisé |
docker volume prune | supprime les volumes anonymes inutilisés ; --all y ajoute les volumes nommés |
docker system df -v | taille de chaque volume, voir Espace disque Linux |
Avec Compose, le nom réel d'un volume est préfixé par le nom du projet, en général celui du dossier : base_donnees devient par exemple monapp_base_donnees dans docker volume ls.
La commande qui efface tout
docker compose down arrête et supprime les conteneurs et les réseaux du projet, mais garde les volumes. docker compose down -v, lui, supprime aussi les volumes nommés déclarés dans le fichier et les volumes anonymes : la base de données part avec. Réservez cette option à un projet que vous voulez effacer pour de bon.
docker volume prune et docker system prune --volumes demandent la même prudence. Avant de nettoyer, regardez avec docker volume ls ce qui serait supprimé.
Mettre un conteneur à jour sans perdre ses données
Si les données sont dans un volume ou un dossier monté, une mise à jour se fait en trois commandes, dans le dossier du projet : docker compose pull, puis docker compose up -d, puis une vérification avec docker compose ps. Le conteneur est recréé, le volume est rattaché tel quel. La marche à suivre complète, avec la copie de précaution, est dans Mettre à jour un conteneur Docker.
Pour savoir si une application garde bien ses données, cherchez dans sa documentation le chemin qu'elle utilise et vérifiez qu'il figure dans volumes:. Un test simple : créez une donnée, recréez le conteneur avec docker compose up -d --force-recreate, et vérifiez qu'elle est toujours là.
Sur un VPS Hubspace
Docker et Compose sont installés à la livraison, utilisables par le compte admin sans sudo. Les volumes nommés vivent sur le disque principal du serveur, compris dans la sauvegarde quotidienne gardée sept jours.
Un disque supplémentaire, monté sur /mnt/data, n'est pas compris dans cette sauvegarde. Si vous y placez des dossiers montés pour gagner de la place, prévoyez leur propre copie ; voir Sauvegarder ses conteneurs Docker. La sauvegarde du disque ne remplace pas non plus un export de base de données cohérent, utile pour récupérer une seule application.
Questions fréquentes
Où se trouvent les fichiers d'un volume sur le serveur ?
Sous /var/lib/docker/volumes/<nom>/_data, comme l'indique docker volume inspect. Ne les modifiez pas à cet endroit pendant que le conteneur tourne : passez par le conteneur ou par une copie.
Que deviennent mes volumes si je supprime le conteneur ?
Ils restent. Un volume nommé ne disparaît qu'avec docker volume rm, docker volume prune --all ou docker compose down -v.
Peut-on partager un volume entre deux conteneurs ?
Oui, en le déclarant dans les deux services. Veillez à ce qu'un seul programme écrive dans une base de données à la fois : deux moteurs sur les mêmes fichiers les abîment.
Articles liés
- Installer Docker sur Ubuntu ou Debian, pas à pasInstaller Docker Engine et Docker Compose sur Ubuntu 24.04, 26.04 ou Debian 13 depuis le dépôt officiel, l'utiliser sans sudo et vérifier que tout fonctionne.
- Docker Compose : décrire et lancer vos conteneursDocker Compose expliqué : écrire un fichier compose.yaml, lancer et arrêter vos services, lire les journaux et mettre à jour une application sur un serveur.
- Commandes Docker : les essentielles à connaîtreLes commandes Docker essentielles : lister les conteneurs, lire leurs journaux, entrer dans un conteneur, gérer les images et libérer de la place sans risque.