Comment installer WordPress avec Docker facilement sur Ubuntu

Comment installer WordPress avec Docker facilement sur Ubuntu

L’installation de WordPress sur un serveur privé virtuel Ubuntu (VPS) nécessite généralement un LAMP (Linux, Apache, MySQL, PHP). Cependant, vous pouvez également configurer la plateforme à l’aide de Docker, un outil de conteneurisation qui regroupe les applications et leurs dépendances.

Installer WordPress avec Docker devient plus simple, car elle s’exécute à partir d’images préconstruites contenant tous les composants nécessaires. Cette approche offre plusieurs avantages : elle est modulaire, facile à mettre à jour et à faire évoluer, et rapide à redéployer si vous avez besoin d’une nouvelle instance.

Dans cet article, nous allons vous expliquer comment installer WordPress avec Docker sur Ubuntu. Vous apprendrez chaque étape, de la préparation des prérequis à la gestion de WordPress en tant que système de gestion de contenu (CMS) conteneurisé.

Conditions préalables à l’installation de WordPress avec Docker

Avant d’installer WordPress sur Docker, assurez-vous que vous disposez d’un serveur virtuel fonctionnant avec une version récente d’Ubuntu, telle que 22.04 ou plus récente, afin d’éviter les problèmes de compatibilité.

Votre serveur doit également offrir un accès complet à la racine afin d’éviter les erreurs d’autorisation lors de la modification des fichiers système. En outre, faites pointer un nom de domaine vers votre VPS afin que votre site web WordPress soit accessible au public.

Si vous ne disposez pas d’un VPS, nous vous conseillons d’opter pour le pack VPS Docker d’Hostinger. Étant donné que Docker et WordPress sont relativement légers, notre plan KVM 1 – avec un processeur à cœur unique, 4 Go de RAM et 50 Go d’espace de stockage – devrait suffire. Vous pouvez passer à un plan de niveau supérieur si vous avez besoin de plus de ressources au fur et à mesure que votre site grandit.

Avec Hostinger, vous pouvez vous connecter à votre VPS en tant que root directement depuis votre navigateur web, ce qui rend le processus d’installation plus efficace.

Si vous rencontrez des difficultés lors de l’installation, notre assistant IA Kodee est disponible pour vous guider dans la gestion de votre instance WordPress. Saisissez simplement vos questions ou décrivez vos besoins, et Kodee rédigera un guide étape par étape pour vous.

Comment installer WordPress avec Docker Compose

Suivez ces étapes pour installer WordPress à l’aide de Docker. Avant de continuer, accédez à l’interface de ligne de commande (CLI) de votre VPS en utilisant le client SSH PuTTY ou un terminal. Vous pouvez également utiliser le terminal de navigateur d’Hostinger si vous avez besoin d’une solution plus simple.

1. Installer Docker et Docker Compose

Les utilisateurs d’Hostinger peuvent installer Docker et Docker Compose en quelques clics sans commandes en utilisant le modèle VPS préconfiguré. Cette méthode est plus simple et convient aux débutants. 

Avertissement ! L'installation d'un nouveau template VPS effacera vos données. Sauvegardez les fichiers importants avant de continuer.

Pour ce faire, ouvrez simplement votre page de gestion VPS sur hPanel et naviguez vers Système d’exploitation et panel Système d’exploitation. Sélectionnez Docker et cliquez sur Changer le système d’exploitation

Si vous souhaitez plus de flexibilité lors de la configuration de l’outil, installez Docker et Docker Compose à l’aide de commandes. 

Maintenant, vérifiez que Docker et Docker Compose sont configurés correctement à l’aide des commandes suivantes :

docker --version
docker-compose --version

Si ces outils fonctionnent correctement, votre CLI indiquera leur numéro de version :

2. Créer votre répertoire de projet

Créez un nouveau répertoire de projet pour héberger tous vos fichiers Docker et WordPress à l’aide de cette commande :

mkdir wordpress

Par défaut, la commande crée le dossier wordpress dans le répertoire personnel de l’utilisateur. Vous pouvez le créer à un autre endroit ou utiliser un nom différent. 

Ouvrez ensuite le dossier à l’aide de la commande ci-dessous :

cd wordpress

Une fois à l’intérieur, vous pouvez commencer à configurer Docker et WordPress.

3. Créer un fichier Docker Compose

Le fichier Docker Compose fournit des informations sur les composants logiciels à installer dans votre conteneur. Dans ce cas, il spécifie la configuration de WordPress et de l’application de base de données. 

Pour créer un fichier Docker Compose, exécutez la commande suivante :

sudo nano docker-compose.yml

Collez la configuration suivante. Remplacez le nom d’utilisateur, le mot de passe et le nom de la base de données par la valeur de votre choix.

version: "3" 
services:
  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: MySQLRootPassword
      MYSQL_DATABASE: MySQLDatabaseName
      MYSQL_USER: MySQLUsername
      MYSQL_PASSWORD: MySQLUserPassword

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    restart: always
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: MySQLUsername
      WORDPRESS_DB_PASSWORD: MySQLUserPassword
      WORDPRESS_DB_NAME: MySQLDatabaseName
    volumes:
      - "./:/var/www/html"

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db
      PMA_USER: MySQLUsername
      PMA_PASSWORD: MySQLUserPassword

volumes:
  mysql: {}

Enregistrez les modifications et revenez au shell principal en appuyant sur Ctrl + X → Y Entrée

4. Démarrer le conteneur Docker

Exécutez Docker Compose en utilisant cette commande pour installer et lancer WordPress dans un conteneur. Rappelez-vous que cela ne fonctionne que lorsque vous êtes dans le répertoire du projet :

docker-compose up -d

Docker Compose extrait les images de Docker Hub comme indiqué dans votre fichier YAML, configure le conteneur et met en place la connexion réseau. En fonction de votre vitesse Internet, ce processus de configuration peut prendre quelques minutes.

Une fois l’opération terminée, vous devriez voir apparaître l’état Done et retourner au shell principal. 

5. Accéder à l’installation de WordPress

Avec votre conteneur Docker opérationnel, vous pouvez maintenant accéder à la nouvelle installation de WordPress via votre navigateur web. Comme votre nom de domaine est déjà pointé vers le VPS, il vous suffit de le saisir dans la barre d’adresse du navigateur.

Vous accéderez à l’assistant de configuration de WordPress. Choisissez votre langue préférée et cliquez sur Continuer.

Ensuite, remplissez les informations nécessaires concernant votre site, y compris le titre du site, le nom d’utilisateur, le mot de passe et l’adresse électronique. Une fois terminé, cliquez sur Installer WordPress.

Ensuite, cliquez sur Se connecter pour accéder au tableau de bord de WordPress. Utilisez les identifiants que vous venez de créer pour accéder à votre panneau d’administration.

6. Personnaliser votre configuration Docker

Pour les environnements de production, vous aurez besoin de configurations supplémentaires afin que votre site WordPress soit sécurisé et optimisé pour la performance. Vous trouverez ci-dessous des personnalisations clés pour déployer WordPress à l’aide de Docker :

Utilisation des fichiers d’environnement

Pour protéger les données sensibles, évitez de coder en dur des informations d’identification telles que les noms d’utilisateur et les mots de passe des bases de données dans votre fichier Docker Compose. Stockez plutôt ces valeurs dans un fichier d’environnement (.env).

Dans votre répertoire wordpress, créez un fichier .env :

nano .env

Définissez les identifiants de votre base de données WordPress dans le fichier .env, en remplaçant les espaces réservés par vos propres valeurs :

MYSQL_ROOT_PASSWORD=MySQLRootPassword
MYSQL_DATABASE=MySQLDatabaseName
MYSQL_USER=MySQLUsername
MYSQL_PASSWORD=MySQLUserPassword

Enregistrez le fichier, puis mettez à jour le fichier docker-compose.yml pour utiliser ces variables d’environnement :

db:
  image: mysql:latest
  restart: always
  environment:
    MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    MYSQL_DATABASE: ${MYSQL_DATABASE}
    MYSQL_USER: ${MYSQL_USER}
    MYSQL_PASSWORD: ${MYSQL_PASSWORD}

Enregistrez les modifications et redémarrez Docker Compose pour appliquer les nouvelles configurations :

docker-compose up -d

Obtention de certificats SSL

Un certificat SSL est important pour protéger les données des utilisateurs et améliorer le classement dans les moteurs de recherche. Pour activer les certificats SSL automatiques, ajoutez un proxy NGINX avec Let’s Encrypt dans votre fichier docker-compose.yml :

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
  letsencrypt-nginx-proxy-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt
    environment:
      NGINX_PROXY_CONTAINER: nginx-proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./certs:/etc/nginx/certs
      - ./vhost.d:/etc/nginx/vhost.d
      - ./html:/usr/share/nginx/html

Ensuite, configurez le service wordpress pour inclure les étiquettes SSL. Remplacez votre_domaine.com par votre nom de domaine actuel.

wordpress:
  image: wordpress:latest
  labels:
    - "VIRTUAL_HOST=votre_domaine.com"
    - "LETSENCRYPT_HOST=votre_domaine.com"
    - "LETSENCRYPT_EMAIL=votre_email@votre_domain.com"

Dans le même service wordpress, montez uniquement le répertoire wp-content afin que seuls les fichiers nécessaires soient partagés entre l’hôte et le conteneur :

volumes:
  - ./wp-content:/var/www/html/wp-content

Voici le contenu final de docker-compose.yml après l’utilisation des variables d’environnement et l’ajout du support SSL avec NGINX :

version: "3"

services:
  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - mysql:/var/lib/mysql

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: ${MYSQL_USER}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
    volumes:
      - ./wp-content:/var/www/html/wp-content
    labels:
      - "VIRTUAL_HOST=your_domain.com"
      - "LETSENCRYPT_HOST=your_domain.com"
      - "LETSENCRYPT_EMAIL=your_email@your_domain.com"

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db
      PMA_USER: ${MYSQL_USER}
      PMA_PASSWORD: ${MYSQL_PASSWORD}

  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./certs:/etc/nginx/certs
      - ./vhost.d:/etc/nginx/vhost.d
      - ./html:/usr/share/nginx/html

  letsencrypt-nginx-proxy-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt
    environment:
      NGINX_PROXY_CONTAINER: nginx-proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./certs:/etc/nginx/certs
      - ./vhost.d:/etc/nginx/vhost.d
      - ./html:/usr/share/nginx/html

volumes:
  mysql: {}

N’oubliez pas d’enregistrer ces modifications et de redémarrer Docker Compose par la suite :

docker-compose up -d

7. Gérer et faire évoluer WordPress avec Docker

Après avoir fait fonctionner WordPress dans Docker pendant un certain temps, faites évoluer votre installation pour optimiser ses performances et sauvegardez régulièrement vos fichiers pour maintenir l’intégrité des données. Voici comment procéder :

Faire évoluer les conteneurs WordPress

Au fur et à mesure que le trafic de votre site augmente, envisagez de faire évoluer votre service WordPress pour qu’il fonctionne avec plusieurs conteneurs. Cela vous permet de répartir uniformément les requêtes des utilisateurs sur différents conteneurs afin d’optimiser les performances et le temps de fonctionnement.

Dans votre fichier Docker Compose, indiquez le nombre de répliques souhaité, par exemple 3, pour ajouter plus d’instances de votre conteneur WordPress :

 wordpress:
    depends_on:
      - db
    image: wordpress:latest
    restart: always
    ports:
      - "80:80"
  environment:
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_USER: ${MYSQL_USER}
    WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
    WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
  volumes:
    - "./:/var/www/html"
  deploy:
    replicas: 3

Appliquez vos modifications en exécutant le programme :

docker-compose up -d --scale wordpress=3

Docker va maintenant démarrer d’autres conteneurs WordPress et répartir le trafic de manière égale entre eux.

Sauvegarde des fichiers WordPress

Pour protéger votre site WordPress contre la perte ou la corruption de données, vous devez sauvegarder les fichiers WordPress et la base de données.

Comme Docker monte le répertoire WordPress en tant que volume, vous pouvez sauvegarder ce répertoire à l’aide d’une simple commande comme celle-ci :

cp -r /path/to/wordpress /path/to/backup/location

Pour sauvegarder votre base de données MySQL, exécutez la commande suivante. Remplacez [db_container_name], [MYSQL_USER], [MYSQL_PASSWORD] et [MYSQL_DATABASE] par le nom et les informations d’identification de votre conteneur de base de données :

docker exec [db_container_name] /usr/bin/mysqldump -u [MYSQL_USER] -p[MYSQL_PASSWORD] [MYSQL_DATABASE] > backup.sql

Cette commande crée un vidage de la base de données, que vous pourrez restaurer ultérieurement si nécessaire.

Les clients de VPS Hostinger peuvent également utiliser nos outils de sauvegarde intégrés pour sauvegarder et restaurer facilement leurs données. Pour accéder à ces fonctionnalités, cliquez sur Sauvegardes et surveillance → Snapshots & Sauvegardes dans la barre latérale gauche de votre tableau de bord VPS.

Ensuite, choisissez de créer un snapshot pour capturer votre configuration actuelle ou de restaurer les données précédentes à partir d’une sauvegarde hebdomadaire automatisée.

Conclusion

Dans cet article, vous avez appris comment installer et configurer WordPress en utilisant Docker sur un VPS Ubuntu. De la mise en place de Docker Compose à la personnalisation pour les environnements de production, vous avez maintenant une installation WordPress entièrement fonctionnelle dans un environnement conteneurisé.

Après avoir utilisé WordPress avec Docker, envisagez d’optimiser davantage votre site, par exemple en utilisant un réseau de diffusion de contenu (CDN). Vous pouvez également configurer différents conteneurs Docker si vous décidez d’héberger d’autres applications sur le même VPS.

Si vous avez des questions ou si vous souhaitez partager votre expérience du développement de sites Web WordPress avec Docker, n’hésitez pas à utiliser la boîte de commentaires ci-dessous.

WordPress Docker – FAQ

Quels sont les avantages de l’utilisation de Docker pour WordPress ?

Avec Docker, vous pouvez déployer et faire évoluer votre environnement WordPress en fonction de vos besoins. Docker isole les dépendances, ce qui facilite la mise à jour, la sauvegarde et la migration de votre site WordPress de manière efficace.

Puis-je faire fonctionner plusieurs sites WordPress sur un seul serveur avec Docker ?

Oui, Docker vous permet de faire fonctionner plusieurs sites WordPress sur un seul serveur en utilisant des conteneurs distincts pour chaque site. Configurez chaque conteneur avec des ports, des volumes et des connexions de base de données uniques pour l’isolation.

Comment configurer un conteneur Docker WordPress ?

Pour configurer un conteneur Docker WordPress, utilisez un fichier Docker Compose pour définir les services, les ports et les variables d’environnement. Pour les données sensibles, telles que les informations d’identification de la base de données, nous suggérons de les stocker dans un fichier .env lié au fichier Compose.

Author
L'auteur

Abdelali Ait El Houssaine

🎮 Passionné de jeux vidéo et toujours curieux d’apprendre, je partage mes découvertes à travers des tutoriels sur le web et les outils digitaux. Entre optimisation de sites et exploration de nouvelles fonctionnalités, mon but est de rendre la tech plus accessible. 🚀