📚 Docker pour les débutants : Le Chantier Naval

4.1 : Préparer le terrain : Création du réseau et des dossiers.

📄 Article ⏱ 5 ✅ Gratuit

Jusqu’à présent, nous avons surtout manipulé des conteneurs simples. Mais dans la vraie vie, une application n’est presque jamais seule. Elle dépend souvent d’autres services : une base de données, un cache, un moteur de recherche, etc.

Dans cette section, nous allons construire une petite stack web classique :

  • un serveur PHP/Apache pour exécuter le site
  • une base de données MariaDB pour stocker les informations

Et cette fois, nous allons tout faire manuellement avec docker run.
Ce n’est pas la méthode la plus pratique… mais c’est volontaire. L’objectif est de ressentir la complexité afin de mieux comprendre pourquoi Docker Compose existe (ce sera la section suivante).

Avant de lancer quoi que ce soit, comme sur un chantier, il faut préparer le terrain.

🌐 Créer un réseau pour nos conteneurs

Par défaut, Docker place les conteneurs dans un réseau interne appelé bridge.
Cela fonctionne, mais dans un projet réel il est préférable de créer un réseau dédié pour notre application.

Pourquoi ?

Parce que ce réseau va permettre :

  • aux conteneurs de communiquer entre eux
  • d’isoler notre application du reste des conteneurs
  • d’utiliser les noms de conteneurs comme noms DNS

Concrètement, notre serveur web pourra contacter la base de données simplement avec :

mariadb

au lieu d’une adresse IP.

Créons donc un réseau appelé monprojet-network :

docker network create monprojet-network

Docker nous renvoie normalement un identifiant de réseau.

On peut vérifier qu’il existe bien avec :

docker network ls

Vous devriez voir quelque chose comme :

NETWORK ID     NAME                DRIVER
xxxxxxx bridge bridge
xxxxxxx host host
xxxxxxx none null
xxxxxxx monprojet-network bridge

Notre réseau est prêt.

📁 Préparer l’arborescence du projet

Deuxième étape : préparer les dossiers du projet.

Dans Docker, un conteneur est éphémère.
Cela signifie que si on supprime le conteneur, tout ce qu’il contient disparaît.

Pour éviter cela, on va stocker certaines données sur l’hôte (votre serveur ou votre machine).

Dans notre projet, nous aurons besoin de deux choses :

  • un dossier pour le site PHP
  • un dossier pour les données de la base MariaDB

Créons un dossier de projet :

mkdir monprojet
cd monprojet

Puis l’arborescence suivante :

mkdir app
mkdir data

Ce qui donne :

monprojet/

├── app/ → contiendra notre site PHP
└── data/ → contiendra les données MariaDB

Ces dossiers seront montés dans les conteneurs au moment du lancement.

🧠 Pourquoi faire cela ?

Ces dossiers vont permettre deux choses essentielles :

Le dossier app

Il contiendra notre site PHP.

Avantage :
nous pouvons modifier les fichiers directement depuis notre machine, sans reconstruire l’image Docker.

Le dossier data

Il contiendra les fichiers de la base MariaDB.

Avantage :
si le conteneur MariaDB est supprimé ou recréé, les données restent intactes.


📌 À retenir

Avant de lancer des conteneurs pour une application, il est recommandé de préparer :

  • un réseau Docker dédié pour la communication entre services
  • une arborescence de projet claire
  • des dossiers pour les données persistantes

Dans notre cas :

monprojet/
├── app
└── data

et le réseau :

monprojet-network

Tout est maintenant prêt pour la suite du chantier.

Dans la prochaine leçon, nous allons démarrer la base de données MariaDB avec docker run, en utilisant des variables d’environnement pour la configurer automatiquement. 🚀