Ce tutoriel sera vous montrer comment exécuter une installation WordPress dans des conteneurs Docker à l'aide de Docker Compose.
WordPress est le CMS (système de gestion de contenu) le plus populaire au monde, ce qui en fait une considération primordiale lors de la création d'un nouveau site. Il est construit sur une base de données MySQL avec traitement PHP.
La configuration d'une installation WordPress locale implique plusieurs étapes et peut prendre du temps. En règle générale, vous devez configurer un serveur Web local, configurer le serveur pour qu'il exécute du code PHP et configurer une base de données MySQL.
Cependant, le moyen le plus simple de configurer un environnement WordPress local consiste à utiliser la conteneurisation avec Docker.
Si vous débutez avec Docker et que vous n'avez pas encore installé Docker, je vous recommande de commencer par notre tutoriel :Installer Docker sur Ubuntu :un guide étape par étape.
1. Installer Docker Compose
Lorsque vous utilisez Docker de manière intensive, la gestion de plusieurs conteneurs différents devient fastidieuse. Docker Compose est un outil qui vous permet de définir et de démarrer facilement des applications multi-conteneurs dans Docker.
Avec Compose, vous pouvez définir tous les services dans un seul fichier YAML et, avec une seule commande, vous pouvez tout faire tourner ou tout détruire.
Dans ce didacticiel, nous allons exécuter deux conteneurs (WordPress et MySQL) dans un environnement conteneurisé isolé à l'aide de Docker Compose.
Laissez-moi maintenant vous montrer comment installer la dernière version de Docker Compose pour vous aider à gérer des applications multi-conteneurs.
Commencez par vérifier la version actuelle et, si nécessaire, mettez-la à jour dans la commande ci-dessous :
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Ensuite, appliquez les autorisations exécutables au binaire :
sudo chmod +x /usr/local/bin/docker-compose
Enfin, vous pouvez vérifier que l'installation a réussi en vérifiant la version :
docker-compose --version
docker-compose version 1.29.2, build 5becea4c
Pour en savoir plus sur Docker Compose, vous pouvez vous référer à la documentation officielle.
2. Préparer le répertoire
Vous devez créer un nouveau répertoire appelé wordpress
sous /srv
pour héberger les données WordPress. De cette façon, nous obtenons une certaine persistance des données.
sudo mkdir -p /srv/wordpress
cd /srv/wordpress/
Comme vous le savez, les données des conteneurs Docker ne sont pas persistantes. Cela signifie que vous perdez toutes les données lorsque vous arrêtez le conteneur et que vous le réexécutez ; il n'y aura plus de données à l'intérieur.
Bien sûr, cela peut être évité en ajoutant un volume Docker, comme vous le verrez plus loin dans ce tutoriel.
3. Création du fichier YAML
Dans le domaine Docker Compose, toutes les ressources nécessaires à l'exécution d'un conteneur doivent être définies dans un fichier YAML nommé docker-compose.yaml
.
Docker Compose lira ensuite ces fichiers et communiquera avec le démon Docker pour créer, configurer ou détruire les ressources définies.
Dans notre cas, le docker-compose.yaml
contiendra les définitions de service pour notre configuration WordPress dockerisée.
De plus, Docker Compose nous permet de relier ces services avec des réseaux et des volumes partagés.
Commençons donc par créer un nouveau docker-compose.yaml
fichier à l'intérieur du /srv/wordpress
répertoire avec un éditeur de votre choix. Remplissez-le avec cette configuration :
version: '3'
services:
mysql:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: my_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: wordpress_password
volumes:
- mysql_data:/var/lib/mysql
wordpress:
image: wordpress:latest
depends_on:
- mysql
ports:
- 8080:80
restart: always
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: wordpress_password
volumes:
- ./wp-content:/var/www/html/wp-content
volumes:
mysql_data:
Petite explication ici :
- Nous définissons deux services –
mysql
etwordpress
, qui sont automatiquement liés les uns aux autres. - Ils utilisent une image Docker , qui décidera quelle version de MySQL et de WordPress utiliser. Dans ce cas, leur dernier versions.
- Environnement MySQL :WordPress utilisera ces variables d'environnement pour se connecter au conteneur MySQL.
- Environnement WordPress :Pour qu'un conteneur WordPress s'exécute, vous devez définir les détails de connectivité de la base de données.
- L'image WordPress est basée sur Apache, qui s'exécute sur port
80
par défaut. Mapper le port Apache par défaut sur le port8080
de l'ordinateur local. - mysql_data :Les données circulant dans cette base de données seront conservées dans un volume nommé
mysql_data
de sorte que même lorsque vous supprimez le conteneur, les données vivront toujours sur votre machine et pourront être montées à nouveau dans un nouveau conteneur.
De plus, les volumes
paramètre sous wordpress
est ce qui indique à Docker de faire apparaître le wp-content
répertoire dans le système de fichiers local.
Nous avons donc maintenant un stockage persistant pour certaines parties de notre site WordPress, telles que le wp-content
annuaire. Le wp-content
contient tout le contenu fourni par l'utilisateur. Donc, fondamentalement, tout ce que vous pouvez télécharger sur votre site se retrouve ici.
Cependant, tant que vous disposez à la fois de la base de données et de votre wp-content
dossier, vous pouvez toujours récupérer votre site, même si tout le reste a été perdu.
4. Exécutez WordPress avec Docker Compose
Vous êtes maintenant prêt à exécuter la commande Docker pour créer votre environnement local. Assurez-vous que vous êtes toujours dans wordpress
annuaire. Exécutez la commande suivante :
sudo docker-compose up -d
La commande commencera à exécuter des scripts et vous devriez voir divers messages "Téléchargement" et "En attente" apparaître dans le terminal pendant que Docker extrait les images MySQL et WordPress. Cela prendra un peu de temps à s'exécuter.
Lorsque vous surveillez de près votre système de fichiers local, vous constatez que le fichier /srv/wordpress/wp-content
dossier sera créé et rempli de fichiers et de dossiers une fois les images Docker extraites.
L'installation de WordPress avec un conteneur MySQL et un conteneur WordPress a réussi.
5. Accédez à votre installation WordPress
Enfin, nous pouvons terminer l'installation via l'interface Web WordPress avec nos conteneurs en cours d'exécution. Dans votre navigateur Web, accédez à http://localhost:8080
ou http://your_ip_address:8080
.
Vous devrez peut-être connaître votre adresse IP à l'aide de la commande ifconfig.
La page de sélection de la langue vous accueillera. Sélectionnez votre langue et cliquez sur Continuer.
Remplissez les informations nécessaires sur l'écran suivant et cliquez sur "Installer WordPress".
Enfin, lorsque vous y êtes invité, cliquez sur Login
.
L'écran de connexion WordPress standard vous accueillera alors. Une fois que vous vous êtes authentifié avec succès, vous pouvez commencer à utiliser WordPress.
Options de composition Docker supplémentaires
Tout d'abord, assurez-vous que vous êtes dans le /srv/wordpress
répertoire.
Pour afficher le statut d'une application Docker, exécutez la commande suivante :
sudo docker-compose ps
Vous pouvez arrêter tous les conteneurs en cours d'exécution à l'aide de la commande suivante :
sudo docker-compose stop
Pour démarrer des conteneurs existants qui ont été créés avec docker-compose up
:
sudo docker-compose start
La commande ci-dessous va arrêter et supprimer conteneurs et tous les réseaux :
sudo docker-compose down
Conclusion
Nous vous avons présenté le concept derrière Docker Compose, et vous devriez maintenant être en mesure de définir même des applications multi-conteneurs simples.
Dans ce tutoriel, vous avez utilisé Docker Compose pour installer un WordPress avec Docker. Vous avez maintenant WordPress opérationnel.
Nous espérons que vous avez apprécié la lecture de ce guide. Joyeux docker !