Aperçu
Dans cet article, nous allons passer en revue les étapes d'installation de WordPress à l'aide de Docker. En d'autres termes, nous allons installer WordPress avec un conteneur Docker et également avec Docker compose. Le scénario de la procédure suivante se présentera comme suit :une seule machine hôte (un serveur Debian) et un seul moteur Docker en cours d'exécution. Nous allons installer un conteneur docker WordPress officiel sur notre hôte et configurer également la persistance des données. Cette méthode fonctionnera bien sûr sur d'autres machines hôtes Linux tant qu'elle exécute le moteur docker.
Exigences :
- Hébergeur Linux
- Docker installé et en cours d'exécution.
Installer Docker
Pour l'installation de docker, nous pouvons utiliser le script Docker d'installation automatique officiel si vous utilisez Debian, Ubuntu, Raspbian en tant qu'hôte. Sinon, reportez-vous à la documentation Docker ou à cet article.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Ajoutez docker à votre groupe d'utilisateurs :
sudo usermod -aG docker
Installer WordPress à l'aide du conteneur Docker
Pour installer le conteneur docker WordPress, nous pouvons utiliser les commandes suivantes :
docker run --name some-wordpress -p 8080:80 -d wordpress
Cela déploiera un conteneur Docker qui exécutera le serveur Web, l'installation de WordPress, PHP et le serveur de base de données MySQL (MariaDB). Cette option n'est pas un déploiement idéal, étant donné que tout ce qu'il contient, même les données du site Web, restera et sera stocké à l'intérieur du conteneur et chaque fois que le conteneur est redémarré, toutes les données seront perdues. C'est pourquoi il est indispensable d'avoir des données persistantes pour WordPress (stockage des données sur l'hôte). Pour ce type de déploiement, il est suggéré d'exécuter les conteneurs WordPress comme suit :
Conteneur DB :
docker run -e MYSQL_ROOT_PASSWORD=-e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb :latest --restart:unless-stopped
Conteneur WordPress :
docker run -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=--name wordpress --link wordpressdb :mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress --restart:unless-stopped
Dans ce type de déploiement, nous avons déployé séparément les conteneurs de base de données et wordpress. Décomposition des commandes :
Conteneur de base de données :
-e : avec l'argument -e nous définissons les variables d'environnement qui seront dans ce cas les informations d'identification et les paramètres de la base de données (le mot de passe et le nom de la base de données).
–nom : L'argument name est comment allons-nous définir le nom de notre nom de conteneur de base de données.
-v : avec cet argument, nous définissons et montons un répertoire sur notre serveur hôte où le conteneur va enregistrer toutes les données de la base de données et non dans le conteneur. Ce paramètre est important car il définira la persistance des données.
-d : avec cet argument, nous sélectionnons notre image de conteneur Docker, dans ce cas, nous avons utilisé la dernière image de base de données mariadb.
–redémarrer : Argument qui demandera au démon Docker de redémarrer le conteneur à chaque arrêt du conteneur.
Conteneur WordPress :
-e : pour le conteneur Docker WordPress, nous définissons des variables d'environnement qui sont également des paramètres de conteneur de base de données afin que WordPress puisse accéder à la base de données.
–nom : également un argument pour définir le nom du conteneur wordpress.
–lien : argument de lien de base de données (pour définir notre connexion à la base de données de Wodpress au conteneur MariaDB).
REMARQUE : Concernant le –lien argument, Docker a annoncé qu'il s'agirait à l'avenir de la fonctionnalité héritée et qu'elle pourrait être supprimée dans les futures mises à jour de Docker et qu'elle pourrait interrompre la connexion de votre conteneur de base de données. Pour cette raison, si vous envisagez d'avoir ce type de déploiement, il est préférable de déployer cette configuration WordPress avec Docker compose ou en tant que pile où WordPress dépendra du réseau Docker pour se connecter à la base de données MariaDB. Ceci est couvert dans le chapitre suivant.
-p : Port variable exposé. Quels ports exposer sur l'hôte et sur le conteneur pour que WordPress soit accessible publiquement.
-v : Le point de montage sur la machine hôte où allons-nous ajouter un répertoire à partir de l'hôte et enregistrer les fichiers WordPress - c'est-à-dire la persistance des données.
-d : L'image docker que nous allons utiliser.
–redémarrer : Argument qui demandera au démon Docker de redémarrer le conteneur à chaque arrêt du conteneur.
Version de composition Docker
Installez Docker compose :
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
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker -compose /usr/bin/docker-compose
Reportez-vous à la documentation Docker pour connaître la dernière version de Docker Compose.
Vous pouvez créer un répertoire séparé pour ce fichier de composition et à l'intérieur du répertoire pour créer le fichier de composition Docker :
mkdir wordpress &&cd wordpress/
appuyez sur docker-compose.yml &&nano docker-compose.yml
Vous pouvez utiliser la configuration yaml suivante :
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
Le fichier de configuration est assez similaire aux lignes de commande pour déployer le conteneur du chapitre précédent.
Pour déployer la pile, tout en restant dans le répertoire du fichier de composition, exécutez la commande :
sudo docker-compose up -d
Il faudra quelques minutes pour terminer le déploiement.
Déployer en tant que pile
Pour déployer WordPress en tant que pile avec Docker ou docker compose, nommez le fichier de configuration stack.yml et exécutez l'une des commandes suivantes :
Docker
docker stack deploy -c stack.yml wordpress
Docker compose
docker-compose -f stack.yml upQuelle que soit l'étape que vous choisissez pour le déploiement, le résultat devrait ressembler à ceci :
Et après vous pourrez accéder à l'installation de WordPress via le navigateur :
REMARQUE : Si vous avez un pare-feu UFW ou IPTABLES en cours d'exécution, il est nécessaire d'ouvrir les ports appropriés (les ports que vous avez exposés pour la machine hôte) afin d'accéder à WordPress via un navigateur :
UFW
sudo ufw allow 8080
IPTABLES
sudo iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPTER
ou
sudo iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPTERRésumé
Pour résumer l'article, nous avons présenté les étapes d'installation de WordPress à l'aide de Docker et également comment installer WordPress à l'aide de Docker compose. Comme vous l'avez remarqué, nous avons plusieurs façons de déployer WordPress en utilisant Docker et Docker compose. Mais dans l'ensemble, la méthode préférée consiste à disposer d'un conteneur séparé pour WordPress et pour le serveur MariaDB/MySQL. Pour une évolutivité plus simple à l'avenir, la persistance des données est également indispensable.
Merci pour votre temps…