GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment installer WordPress avec Docker

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 up

Quelle 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 ACCEPTER

Ré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…


Docker
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer WordPress avec Docker sur Ubuntu

  3. Comment installer Docker sur Debian 9 (Stretch)

  4. Comment installer Docker sur CentOS

  5. Installer Docker et WordPress sur Ubuntu

Installer Navidrome avec Docker

Comment installer le conteneur Ubuntu 22.04 LTS sur Docker

Comment installer l'image AlmaLinux 8 dans le conteneur Docker

Comment installer Gitea sur Ubuntu en utilisant Docker

Comment installer Docker sur Mac

Comment installer WordPress avec Softaculous