Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Volume Docker : garder ses données

Un volume Docker est un espace de stockage géré par Docker, monté dans un conteneur, qui survit à la suppression de ce conteneur. Tout ce qu'un conteneur écrit ailleurs disparaît quand on le recrée, à chaque mise à jour par exemple. Les données d'une application doivent donc vivre dans un volume nommé ou dans un dossier du serveur monté dans le conteneur. C'est la première chose à vérifier dans un fichier compose.

Par Jonathan Dewaele · publié le

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éessous /var/lib/docker/volumes/, géré par Dockerdans le dossier que vous indiquez
Accès depuis le serveurpar les commandes Dockerdirectement, comme n'importe quel dossier
Usage conseillédonnées internes, bases de donnéesfichiers à é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

CommandeEffet
docker volume lsliste les volumes
docker volume inspect base_donneesdétails, dont l'emplacement (Mountpoint)
docker volume create mon-volumecrée un volume à l'avance
docker volume rm mon-volumesupprime un volume, s'il n'est plus utilisé
docker volume prunesupprime les volumes anonymes inutilisés ; --all y ajoute les volumes nommés
docker system df -vtaille 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