📚 Docker pour les débutants : Le Chantier Naval

TP N°1 : Déployer un site PHP qui affiche « Connexion BDD OK ».

🔧 TP ⏱ 10 ✅ Gratuit

Nous avons maintenant les trois conteneurs de notre stack en fonctionnement :

apache
php
mariadb

Ils sont tous connectés au réseau :

monprojet-network

Dans ce premier TP, nous allons mettre en place un petit site PHP capable de se connecter à la base de données MariaDB et d’afficher simplement :

Connexion BDD OK

L’objectif n’est pas de créer une application complexe, mais de valider que tous les conteneurs communiquent correctement entre eux.

🎯 Objectif du TP

À la fin de cet exercice, vous devrez pouvoir ouvrir votre navigateur sur :

http://localhost:8080

Ou depuis indiquant l’adresse IP du serveur hôte Docker depuis un votre ordinateur si vous avez opté pour une installation « serveur » sans interface graphique

et voir apparaître :

Connexion BDD OK

Si ce message apparaît, cela signifie que :

  • Apache sert correctement les pages web
  • PHP exécute les scripts
  • PHP peut contacter MariaDB
  • le réseau Docker fonctionne correctement

Bref : toute la stack est opérationnelle.

📁 Créer le fichier du site

Dans le dossier app que nous avons créé précédemment, créons un fichier :

app/index.php

Ajoutez le contenu suivant :

<?php

$host = "mariadb";
$db = "monsite";
$user = "monsiteuser";
$pass = "monsitepassword";

try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
echo "Connexion BDD OK";
} catch (PDOException $e) {
echo "Erreur de connexion : " . $e->getMessage();
}

Ce script PHP va simplement essayer de se connecter à la base MariaDB.

🔍 Comprendre ce script

La ligne la plus importante est :

$host = "mariadb";

Pourquoi mariadb ?

Parce que dans le réseau Docker monprojet-network, chaque conteneur est accessible par son nom.

Le conteneur PHP peut donc contacter la base de données via :

mariadb

sans connaître son adresse IP.

🌐 Tester l’application

Ouvrez votre navigateur et rendez-vous sur :

http://localhost:8080

Si tout est correctement configuré, vous devriez voir :

Connexion BDD OK

🎉 Félicitations ! Votre première application web multi-conteneurs fonctionne.

🔎 Que se passe-t-il réellement ?

Lorsqu’un utilisateur accède au site :

http://localhost:8080

le flux devient :

Navigateur


Apache


PHP-FPM


MariaDB

1️⃣ Apache reçoit la requête du navigateur
2️⃣ Apache transmet le script .php au conteneur PHP
3️⃣ PHP exécute le script
4️⃣ PHP se connecte à MariaDB
5️⃣ Le message Connexion BDD OK est renvoyé au navigateur

🧪 En cas de problème

Si le message ne s’affiche pas, plusieurs vérifications sont possibles.

Vérifier les conteneurs

docker ps

Les trois conteneurs doivent être en cours d’exécution.

Vérifier les logs Apache

docker logs apache

Vérifier les logs PHP

docker logs php

Vérifier les logs MariaDB

docker logs mariadb

Les logs sont le premier outil de diagnostic lorsqu’un conteneur ne fonctionne pas comme prévu.


📌 À retenir

Dans ce TP, vous avez :

  • déployé un site PHP simple
  • connecté PHP à MariaDB
  • validé la communication entre trois conteneurs
  • testé l’ensemble via un navigateur web

Votre stack Docker fonctionne maintenant pleinement.

Dans la prochaine section, nous allons découvrir Docker Compose, qui permet de décrire toute cette architecture dans un simple fichier YAML, au lieu de lancer plusieurs commandes docker run. 🚀