Docker Wordpress · 8 min read · Oct 14, 2025
Dockeriser Wordpress avec Nginx et PHP-FPM sur Ubuntu 16.04
Docker-Compose est un outil en ligne de commande pour définir et gérer des conteneurs docker multi-conteneurs comme s’il s’agissait d’un seul service. Compose est écrit en python et peut être installé avec la commande Python pip. Avec compose, nous pouvons exécuter plusieurs conteneurs docker avec une seule commande. Cela vous permet de créer un conteneur en tant que service, idéal pour votre environnement de développement, de test et de mise en scène.
Dans ce tutoriel, je vais vous guider étape par étape pour utiliser docker-compose. Nous allons déployer ‘Wordpress‘ avec Nginx, MySQL et PHP-FPM. Chaque service a son propre conteneur, et nous utiliserons des images du registre docker hub. Je vais vous montrer comment créer des conteneurs à partir d’images docker et gérer tous les conteneurs avec docker-compose.
Prérequis
- Ubuntu 16.04
- Privilèges root
Étape 1 - Installer Docker
Nous allons commencer à partir de zéro, en installant docker et docker compose manuellement avec la commande apt.
Avant de commencer, mettez à jour le dépôt Ubuntu et installez les dernières mises à jour :
sudo apt-get update
sudo apt-get upgradePar défaut, docker est disponible dans le dépôt Ubuntu, donc nous pouvons continuer à l’installer immédiatement :
sudo apt-get install -y docker.ioLorsque l’installation est terminée, démarrez docker et ajoutez-le pour qu’il démarre automatiquement au démarrage :
systemctl start docker
systemctl enable dockerMaintenant, testez votre installation docker avec la commande ci-dessous :
docker run hello-worldVous verrez hello-world de docker.
Étape 2 - Installer Docker-Compose
Docker-compose est un script écrit en python, il est disponible dans le dépôt PyPI python et peut être installé avec python pip. Nous devons donc d’abord installer python et python pip sur notre système.
Installez python et python-pip :
sudo apt-get install -y python python-pipEnsuite, installez docker-compose avec la commande pip :
pip install docker-composeattendez que le processus d’installation se termine. Ensuite, vérifiez l’installation avec la commande docker-compose :
docker-compose -vVous obtiendrez la version de docker-compose.
Étape 3 - Configurer Wordpress
Maintenant, docker et docker-compose sont installés sur le système. Dans cette étape, je vais vous montrer comment créer et configurer l’environnement docker-compose pour notre projet WordPress.
Nous allons déployer l’application PHP ‘Wordpress’ avec Nginx comme serveur web, et MariaDB pour la base de données MySQL en tant que conteneurs docker gérés par docker-compose. Chaque application (Wordpress, Nginx et MySQL) s’exécutera dans son propre conteneur, vous pouvez voir la liste ci-dessous :
Nginx : Nous utilisons l’image docker officielle, dernière version ‘nginx:latest’.
Wordpress : Wordpress fournit certaines images docker sur docker-hub, et nous allons utiliser WordPress 4.7 avec PHP-FPM 7.0 dessus.
MySQL : Nous allons utiliser le conteneur officiel de MariaDB, dernière version.
Nous avons donc besoin de 3 images docker du registre docker hub.
Nous ne ferons pas fonctionner docker en tant que root, nous utiliserons un utilisateur Linux normal. Créez donc simplement un nouvel utilisateur avec la commande ci-dessous (n’hésitez pas à utiliser un nom d’utilisateur différent ici, assurez-vous simplement que l’utilisateur n’existe pas encore. Si vous choisissez un nom différent, assurez-vous de le changer dans toutes les commandes qui suivent dans ce tutoriel) :
useradd -m -s /bin/bash hakase
passwd hakaseAjoutez maintenant l’utilisateur au groupe ‘docker‘ afin que l’utilisateur puisse utiliser la commande docker, et redémarrez le service docker :
usermod -a -G docker hakase
systemctl restart dockerConnectez-vous à l’utilisateur ‘hakase’ et créez un nouveau répertoire pour le projet WordPress :
su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/Ensuite, créez un nouveau fichier appelé ‘docker-compose.yml‘, et créez un nouveau répertoire pour le projet. Tapez simplement les commandes ci-dessous :
touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/Liste des fichiers et répertoires du projet :
docker-compose.yml : C’est le fichier de configuration docker-compose, vous devez le créer lorsque vous démarrez un nouveau projet docker-compose.
nginx/ : Ce répertoire est utilisé pour notre configuration nginx supplémentaire comme l’hôte virtuel, etc.
db-data/ : Le volume/répertoire pour les données mysql. Les données sql de ‘/var/lib/mysql’ sont montées dans le répertoire db-data.
logs/ : Répertoire pour les journaux d’application, nginx, mariadb et php-fpm.
wordpress/ : Tous les fichiers wordpress seront disponibles dans ce répertoire.
Dans le répertoire ‘nginx’, créez un nouveau fichier de configuration pour notre hôte virtuel wordpress.
Créez un nouveau fichier wordpress.conf :
vim nginx/wordpress.confCollez la configuration ci-dessous :
server {
listen 80;
server_name wp-hakase.co;
root /var/www/html;
index index.php;
access_log /var/log/nginx/hakase-access.log;
error_log /var/log/nginx/hakase-error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}Enregistrez le fichier et quittez vim.
Étape 4 - Configurer Docker-Compose
Dans cette étape, nous allons commencer à éditer le fichier docker-compose.yml. Lorsque vous souhaitez démarrer le projet docker-compose, assurez-vous de créer d’abord le fichier docker-compose.yml comme nous le faisons ci-dessous.
Éditez docker-compose.yml avec vim :
vim docker-compose.ymlDéfinissez vos services, sur la première ligne nous allons définir Nginx. Nous utilisons l’image docker officielle de Nginx, la dernière version, et configurons le mappage de port pour le port 80 sur le conteneur au port 80 sur l’hôte. Ensuite, configurez les volumes docker, le volume pour notre configuration d’hôte virtuel Nginx, le volume pour les fichiers journaux Nginx et le volume du répertoire racine web ‘/var/www/html’. Le conteneur Nginx est lié au conteneur WordPress.
Collez la configuration ci-dessous :
nginx:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx:/etc/nginx/conf.d
- ./logs/nginx:/var/log/nginx
- ./wordpress:/var/www/html
links:
- wordpress
restart: alwaysEnsuite, définissez le serveur MySQL. Nous utilisons l’image MariaDB, dernière version. Configurez le mappage de port pour le conteneur sur le port 3306, et configurez le mot de passe root MySQL avec la variable d’environnement ‘MYSQL_ROOT_PASSWORD’. Enfin, configurez le volume du conteneur pour le répertoire de données MySQL.
Collez la configuration ci-dessous :
mysql:
image: mariadb
ports:
- '3306:3306'
volumes:
- ./db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=aqwe123
restart: alwaysEnsuite, nous allons configurer le service WordPress en utilisant l’image docker WordPress 4.7 avec PHP-FPM 7.0 installé. Configurez le port pour PHP-fpm sur le port 9000, activez le volume docker pour le répertoire web ‘/var/www/html’ vers le répertoire hôte ‘wordpress’, configurez la base de données en définissant la variable d’environnement WordPress, et liez le service WordPress à mysql.
Collez la configuration ci-dessous :
wordpress:
image: wordpress:4.7.1-php7.0-fpm
ports:
- '9000:9000'
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wpdb
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_PASSWORD=aqwe123
links:
- mysql
restart: alwaysAprès avoir ajouté les trois parties dans le fichier docker-compose.yml, enregistrez le fichier et quittez l’éditeur vim.
Notre configuration docker-compose est prête.
Étape 5 - Exécuter Docker-compose
Commencez à créer les nouveaux conteneurs avec docker compose. Allez dans le répertoire wordpress-compose et démarrez les nouveaux conteneurs basés sur notre fichier compose.
cd ~/wordpress-compose/
docker-compose up -dVous pouvez voir les résultats de la commande. Trois conteneurs ont été créés. Vérifions l’état des conteneurs avec l’option ps :
docker-compose psVoici le résultat :

Si vous souhaitez voir la sortie des journaux du conteneur, vous pouvez utiliser les commandes ci-dessous :
docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpressJournaux des conteneurs :

Remarque :
Si vous voyez dans le journal du conteneur WordPress une erreur concernant la connexion MySQL refusée, ignorez-la.
Étape 6 - Installer Wordpress
Avant de faire cette étape, vérifions les ports disponibles/ouverts sur le système. Assurez-vous d’avoir 3 ports ouverts, le port 80, 3306 et le port 9000.
netstat -plntuLes résultats sont ci-dessous :

Maintenant, ouvrez votre navigateur web et tapez l’URL ou l’adresse IP du serveur.
Vous pouvez voir la page d’installation de WordPress. Choisissez votre langue et cliquez sur ‘Continuer‘.

Remplissez les détails de votre site comme le titre du site, l’utilisateur admin et le mot de passe, votre adresse e-mail, puis cliquez sur ‘Installer Wordpress‘.

Vous serez redirigé vers le ‘Tableau de bord Admin de Wordpress‘.

Et voici mon exemple de post WordPress bonjour le monde.

Wordpress a été installé avec docker-compose.
Étape 7 - Accéder au Conteneur Docker
Ceci est une étape supplémentaire sur la façon d’accéder à un conteneur avec docker-compose. Vérifiez que tous les conteneurs sont disponibles et montrez leur état :
docker-compose psNous avons déjà 3 conteneurs, maintenant nous pouvons essayer de nous connecter à chaque conteneur. Connectez-vous au premier conteneur Nginx avec la commande docker-compose.
docker-compose exec nginx bashnginx : nom du service dans le fichier docker-compose docker-compose.yml
bash : exécutez la commande shell bash
Maintenant, vérifiez notre configuration d’hôte virtuel WordPress.
cat /etc/nginx/conf.d/wordpress.conf
Les fichiers sont disponibles dans le conteneur.
Ensuite, essayez de vous connecter au conteneur mysql, puis connectez-vous à la shell mysql avec notre mot de passe dans le fichier compose.
docker-compose exec mysql bash
mysql -u root -p
TYPE MYSQL ROOT PASSWORDVoir la liste des bases de données :
show databases;Vous verrez notre base de données WordPress.

Dans le conteneur ‘wordpress’, vous verrez tous les fichiers WordPress.
docker-compose exec wordpress bash
ls -lahTous les conteneurs sont accessibles.
Référence
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.