Après avoir vu les Bind Mounts, passons à la deuxième méthode de persistance des données : les Named Volumes.
Contrairement aux Bind Mounts, Docker s’occupe entièrement du stockage. Vous n’avez pas besoin de créer ou gérer des dossiers sur votre machine : Docker crée et organise tout automatiquement. Cela rend votre projet plus portable et sécurisé, particulièrement en production.
Comment ça fonctionne ?
Un Named Volume est simplement un volume Docker avec un nom spécifique.
Vous le montez dans un conteneur pour stocker les données à un emplacement précis.
Exemple avec un conteneur web Apache/PHP :
docker run -d \
--name mon-site \
-v my_data:/var/www/html \
php:8.2-apache
Ici :
my_dataest le nom du volume Docker./var/www/htmlest le dossier à l’intérieur du conteneur où se trouvent vos fichiers web.- Docker crée le volume
my_datasi ce n’est pas déjà fait, et s’assure que tout ce qui est écrit dans/var/www/htmlreste disponible même si le conteneur est supprimé.
Schéma simplifié :
CONTENEUR : /var/www/html
│
▼
VOLUME NOMMÉ : my_data
(stockage géré par Docker)
✅ Avantages des Named Volumes
- Docker gère automatiquement l’emplacement et la structure du volume.
- Les données sont persistantes même après la suppression ou la mise à jour du conteneur.
- Plus portable et sécurisé : vous pouvez déplacer vos conteneurs sur un autre serveur sans vous soucier des chemins locaux.
- Idéal pour la production, où la gestion manuelle des dossiers hôtes peut poser problème.
⚠️ Points à connaître
- Vous n’avez pas un accès direct aux fichiers comme avec un Bind Mount.
- Pour inspecter ou sauvegarder les fichiers, il faudra passer par Docker CLI ou créer un conteneur temporaire :
docker run --rm -v my_data:/data busybox ls /data - Les volumes occupent de l’espace sur le disque, mais Docker s’occupe de tout.
- ⚠️ Attention avec Docker Compose :
La commandedocker-compose down -vsupprime tous les volumes associés au projet, donc toutes vos données persistantes disparaîtront. Utilisez-la avec précaution, surtout en production.
Exemple concret
Création d’un conteneur WordPress avec Named Volume pour la persistance des fichiers :
docker run -d \
--name wordpress \
-v wordpress_data:/var/www/html \
-e WORDPRESS_DB_HOST=db \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=secret \
wordpress:latest
Même si le conteneur est supprimé et recréé :
docker rm -f wordpress
docker run -d \
--name wordpress \
-v wordpress_data:/var/www/html \
-e WORDPRESS_DB_HOST=db \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=secret \
wordpress:latest
✅ Les fichiers, thèmes et plugins restent intacts, car tout est stocké dans le volume nommé.
🧠 À retenir
- Les Named Volumes sont gérés par Docker et sont persistants.
- Ils sont idéaux pour la production et les environnements multi-containers.
- Pour le développement rapide et l’accès direct aux fichiers, les Bind Mounts restent pratiques.
- ⚠️ Alerte Compose :
docker-compose down -vsupprime définitivement tous les volumes associés.