Table des matières
- Étape 1 - Pourquoi utiliser un volume Docker ?
- Étape 2 - Comprendre le fonctionnement d'un volume
- Étape 3 - Dans quels cas utiliser un volume ?
- Étape 4 - Les avantages des volumes Docker
- Étape 5 - Les différents types de stockage Docker
- Étape 6 - Créer un volume Docker
- Étape 7 - Afficher les volumes existants
- Étape 8 - Utiliser un volume avec un conteneur
- Étape 9 - Enregistrer des données dans le volume
- Étape 10 - Afficher les informations d'un volume
- Étape 11 - Supprimer le conteneur
- Étape 13 - Supprimer un volume Docker
- Étape 14 - Nettoyer les volumes inutilisés
- Bon à savoir
- Conclusion
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
Soyez le premier à commenter cet article !