📚 Docker pour les débutants : Le Chantier Naval

6.3 : Named Volumes (my_data:/var/www/html) : Laisser Docker gérer le stockage

📄 Article ⏱ 8 ✅ Gratuit

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_data est le nom du volume Docker.
  • /var/www/html est le dossier à l’intérieur du conteneur où se trouvent vos fichiers web.
  • Docker crée le volume my_data si ce n’est pas déjà fait, et s’assure que tout ce qui est écrit dans /var/www/html reste 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 commande docker-compose down -v supprime 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 -v supprime définitivement tous les volumes associés.