WordPress est le système de gestion de contenu (CMS) le plus populaire au monde. Plus de 40% du web fonctionne sur WordPress. Docker est un système de conteneurisation utilisé pour exécuter votre logiciel dans un environnement isolé. Le concept de conteneurisation n’est pas nouveau dans le monde du développement logiciel. Mais Docker le rend très convivial pour les développeurs.

Dans cet article, nous allons vous montrer comment installer un site WordPress dans un conteneur Docker.

Pourquoi Docker ?

Pourquoi Docker, me demanderez-vous ?

La réponse est la simplicité. Dans Docker, votre application est conteneurisée dans une image. Il n’est pas nécessaire de faire une installation et une configuration compliquées pour le faire fonctionner.

Sans oublier qu’il est également plus rapide et plus facile pour vous de migrer/mettre à niveau vers un autre serveur. Dites que votre WordPress devient très populaire et que vous devez mettre à jour votre serveur existant ? C’est facile à faire avec Docker, puisque tout est déjà conteneurisé. Si vous développez quelque chose à l’aide de Docker, après le déploiement, cela fonctionne partout.

Installation Docker

Dans cet article, nous allons installer un moteur Docker dans le serveur Ubuntu.

Avant d’installer quoi que ce soit, si une ancienne version de Docker est installée sur votre système, supprimez-la. Exécutez cette commande dans votre terminal pour supprimer toutes les anciennes versions de Docker.

sudo apt autoremove docker docker-engine docker.io containerd runc

Commençons maintenant notre installation :

  1. Mettez à jour vos index de packages locaux en exécutant apt-get update et installez les dépendances pour le moteur Docker.
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
  1. Ajoutez la clé GPG officielle de Docker.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. Configurez le référentiel.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Installez la dernière version du moteur Docker.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. Vérifiez l’installation de Docker en exécutant une image hello world.
sudo docker run hello-world

Si cette image Docker hello-world s’exécute sans aucune erreur, alors félicitations. Vous avez installé avec succès Docker sur votre machine Ubuntu Linux.

Installation du bureau Docker

Si vous êtes un utilisateur Linux de bureau et que vous souhaitez installer Docker à des fins de développement, le bureau Docker devrait être le candidat préféré par rapport au moteur Docker. Docker Desktop offre une expérience unifiée et un moyen indépendant de la plate-forme pour créer, exécuter et pousser des images Docker.

Bureau Docker

Le bureau Docker sous Linux s’exécute à l’intérieur d’une machine virtuelle, ce qui est tout à fait opposé au modèle de noyau partagé du moteur Docker. C’est pourquoi votre CPU doit prendre en charge la technologie de virtualisation et Linux KVM pour que Docker Desktop fonctionne. Vous pouvez vérifier l’état de la virtualisation dans vos paramètres UEFI/BIOS. Docker Desktop est pris en charge dans les principales distributions Linux comme Ubuntu, Debian et Fedora.

La nécessité d’utiliser une machine virtuelle pour le bureau Docker est multiple. Certains d’entre eux sont décrits ci-dessous.

  1. L’utilisation d’une machine virtuelle donne à Docker des performances et des expériences cohérentes sur toutes les plates-formes (Windows, Linux, macOS, Raspberry Pi, etc.).
  2. Comme les utilisateurs s’en tiennent à la version de support à long terme de leur distribution, ils ne bénéficient pas des dernières fonctionnalités du noyau. L’utilisation d’une machine virtuelle résout ce problème. Désormais, Docker peut sélectionner sa version du noyau et peut fonctionner avec le dernier noyau Linux.
  3. L’utilisation d’une machine virtuelle offre également une sécurité à l’utilisateur. Comme nous le savons, n’importe qui peut télécharger des images sur le hub Docker. Parfois, les images peuvent contenir du code malveillant qui peut exploiter votre bureau. Si vous extrayez de telles images malveillantes sur votre machine, ces images peuvent détruire votre machine.
  4. Comme le bureau Docker fonctionne à l’intérieur d’une machine virtuelle, les images malveillantes ne peuvent pas affecter la machine hôte. Cela fait du bureau Docker un candidat irrésistible pour essayer de nouvelles images Docker.

Assurez-vous d’abord que votre système prend en charge KVM, qemu, systemd-init et l’indicateur d’application. Vous devez avoir au moins 4 Go de RAM sur votre système.

  1. Désinstallez toute version précédente de Docker-desktop installée sur votre système
sudo apt remove docker-desktop
  1. Pour un nettoyage complet et une purge de tous les fichiers de configuration, exécutez la commande suivante
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop
  1. Configurez le référentiel de packages Docker en exécutant les commandes suivantes.
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Allez maintenant à ceci page de publication et téléchargez la dernière .deb package de Docker-desktop.
  2. Installez le .deb paquet utilisant dpkg.
sudo apt update
sudo apt install ./docker-desktop-<version>-<arch>.deb

Pour lancer le bureau Docker, recherchez dans le menu de l’application et lancez l’application comme une application normale. Vous y trouverez un guide de bienvenue. Suivez le guide pour en savoir plus sur le bureau Docker pour Linux et comment l’utiliser. Vous pouvez également créer des conteneurs et des images à l’aide de l’application de bureau Docker.

Services dont nous avons besoin pour WordPress

Nous avons principalement besoin de 3 composants pour exécuter WordPress dans des conteneurs Docker. Premièrement, nous avons besoin de WordPress lui-même, puis nous avons besoin d’une base de données MySQL, puis nous avons besoin d’un espace ou d’un volume de stockage.

WordPress stocke toutes ses données générées par les utilisateurs dans une base de données MySQL. Par conséquent, la base de données MySQL joue un rôle crucial dans notre installation WordPress.

Le stockage ou le volume est nécessaire lorsque vous souhaitez installer de nouveaux thèmes ou plugins. Ces fichiers de thème ou de plug-in seront stockés dans l’espace du volume.

Utilisation d’un fichier Docker-Compose

Comme notre application a besoin de plus d’un service, il est préférable d’utiliser Docker-compose. Docker compose est un outil Docker qui initie et gère les conteneurs Docker et établit une relation entre eux.

  1. Créez un nouveau fichier docker-compose.yml.
sudo nano docker-compose.yml
  1. De la section précédente, nous avons appris que nous avons besoin principalement de 3 services. WordPress lui-même, une base de données MySQL et un espace de volume. Par conséquent, notre fichier docker-compose ressemblera à ceci. Vous pouvez copier ce fichier docker-compose.yml si vous n’avez pas besoin d’autre personnalisation.
version: '3.3'

services:
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - wordpress_files:/var/www/html
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: my_wordpress_db_password

   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: my_db_root_password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: my_wordpress_db_password

volumes:
    wordpress_files:
    db_data:

Dans le fichier docker-compose ci-dessus, nous définissons d’abord WordPress et DB (en utilisant la base de données MySQL) en tant que service. Ensuite, WordPress dépend de DB pour enregistrer ses données. Nous utilisons la dernière image WordPress pour créer un conteneur WordPress. Le conteneur WordPress réserve le port 80. Il s’agit du port par défaut pour les services Web. Par conséquent, lorsque vous tapez votre http://nom-de-domaine.com URL dans votre navigateur, ce conteneur WordPress vous sert avec une réponse.

Dans le service de base de données, nous utilisons l’image MySQL version 5.7 pour créer notre conteneur. Ensuite, nous donnons toutes les informations d’identification nécessaires pour parler avec notre conteneur WordPress.

Enfin, nous définissons nos volumes. Là, tous les fichiers WordPress et les données de la base de données seront stockés. Si vous exécutez cette configuration à l’intérieur d’un serveur, vous devez sauvegarder régulièrement ce volume.

Exécuter WordPress dans Docker

Créez maintenant un dossier ou un répertoire et déplacez ce fichier docker-compose.yml dans le répertoire. Exécutez ensuite cette commande.

Après cette commande, Docker extraira toutes les images que nous décrivons dans notre fichier docker-compose.yml et en fera un conteneur. La première exécution peut prendre beaucoup de temps car Docker doit télécharger tous les fichiers depuis DockerHub. Une fois les choses configurées, lorsque vous chargez l’adresse IP de votre serveur dans le navigateur, vous devriez voir l’écran d’installation de WordPress.

Toutes nos félicitations! Vous avez exécuté avec succès WordPress dans un conteneur Docker. Notez que cela ne signifie pas encore qu’il est prêt pour une utilisation en production – vous devez toujours configurer un certificat SSL.

Si vous voulez en savoir plus sur Docker, vous pouvez suivre cet article convivial pour les débutants.

Questions fréquemment posées

Puis-je exécuter Docker-desktop simultanément avec le moteur Docker ?

Oui, vous pouvez exécuter le moteur Docker-desktop et Docker simultanément sur votre machine. Mais lorsque les deux services doivent accéder aux mêmes ressources système, telles que les ports réseau ou les volumes, cela crée un conflit entre eux. Il est donc conseillé d’arrêter un service avant d’en démarrer un.

Les bureaux Docker peuvent être arrêtés facilement à l’aide d’une application GUI (interface utilisateur graphique). Pour arrêter le moteur Docker, exécutez la commande suivante.

sudo systemctl stop docker docker.socket containerd
sudo systemctl disable docker docker.socket containerd

Comment démarrer automatiquement le site WordPress après le redémarrage ?

Si vous avez arrêté votre serveur pour maintenance ou pour mettre à jour certaines choses, vous pouvez le configurer pour démarrer automatiquement WordPress après chaque redémarrage à l’aide de Docker. Ajoutez simplement restart: always paramètre sous chaque service de votre fichier docker-compose. Vous pouvez voir ce paramètre que nous avons ajouté dans le fichier docker-compose.yml.

Puis-je utiliser Nginx avec Docker-compose et WordPress ?

Oui, vous pouvez utiliser Nginx ou tout autre type de serveur pour diffuser du contenu WordPress à l’aide de Docker. Nginx peut également être utilisé comme proxy inverse. Vous pouvez distribuer votre trafic facilement en installant Nginx avec Docker et WordPress.