Comprendre les volumes Docker : conserver les données de vos conteneurs

AL
Abdallah LISSER
14/09/2026
9 min de lecture
121 vues
Comprendre les volumes Docker : conserver les données de vos conteneurs

Introduction

Lorsque vous créez un conteneur Docker, celui-ci possède son propre système de fichiers. Vous pouvez créer des dossiers, enregistrer des fichiers ou installer des logiciels comme sur une machine Linux classique.

Cependant, il existe une différence très importante : les données d'un conteneur sont temporaires.

Si vous supprimez le conteneur, toutes les données qui étaient enregistrées à l'intérieur disparaissent également.

C'est justement pour résoudre ce problème que Docker propose les volumes.

Dans ce tutoriel, nous allons découvrir ce qu'est un volume Docker, pourquoi il est indispensable et comment l'utiliser pour conserver vos données, même après la suppression d'un conteneur.

Étape 1 - Pourquoi utiliser un volume Docker ?

Avant de découvrir les volumes, il est important de comprendre le fonctionnement d'un conteneur.

Lorsque vous lancez un conteneur, Docker crée un environnement totalement isolé. Vous pouvez y créer des fichiers, installer des applications ou modifier son contenu.

Par exemple, imaginons que vous créez un fichier appelé notes.txt dans votre conteneur.

Tout fonctionne normalement.

En revanche, si vous supprimez ce conteneur avec Docker, le fichier disparaît définitivement.

C'est un comportement normal, car un conteneur est conçu pour être facilement créé, supprimé puis recréé.

Pour une application web, une base de données ou un serveur de fichiers, perdre toutes les données serait évidemment un problème.

C'est pour cette raison que Docker propose les volumes.

Un volume est un espace de stockage qui est séparé du conteneur.

Les données sont enregistrées dans ce volume et non directement dans le conteneur.

Ainsi, même si le conteneur est supprimé, les données restent disponibles.

Étape 2 - Comprendre le fonctionnement d'un volume

On peut voir un volume comme un disque dur externe que l'on branche sur un ordinateur.

L'ordinateur peut être remplacé, mais le disque dur conserve toutes les données.

Docker fonctionne exactement selon le même principe.

Le conteneur peut lire et modifier les fichiers présents dans le volume.

Si le conteneur est supprimé, le volume reste toujours présent.

Lorsqu'un nouveau conteneur est créé avec ce même volume, il retrouve immédiatement toutes les données enregistrées précédemment.

C'est ce mécanisme qui permet aux applications Docker de conserver leurs informations.

Étape 3 - Dans quels cas utiliser un volume ?

Les volumes sont utilisés dès qu'une application doit conserver des données.

Voici quelques exemples très courants.

Une base de données MySQL

Une base de données contient toutes les informations de votre application.

Sans volume, toutes les tables disparaîtraient à chaque suppression du conteneur.

Avec un volume, la base reste intacte.

Un serveur web

Un site Internet contient des images, des fichiers HTML, du CSS ou encore du PHP.

Grâce aux volumes, ces fichiers restent présents même si le conteneur Apache ou Nginx est recréé.

WordPress

Les thèmes, les extensions ainsi que les fichiers envoyés par les utilisateurs sont enregistrés dans un volume Docker.

Sauvegardes

Les sauvegardes peuvent également être enregistrées dans un volume afin d'être réutilisées par plusieurs conteneurs.

Étape 4 - Les avantages des volumes Docker

Les volumes présentent de nombreux avantages.

Ils permettent notamment de :

  • conserver les données après la suppression d'un conteneur ;
  • partager des données entre plusieurs conteneurs ;
  • faciliter les sauvegardes ;
  • améliorer les performances d'accès aux fichiers ;
  • séparer les données de l'application.

Dans la majorité des projets Docker, les volumes sont indispensables.

Une base de données ou un site web est presque toujours associé à un ou plusieurs volumes.

Étape 5 - Les différents types de stockage Docker

Docker propose plusieurs façons de stocker des données.

Les données internes du conteneur

Les fichiers sont enregistrés directement dans le conteneur.

Si le conteneur est supprimé, tout disparaît.

Les bind mounts

Docker utilise directement un dossier présent sur votre ordinateur.

Exemple :

C:\Documents\Projet => Conteneur

Le conteneur utilise alors les fichiers présents sur votre machine.

Cette méthode est très pratique pendant le développement.

Les volumes Docker

Docker crée lui-même un espace de stockage spécialement conçu pour les conteneurs.

Volume Docker => Conteneur

C'est la méthode la plus utilisée en production.

Elle est plus simple à gérer et plus sécurisée.

Étape 6 - Créer un volume Docker

Pour créer un volume, utilisez la commande suivante :

docker volume create volume_sysnettuto

Explication :

  • docker volume permet de gérer les volumes Docker.
  • create crée un nouveau volume.
  • volume_sysnettuto est le nom que nous donnons à notre volume.

Une fois la commande exécutée, Docker affiche simplement le nom du volume créé.

Résultat attendu :

Le volume est maintenant disponible et prêt à être utilisé par un ou plusieurs conteneurs.

Étape 7 - Afficher les volumes existants

Pour voir tous les volumes présents sur votre machine, utilisez la commande suivante :

docker volume ls

Résultat attendu :

Explication :

  • DRIVER indique le pilote utilisé par Docker. Dans la plupart des cas, il s'agit de local.
  • VOLUME NAME correspond au nom du volume.

Cette commande est très utile pour vérifier qu'un volume existe avant de l'utiliser.

Étape 8 - Utiliser un volume avec un conteneur

Nous allons maintenant créer un conteneur Ubuntu en utilisant notre volume.

docker run -it --name ubuntu-volume \

-v volume_sysnettuto:/data \

ubuntu:24.04

Explication de la commande :

  • docker run crée un nouveau conteneur.
  • -it ouvre un terminal interactif.
  • --name ubuntu-volume donne un nom au conteneur.
  • -v volume_sysnettuto:/data associe le volume Docker au dossier /data du conteneur.
  • ubuntu:24.04 indique l'image utilisée.

Une fois le conteneur démarré, vous obtenez une invite de commande similaire à celle-ci :

Vous êtes maintenant à l'intérieur du conteneur.

Étape 9 - Enregistrer des données dans le volume

Créons maintenant un fichier dans le dossier /data.

echo "Bonjour SysNetTuto" > /data/test.txt

Cette commande crée un fichier appelé test.txt contenant le texte Bonjour SysNetTuto.

Pour vérifier son contenu :

cat /data/test.txt

Résultat attendu :

À ce stade, le fichier est enregistré dans le volume Docker et non directement dans le système de fichiers du conteneur.

Étape 10 - Afficher les informations d'un volume

Docker permet d'obtenir des informations détaillées sur un volume.

Exécutez la commande suivante depuis un autre terminal :

docker volume inspect volume_sysnettuto

Vous obtenez un résultat similaire à celui-ci :

Explication :

  • Name correspond au nom du volume.
  • Driver indique le pilote utilisé.
  • Mountpoint représente l'emplacement où Docker stocke les données sur votre machine.

En pratique, il n'est généralement pas nécessaire de modifier directement les fichiers présents dans ce dossier.

Étape 11 - Supprimer le conteneur

Quittez le conteneur :

exit

Vérifiez qu'il existe toujours :

docker ps -a

Supprimez ensuite le conteneur :

docker rm ubunt-volume

Le conteneur est supprimé.

En revanche, le volume n'est pas supprimé.

Toutes les données qu'il contient sont toujours présentes.

Étape 12 - Vérifier que les données sont toujours présentes

Créons un nouveau conteneur utilisant exactement le même volume.

docker run -it --name ubuntu-volume2 \

-v volume_sysnettuto:/data \

ubuntu:24.04

Affichons maintenant le contenu du fichier :

cat /data/test.txt

Résultat attendu :

Le fichier est toujours présent.

Pourtant, le premier conteneur a bien été supprimé.

Cela montre que les données étaient stockées dans le volume Docker et non dans le conteneur.

C'est tout l'intérêt des volumes : ils permettent de conserver les données indépendamment du cycle de vie des conteneurs.

Étape 13 - Supprimer un volume Docker

Lorsqu'un volume n'est plus utile, vous pouvez le supprimer.

Quittez d'abord le conteneur :

exit

Supprimez le conteneur :

docker rm ubuntu-volume2

Puis supprimez le volume :

docker volume rm volume_sysnettuto

Résultat attendu :

Le volume ainsi que toutes les données qu'il contenait sont définitivement supprimés.

Attention : un volume ne peut pas être supprimé s'il est encore utilisé par un conteneur.

Étape 14 - Nettoyer les volumes inutilisés

Au fil du temps, il est possible que plusieurs volumes inutilisés s'accumulent sur votre machine.

Pour supprimer tous les volumes qui ne sont associés à aucun conteneur, utilisez :

docker volume prune

Docker demande une confirmation :

Puis validez avec Entrée.

Cette commande permet de libérer facilement de l'espace disque.

Bon à savoir

Les volumes Docker sont utilisés dans la majorité des applications déployées avec Docker.

Par exemple :

  • MySQL, MariaDB ou PostgreSQL utilisent un volume pour conserver leurs bases de données.
  • WordPress stocke les images, les thèmes et les extensions dans un volume.
  • Nextcloud enregistre les fichiers des utilisateurs dans un volume.
  • Les applications développées avec Docker Compose utilisent très souvent un ou plusieurs volumes pour conserver leurs données.

Dès qu'une application doit conserver des fichiers ou des informations importantes, l'utilisation d'un volume est fortement recommandée.

Conclusion

Dans ce tutoriel, vous avez découvert le fonctionnement des volumes Docker et leur rôle essentiel dans la persistance des données.

Vous savez désormais :

  • créer un volume Docker ;
  • afficher les volumes disponibles ;
  • associer un volume à un conteneur ;
  • enregistrer des fichiers dans un volume ;
  • vérifier que les données sont conservées après la suppression d'un conteneur ;
  • supprimer un volume lorsqu'il n'est plus nécessaire.

Les volumes sont un élément fondamental de Docker. Ils permettent de séparer les données de l'application, de faciliter les sauvegardes et de garantir que vos informations restent accessibles, même si les conteneurs sont recréés. Ils sont donc indispensables pour héberger des bases de données, des sites web ou toute application nécessitant un stockage persistant.

Commentaires

Laisser un commentaire

0 / 2500 caractères
* Champs obligatoires. Votre commentaire sera publié immédiatement.

Soyez le premier à commenter cet article !

Image agrandie