Docker pour développeurs WordPress et PHP : guide pratique (2026)
Docker simplifie radicalement le développement local WordPress et PHP. Ce guide vous montre comment configurer un environnement Docker complet avec WordPress, PHP 8.4, MySQL et MailHog, reproductible sur tous les postes de votre équipe.
Fini les “ça marche sur ma machine” — Docker garantit que votre environnement de développement est identique sur tous les postes et en production. Pour les développeurs WordPress et PHP, Docker remplace XAMPP, WAMP, MAMP et les configurations PHP/Apache manuelles.
Pourquoi Docker pour le développement local ?
Problème classique : vous développez sur PHP 8.2, le client a PHP 7.4 en prod, votre collègue a PHP 8.4. Les comportements diffèrent et les bugs de compatibilité sont impossibles à reproduire. Docker résout ça en encapsulant l’environnement entier (PHP, serveur web, base de données) dans des conteneurs portables.
docker-compose.yml pour WordPress
version: '3.8'
services:
wordpress:
image: wordpress:6.7-php8.3-apache
ports:
- '8080:80'
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp
WORDPRESS_DB_PASSWORD: secret
WORDPRESS_DEBUG: '1'
volumes:
- ./wp-content:/var/www/html/wp-content # Vos thèmes et plugins en local
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: rootsecret
volumes:
- db_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
ports:
- '8081:80'
environment:
PMA_HOST: db
depends_on:
- db
mailhog:
image: mailhog/mailhog
ports:
- '1025:1025' # SMTP
- '8025:8025' # Interface web
volumes:
db_data:
Lancez avec docker compose up -d. WordPress est accessible sur http://localhost:8080, phpMyAdmin sur http://localhost:8081, MailHog (intercepte les emails) sur http://localhost:8025.
Dockerfile pour une application PHP/Symfony personnalisée
FROM php:8.3-fpm-alpine
# Extensions PHP nécessaires
RUN apk add --no-cache
git
libpng-dev
libzip-dev
icu-dev
&& docker-php-ext-install
pdo_mysql
gd
zip
intl
opcache
# Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader
COPY . .
# OPCache configuration
COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
Volumes : garder vos données entre les redémarrages
Sans volume, vos données disparaissent quand le conteneur s’arrête. Deux types de volumes :
- Bind mounts (
./wp-content:/var/www/html/wp-content) — lie un dossier local au conteneur. Parfait pour développer : vous éditez en local, les changements sont immédiatement visibles dans le conteneur. - Named volumes (
db_data:/var/lib/mysql) — données gérées par Docker, persistées entre les redémarrages. Idéal pour la base de données.
WP-CLI dans Docker
WP-CLI est l’outil en ligne de commande WordPress. Dans Docker :
# Ajouter au docker-compose.yml
wpcli:
image: wordpress:cli
volumes:
- ./wp-content:/var/www/html/wp-content
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp
WORDPRESS_DB_PASSWORD: secret
WP_CLI_ALLOW_ROOT: '1'
# Usage
docker compose run --rm wpcli wp plugin list
docker compose run --rm wpcli wp user create dev dev@local.fr --role=administrator --user_pass=dev
docker compose run --rm wpcli wp cache flush
Partager l’environnement avec l’équipe
Committez le docker-compose.yml dans votre dépôt git. Ajoutez un Makefile pour simplifier les commandes fréquentes :
up:
docker compose up -d
down:
docker compose down
shell:
docker compose exec wordpress bash
logs:
docker compose logs -f wordpress
db-export:
docker compose exec db mysqldump -uwp -psecret wordpress > backup.sql
Tout développeur qui rejoint l’équipe a un environnement fonctionnel en 5 minutes avec make up. Pas de documentation à suivre, pas de configuration manuelle.