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é.
Sommaire
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.
Commentaires
March 19 2020
Bonjour, Je suis nouveau avec docker et je cherche à accéder à mysql avec le client MysqlWorkbench, et le FTP aussi tant qu'à faire. localhost:3306 ne semble pas suffire. est-ce que je dois config un peu mieux le yml ? Merci
November 02 2020
Bonjour, merci pour ce post clair, pour choisir la version de php, comment cela se passe ?