« Ça marche sur ma machine » : la phrase que Docker cherche précisément à rendre inutile. En empaquetant PHP, la base de données et toutes les extensions nécessaires dans des conteneurs isolés, il garantit que l’environnement d’un développeur, d’un serveur de test et de la production reste rigoureusement identique.
Monter un environnement WordPress en quelques commandes
Une configuration Docker courante pour WordPress associe plusieurs conteneurs orchestrés ensemble : un conteneur PHP-FPM pour exécuter le code, un conteneur MySQL ou MariaDB pour la base de données, et un conteneur Nginx ou Apache pour servir les pages. Cette approche facilite grandement la mise en place d’un environnement local reproductible d’une équipe à l’autre.
Exemple
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: motdepasse
Ce fragment de fichier docker-compose.yml décrit deux services liés : lancer docker compose up suffit à démarrer WordPress et sa base de données, accessibles sur le port 8080.
À ne pas confondre avec une machine virtuelle
- Un conteneur partage le noyau du système hôte, contrairement à une machine virtuelle qui embarque un système d’exploitation complet ; il démarre donc en quelques secondes et consomme bien moins de ressources.
- Les données d’un conteneur sont perdues à sa suppression sauf à utiliser un volume Docker, indispensable pour conserver la base de données ou les fichiers médias entre deux redémarrages.
- Docker facilite aussi l’intégration continue : le même conteneur utilisé en local peut exécuter les tests automatisés dans un pipeline, éliminant les écarts d’environnement.