Découvrez comment déployer une installation de WordPress dans des conteneurs Docker, à la fois manuellement et avec Docker Compose. Les développeurs WordPress trouveront utile de déployer WordPress dans des conteneurs Docker. En effet, Docker vous permet de faire des tests avec plusieurs configurations de WordPress et de lancer une nouvelle installation de WordPress avec quelques commandes simples.

Hébergement WordPress
WordPress, plus facile et rapide grâce à l'IA
  • Création et personnalisation de votre site assistées par IA
  • 3x plus rapide : SSD, mise en cache et plus
  • Analyses de sécurité quotidiennes, protection DDoS et disponibilité de 99,98 %

Exigences

Pour que WordPress fonctionne sans problème dans les conteneurs Docker, vous devez disposer d’une distribution Linux récente et prise en charge. Les versions antérieures telles que CentOS 7 ou Ubuntu 14.04 sont obsolètes et doivent être remplacées par des alternatives modernes. Sont recommandées :

  • Ubuntu 22.04 LTS ou une version plus récente.
  • Debian 12 ou version plus récente.
  • Une version récente de Red Hat Enterprise Linux (RHEL) ou AlmaLinux.

De plus, Docker doit être installé et prêt à l’usage. La version minimum requise de Docker est la version 20.10 ou supérieure, afin de pouvoir bénéficier des dernières améliorations en matière de sécurité et de performance. Si vous souhaitez utiliser Docker Compose, assurez-vous d’utiliser au moins la version 2.x, car les versions antérieures ne sont plus activement maintenues.

Des connaissances de base sur l’utilisation de la ligne de commande, sur Docker Compose et sur Docker en général sont utiles. Si vous prévoyez des configurations plus importantes ou évolutives, jetez un œil à Kubernetes afin d’effectuer une orchestration de conteneurs de niveau professionnel.

Exécution de WordPress dans des conteneurs Docker

Une installation réussie de WordPress se compose de trois éléments :

  • Le logiciel WordPress
  • Une base de données MySQL ou MariaDB
  • Les dernières étapes de l’installation, qui sont effectuées dans un navigateur

Pour les exemples suivants, les composants WordPress et MySQL/MariaDB sont exécutés dans des conteneurs liés distincts. Le conteneur sur lequel s’exécute le logiciel WordPress est associé à un port sur l’hôte afin que vous puissiez y accéder dans un navigateur.

Exécuter un conteneur MySQL/MariaDB

Après avoir lancé Docker, la première étape consiste à configurer la base de données. Pour cela, commencez par exécuter un conteneur appelé my-db. Vous pouvez utiliser MySQL ou MariaDB, qui est un remplacement de MySQL par drop-in.

MySQL

Démarrez un conteneur avec la commande :

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=MOTDEPASSE_SECURISE -d mysql:latest

MariaDB

Démarrez un conteneur avec la commande :

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=MOTDEPASSE_SECURISE -d mariadb:latest
Note

Veillez à utiliser dans tous les cas un mot de passe sécurisé pour votre base de données. L’utilisation de variables d’environnement pour stocker les mots de passe est également une faille de sécurité potentielle. Il est préférable d’utiliser un secret Docker ou un fichier de configuration sécurisé à la place.

Créer une base de données

Après avoir créé votre conteneur, vous devez créer la base de données que vous souhaitez utiliser pour votre installation WordPress.

MySQL

Connectez-vous à votre conteneur de base de données que vous venez de créer à l’aide de la commande suivante :

docker exec -it my-db mysql -u root -p

Créez ensuite une base de données :

CREATE DATABASEversion: '3'
services:
    wordpress:
        image: wordpress:latest
        links:
            - wordpress_db:mysql
        ports:
            - 8080:80
    wordpress_db:
        image: mysql
        environment:
            MYSQL_ROOT_PASSWORD: MOTDEPASSE_SECURISE wordpress-db;

MariaDB

Connectez-vous au conteneur de base de données que vous venez de créer à l’aide de la commande suivante :

docker exec -it my-db mariadb -u root -p

Créez maintenant une base de données :

CREATE Database wordpress-db;

Exécuter un conteneur WordPress

Exécutez désormais un conteneur à partir de l’image officielle de WordPress, qui sera mappé sur le port hôte 8080 et associé au conteneur de la base de données.

Prenez en compte les éléments suivants :

  • Si vous avez un pare-feu, vous devrez peut-être ajouter l’accès au port 8080.
  • Si vous avez déjà exécuté un autre service sur le port 8080, vous pouvez sélectionner un autre port sur l’hôte.

La commande varie légèrement selon que vous utilisez MySQL ou MariaDB :

MySQL

Démarrez un conteneur WordPress avec la commande suivante :

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latest

MariaDB

Démarrez un conteneur WordPress avec la commande :

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latest

Il existe de nombreuses autres variables d’environnement que vous pouvez ajouter à cette commande si vous souhaitez remplacer les paramètres par défaut, parmi lesquelles :

  • -e WORDPRESS_DB_HOST=[hostname] : la valeur par défaut est l’adresse IP et le port du conteneur MySQL/MariaDB lié. Cette variable vous permet d’accéder à une base de données MySQL/MariaDB sur un autre serveur.
  • -e WORDPRESS_DB_USER=[nom d’utilisateur] : la valeur par défaut est root.
  • -e WORDPRESS_DB_PASSWORD=[mot de passe] : la valeur par défaut est la variable d’environnement MYSQL_ROOT_PASSWORD du conteneur MySQL/MariaDB lié.
  • -e WORDPRESS_DB_NAME=[nom] : la valeur par défaut est « wordpress ».

Pour une sécurité accrue, il peut être utile de ne pas exécuter les conteneurs sur le réseau bridge par défaut. Vous pouvez utiliser votre propre réseau à la place :

docker network create my-wp-network
docker run --name my-db --network my-wp-network -e MYSQL_ROOT_PASSWORD=MOTDEPASSE_SECURISE -d mysql:latest
docker run --name my-wordpress --network my-wp-network -p 8080:80 -d wordpress:latest

Ici, vos conteneurs sont mieux isolés des autres conteneurs, ce qui réduit le risque de connexions indésirables. De plus, les règles réseau peuvent être configurées de manière plus détaillée, par exemple avec des règles de pare-feu spécifiques ou l’utilisation d’un reverse proxy.

Terminer l’installation dans un navigateur

Pour les dernières étapes de l’installation, vous devez accéder au conteneur WordPress via un navigateur.

Dans l’exemple précédent, nous avons mappé le port 8080 sur l’hôte vers le port 80 (services Web) sur le conteneur. De cette façon, vous pouvez accéder au conteneur dans un navigateur soit par l’adresse IP, soit par l’URL du serveur :

  • http://<server-ip>:8080
  • http://example.com:8080

Visitez l’URL dans un navigateur, choisissez votre langue d’installation, puis cliquez sur « Continue » (« Suivant »).

Image: Capture d’écran du choix de la langue WordPress
Vous pouvez maintenant choisir la langue d’installation dans votre navigateur.

Sur la page suivante, vous recevrez un message qui vous préparera à la suite de l’installation. Cliquez sur le bouton « Let’s go! » pour continuer.

Image: Capture d’écran du message d’installation de WordPress
Le message d’installation de WordPress vous informe de la prochaine étape de la configuration.

Vous devez maintenant indiquer votre base de données afin que le fichier wp-config.php puisse être créé :

Image: Capture d’écran de la connexion à la base de données WordPress
Spécifiez les informations demandées concernant votre base de données.

Notez que l’utilisateur par défaut est « root », sauf spécification contraire. Indiquez ici le nom de la base de données que vous avez créée ainsi que le mot de passe choisi. Un clic sur « Submit » (« Soumettre ») vous guidera tout au long du processus d’installation.

Image: Capture d’écran de l’installation de WordPress : informations sur le site
Fournissez les informations demandées sur votre site WordPress.
  • Nom du site Web : remplissez le nom de votre site Web.
  • Nom d’utilisateur : il s’agit du nom d’utilisateur admin le plus important pour votre site Web. Remarque : pour des raisons de sécurité, nous vous recommandons de ne pas utiliser « Admin » ou le nom/URL de votre site Web.
  • Mot de passe : notez ce mot de passe dans un endroit sécurisé avant de continuer.
  • Email : il s’agit de l’adresse email de l’utilisateur admin principal.

Cliquez ensuite sur le bouton « Install WordPress » pour terminer l’installation.

Image: Capture d’écran de l’installation réussie de WordPress
Le message indique que l’installation a réussi.

Une fois l’installation réussie, vous recevrez un message de succès et pourrez ensuite vous connecter à WordPress.

Exécuter WordPress avec Docker Compose

L’utilisation de Docker Compose pour exécuter WordPress est aussi une possibilité. Pour plus d’informations sur l’installation et l’utilisation de Docker Compose, consultez notre article dédié à l’orchestration Docker avec Swarm et Compose. Fondamentalement, l’outil vous permet de définir tous les services dont vous avez besoin dans un seul fichier et de les lancer ensemble.

Créer un fichier YAML

Créez tout d’abord un répertoire pour votre projet et accédez-y :

sudo mkdir wordpress
cd wordpress

Créez un fichier YAML appelé docker-compose.yml avec la commande :

sudo nano docker-compose.yml

Le contenu du fichier varie légèrement selon que vous utilisez MySQL ou MariaDB :

MySQL

Ajoutez ce qui suit dans le fichier :

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mysql
    ports:
        - 8080:80
wordpress_db:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: MOTDEPASSE_SECURISE

Enregistrez et quittez le fichier.

MariaDB

Ajoutez ce qui suit dans le fichier :

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mariadb
    ports:
        - 8080:80
wordpress_db:
    image: mariadb
    environment:
        MYSQL_ROOT_PASSWORD: MOTDEPASSE_SECURISE

Enregistrez et quittez le fichier.

Démarrer les conteneurs

Utilisez maintenant Docker Compose pour démarrer ces conteneurs avec la commande suivante :

sudo docker compose up -d

La commande qui suit vous permet de vérifier que les conteneurs ont bien été créés :

sudo docker compose ps

Pour terminer l’installation, visitez le conteneur WordPress dans un navigateur. Pour cela, utilisez soit l’adresse IP, soit l’URL du serveur :

  • http://192.168.0.1:8080
  • http://example.com:8080

Utiliser Kubernetes pour des déploiements WordPress évolutifs

Pour les déploiements plus importants et productifs, vous pouvez utiliser Kubernetes (K8s). Kubernetes permet d’orchestrer des conteneurs WordPress sur plusieurs nœuds et de les gérer automatiquement. L’utilisation d’un cluster Kubernetes offre un certain nombre d’avantages tels que la mise à l’échelle automatique, les mécanismes de self-healing et la gestion centralisée des ressources. Une implémentation peut être réalisée par exemple avec Helm, un gestionnaire de paquets pour Kubernetes :

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer

Cela permet d’assurer un déploiement WordPress résilient et évolutif avec load balancing, des mises à jour automatiques et une prise en charge du failover.

New call-to-action
Cet article vous a-t-il été utile ?
Aller au menu principal