Sommaire
🐳 TUTORIEL PAS À PAS
📦 Installation de WordPress avec Docker
WordPress 7.0 est la dernière version majeure du CMS le plus populaire au monde, sortie en mai 2026. L’installer avec Docker présente de nombreux avantages : isolation des services, reproductibilité, déploiement en une seule commande, et mise à l’échelle facilitée. Ce tutoriel vous guide pas à pas dans l’installation d’une stack WordPress complète avec Docker Compose, utilisant MariaDB 11.8 et des volumes pour la persistance des données.
📖 Architecture de la stack :
- Conteneur WordPress 7.0 : l’application CMS elle-même (basée sur l’image officielle
wordpress:7.0). - Conteneur MariaDB 11.8 : la base de données pour stocker les articles, utilisateurs, commentaires et paramètres.
- Volumes Docker : pour persister les fichiers du site (thèmes, plugins, médias) et les données de la base.
- (Optionnel) : Nginx ou Traefik comme reverse proxy pour gérer le HTTPS.
📌 Prérequis :
- Un serveur Linux (Debian, Ubuntu, etc.) avec Docker et Docker Compose installés.
- Un domaine pointant vers l’IP de votre serveur (recommandé pour la production).
- Les ports 80 (HTTP) et 443 (HTTPS) ouverts.
- Un utilisateur avec les droits
sudo.
⚠️ Versions utilisées : Ce tutoriel utilise WordPress 7.0 et MariaDB 11.8, les versions stables les plus récentes en août 2026. Si vous préférez une version LTS, vous pouvez remplacer
mariadb:11.8 par mariadb:11.4.
1 Installation de Docker et Docker Compose
1.1 – Mise à jour du système
$ sudo apt update && sudo apt upgrade -y
✅ Système à jour.
1.2 – Installation de Docker
Utilisez le script d’installation officiel de Docker :
$ curl -fsSL https://get.docker.com | sh
Ajoutez votre utilisateur au groupe
docker pour éviter d’utiliser sudo à chaque commande :
$ sudo usermod -aG docker $USER
Déconnectez-vous et reconnectez-vous pour appliquer les changements.
✅ Docker installé.
1.3 – Vérification de l’installation
$ docker run hello-world
✅ Docker fonctionne correctement.
1.4 – Installation de Docker Compose (plugin)
Docker Compose est désormais intégré sous forme de plugin. Vérifiez sa présence :
$ docker compose version
✅ Docker Compose disponible.
2 Création du fichier docker-compose.yml
2.1 – Créer le répertoire de travail
$ mkdir ~/wordpress-docker && cd ~/wordpress-docker
✅ Répertoire créé.
2.2 – Rédiger le fichier
docker-compose.yml
Créez le fichier avec la configuration suivante. Remplacez les mots de passe par des mots de passe forts (32 caractères minimum).
# docker-compose.yml – WordPress 7.0 + MariaDB 11.8
services:
db:
image: mariadb:11.8
container_name: wordpress-db
restart: unless-stopped
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: CHANGE_ME_PASSWORD
MARIADB_ROOT_PASSWORD: CHANGE_ME_ROOT
volumes:
- db_data:/var/lib/mysql
networks:
- wordpress-network
wordpress:
image: wordpress:7.0
container_name: wordpress-app
restart: unless-stopped
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: CHANGE_ME_PASSWORD
# Clés de sécurité (générées automatiquement si absentes – recommandé de les définir)
volumes:
- wordpress_data:/var/www/html
networks:
- wordpress-network
volumes:
db_data:
wordpress_data:
networks:
wordpress-network:
driver: bridge
services:
db:
image: mariadb:11.8
container_name: wordpress-db
restart: unless-stopped
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: CHANGE_ME_PASSWORD
MARIADB_ROOT_PASSWORD: CHANGE_ME_ROOT
volumes:
- db_data:/var/lib/mysql
networks:
- wordpress-network
wordpress:
image: wordpress:7.0
container_name: wordpress-app
restart: unless-stopped
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: CHANGE_ME_PASSWORD
# Clés de sécurité (générées automatiquement si absentes – recommandé de les définir)
volumes:
- wordpress_data:/var/www/html
networks:
- wordpress-network
volumes:
db_data:
wordpress_data:
networks:
wordpress-network:
driver: bridge
Explications des variables :
MARIADB_DATABASE: nom de la base de données.MARIADB_USER/MARIADB_PASSWORD: identifiants de l’utilisateur WordPress.MARIADB_ROOT_PASSWORD: mot de passe root (à conserver précieusement).WORDPRESS_DB_HOST: adresse du conteneur base de données (nom du service).WORDPRESS_DB_PASSWORD: doit correspondre àMARIADB_PASSWORD.
✅ Fichier
docker-compose.yml prêt avec les dernières versions stables.
3 Lancement de la stack
3.1 – Démarrer les conteneurs
$ docker compose up -d
L’option
-d (detach) lance les conteneurs en arrière-plan. Docker va télécharger les images wordpress:7.0 et mariadb:11.8 si elles ne sont pas présentes localement.
✅ Conteneurs démarrés.
3.2 – Vérifier l’état des conteneurs
$ docker compose ps
✅ Les deux conteneurs (
wordpress-app et wordpress-db) sont en cours d’exécution.
3.3 – Accéder à l’installateur WordPress
Ouvrez un navigateur et accédez à
http://IP_DU_SERVEUR:8080.
http://IP_DU_SERVEUR:8080
✅ La page d’installation de WordPress 7.0 s’affiche.
4 Finalisation de l’installation
4.1 – Remplir le formulaire d’installation
Sur la page d’installation, renseignez :
- Titre du site : le nom de votre site.
- Nom d’utilisateur : évitez “admin”, choisissez un identifiant unique.
- Mot de passe : utilisez un mot de passe fort (le générateur automatique est recommandé).
- Email : votre adresse email pour les notifications.
✅ WordPress 7.0 installé. Vous êtes redirigé vers le tableau de bord.
5 Configurations avancées et production
5.1 – Ajouter les clés de sécurité (salts)
Pour renforcer la sécurité, ajoutez les clés d’authentification WordPress dans votre fichier
docker-compose.yml. Générez-les sur : https://api.wordpress.org/secret-key/1.1/salt/
# Ajouter dans la section environment du service wordpress
WORDPRESS_AUTH_KEY: 'votre_clé_unique_1'
WORDPRESS_SECURE_AUTH_KEY: 'votre_clé_unique_2'
WORDPRESS_LOGGED_IN_KEY: 'votre_clé_unique_3'
WORDPRESS_NONCE_KEY: 'votre_clé_unique_4'
WORDPRESS_AUTH_SALT: 'votre_clé_unique_5'
WORDPRESS_SECURE_AUTH_SALT: 'votre_clé_unique_6'
WORDPRESS_LOGGED_IN_SALT: 'votre_clé_unique_7'
WORDPRESS_NONCE_SALT: 'votre_clé_unique_8'
WORDPRESS_AUTH_KEY: 'votre_clé_unique_1'
WORDPRESS_SECURE_AUTH_KEY: 'votre_clé_unique_2'
WORDPRESS_LOGGED_IN_KEY: 'votre_clé_unique_3'
WORDPRESS_NONCE_KEY: 'votre_clé_unique_4'
WORDPRESS_AUTH_SALT: 'votre_clé_unique_5'
WORDPRESS_SECURE_AUTH_SALT: 'votre_clé_unique_6'
WORDPRESS_LOGGED_IN_SALT: 'votre_clé_unique_7'
WORDPRESS_NONCE_SALT: 'votre_clé_unique_8'
✅ Sécurité renforcée.
5.2 – Utiliser un reverse proxy pour HTTPS
En production, il est fortement recommandé d’activer HTTPS. Vous pouvez utiliser Traefik ou Nginx comme reverse proxy avec Let’s Encrypt.
Exemple avec Traefik : consultez le dépôt wordpress-traefik-letsencrypt-docker-compose.
✅ Site sécurisé en HTTPS.
5.3 – Utiliser des versions spécifiques des images
Évitez d’utiliser
latest en production. Ce tutoriel utilise les versions stables :
wordpress:7.0(dernière version stable en août 2026)mariadb:11.8(dernière version stable en août 2026)
✅ Stack stable et reproductible.
5.4 – Sauvegarder les volumes
Les données sont persistantes grâce aux volumes nommés
db_data et wordpress_data. Pour sauvegarder :
$ docker run --rm -v wordpress_data:/data -v $(pwd):/backup alpine tar czf /backup/wordpress_data_backup.tar.gz -C /data .
$ docker run --rm -v db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_data_backup.tar.gz -C /data .
$ docker run --rm -v db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_data_backup.tar.gz -C /data .
✅ Sauvegardes des données effectuées.
✅ Test de validation
🎉 Installation réussie si :
- La page d’accueil de WordPress s’affiche à
http://IP:8080. - Le tableau de bord est accessible via
http://IP:8080/wp-admin. - Les conteneurs sont en cours d’exécution (
docker compose ps). - Les données persistent après un redémarrage des conteneurs.
📚 Ressources complémentaires
- Image officielle WordPress sur Docker Hub
- Image officielle MariaDB sur Docker Hub
- Documentation Docker Compose
- Annonce de WordPress 7.0
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.
Se connecter