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 upgrade

Par 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.io

Lorsque 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 docker

Maintenant, testez votre installation docker avec la commande ci-dessous :

docker run hello-world

Vous 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-pip

Ensuite, installez docker-compose avec la commande pip :

pip install docker-compose

attendez que le processus d’installation se termine. Ensuite, vérifiez l’installation avec la commande docker-compose :

docker-compose -v

Vous 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 hakase

Ajoutez 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 docker

Connectez-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.conf

Collez 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.yml

Dé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: always

Ensuite, 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: always

Ensuite, 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: always

Aprè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 -d

Vous 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 ps

Voici le résultat :

Démarrer Docker-compose Wordpress

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 wordpress

Journaux des conteneurs :

un exemple de la commande docker-compose logs

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 -plntu

Les résultats sont ci-dessous :

Port ouvert docker

Maintenant, ouvrez votre navigateur web et tapez l’URL ou l’adresse IP du serveur.

http://serverIP/

Vous pouvez voir la page d’installation de WordPress. Choisissez votre langue et cliquez sur ‘Continuer‘.

Installation de Wordpress définir la langue

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‘.

Installer Wordpress Remplir la configuration de l'utilisateur et du site

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

Tableau de bord Admin de Wordpress Docker-Compose

Et voici mon exemple de post WordPress bonjour le monde.

Wordpress avec Docker-Compose

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 ps

Nous 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 bash

nginx : 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

Service docker compose Nginx

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 PASSWORD

Voir la liste des bases de données :

show databases;

Vous verrez notre base de données WordPress.

Service Docker Compose MySQL

Dans le conteneur ‘wordpress’, vous verrez tous les fichiers WordPress.

docker-compose exec wordpress bash  
ls -lah

Tous les conteneurs sont accessibles.

Référence

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.