Dans ce didacticiel, nous allons installer WordPress en utilisant plusieurs conteneurs Docker. Wordpress lui-même dans un conteneur et la base de données MariaDB dans un autre conteneur. Ensuite, nous installerons Nginx sur la machine hôte en tant que proxy inverse pour le conteneur WordPress.
Docker est un projet open source visant à faciliter la création, le déploiement et l'exécution d'applications distribuées par les développeurs et les administrateurs système dans un conteneur Docker. Docker est une virtualisation au niveau du système d'exploitation, vous pouvez créer une isolation du système pour votre application avec docker pour l'application qui s'exécute à l'intérieur du conteneur. Vous pouvez créer des centaines de conteneurs Docker à l'intérieur de votre serveur, le nombre dépend du matériel de votre machine.
Prérequis
- Ubuntu 15.04 - x86_64
- Privilèges root
- Connaissance de Docker
Étape 1 - Installer Docker
Dans cette étape, nous mettrons à jour le référentiel Ubuntu, puis installerons la dernière version de docker.io.
Devenez utilisateur root pour les étapes suivantes :
sudo -s
Mettez à jour le dépôt Ubuntu :
apt-obtenir la mise à jour
Installez maintenant les packages Docker avec la commande apt ci-dessous :
apt-get install docker.io
Une fois l'installation terminée, démarrez docker et ajoutez-le pour qu'il s'exécute au démarrage du système avec la commande systemctl :
systemctl start docker
systemctl enable docker
Ensuite, vérifiez la version de Docker avec cette commande docker :
version docker
docker exécuter hello-world
L'installation de Docker est terminée.
Étape 2 - Configurer le conteneur MariaDB
Dans cette étape, nous allons télécharger une nouvelle image MariaDB à partir du registre Docker et créer un nouveau conteneur basé sur cette image. Nous allons configurer une nouvelle base de données et un nouvel utilisateur pour l'installation de WordPress.
Téléchargez l'image Docker MariaDB sur le système avec la commande Docker pull :
docker pull mariadb
Vous pouvez maintenant voir la nouvelle image docker MariaDB avec la commande ci-dessous :
images fixes
Ensuite, créez un nouveau conteneur à partir de l'image MariaDB pour l'installation de WordPress. Avant de créer le nouveau conteneur, créez un nouveau répertoire pour les données WordPress, le répertoire de base de données et le répertoire de code WordPress.
mkdir ~/wordpress
mkdir -p ~/wordpress/database
mkdir -p ~/wordpress/html
Créez maintenant le nouveau conteneur MariaDB avec le nom 'wordpressdb' avec la commande ci-dessous :
docker run -e MYSQL_ROOT_PASSWORD=aqwe123 -e MYSQL_USER=wpuser -e [email protected] -e MYSQL_DATABASE=wordpress_db -v /root/wordpress/database:/var/lib/mysql --name wordpressdb -d mariadbS'il n'y a pas d'erreur, vous pouvez voir les résultats ci-dessous :
Explication des paramètres :
- MYSQL_ROOT_PASSWORD =configurer le mot de passe pour l'utilisateur root MySQL.
- MYSQL_USER =créer un nouvel utilisateur MySQL 'wpuser' pour la base de données WordPress.
- MYSQL_PASSWORD =définir le mot de passe '[email protected]' pour l'utilisateur 'wpuser'.
- MYSQL_DATABASE =créer une nouvelle base de données pour l'installation de wordpress avec le nom 'wordpress_db'.
- -v /root/wordpress/database:/varlib/mysql =répertoire de base de données lié au répertoire mysql '/var/lib/mysql' sur le conteneur pour assurer la persistance des données.
Le conteneur MariaDBriadb a été créé, vérifiez maintenant le nouvel utilisateur et la base de données pour l'installation de WordPress pour vous assurer qu'il n'y a pas d'erreur avec la commande en haut.
Depuis la machine hôte, vérifiez l'adresse IP du conteneur wordpressdb avec la commande docker ci-dessous :
docker inspect -f '{{ .NetworkSettings.IPAddress }}' wordpressdb
Ensuite, connectez-vous au conteneur wordpressdb avec la commande mysql depuis le système hôte :
mysql -u wpuser -h 172.17.0.2 -p
TYPE PASSWORD :[email protected]
Vérifiez la nouvelle base de données 'wordpress_db' :
afficher les bases de données ;
Tous les résultats :
Le nouveau conteneur Docker, l'utilisateur MySQL et la base de données MySQL pour WordPress ont été créés avec succès.
Étape 3 - Configurer le conteneur Wordpress
Une fois le conteneur de base de données créé, téléchargez la dernière image docker WordPress avec la commande docker pull :
docker pull wordpress:latest
Une fois le téléchargement terminé, créez un nouveau conteneur à partir des images avec le nom 'wpcontainer'.
docker run -e WORDPRESS_DB_USER=wpuser -e [email protected] -e WORDPRESS_DB_NAME=wordpress_db -p 8081:80 -v /root/wordpress/html:/var/www/html --link wordpressdb:mysql --name wpcontainer -d wordpress
Vous pouvez obtenir le résultat comme ci-dessous, ou vous pouvez vérifier que le nouveau conteneur nommé 'wpcontainer' a été créé.
Paramètres :
- WORDPRESS_DB_USER =définir l'utilisateur de la base de données 'wpuser' pour la base de données wordpress.
- WORDPRESS_DB_PASSWORD =mot de passe '[email protected]' pour l'utilisateur de la base de données 'wpuser'.
- WORDPRESS_DB_NAME =nom de la base de données 'wordpress_db' créée à l'étape 2.
- -p 8081:80 =mappage du port 80 sur le conteneur au port 8081 sur l'hôte.
- -v /root/wordpress/html:/var/www/html =Lier le répertoire racine Web '/var/www/html' sur le conteneur au répertoire hôte local 'wordpress/html'.
- --lien wordpressdb:mysql =lier le conteneur mariadb 'wordpressdb' au nouveau conteneur wordpress 'wpcontainer'.
Pour voir le conteneur WordPress en cours d'exécution, vous pouvez le vérifier avec la commande curl sur l'IP hôte et le port 8081.
curl -I 192.168.43.99:8081
Vous verrez les résultats :
- Le serveur Web est Apache, exécuté sur Debian.
- PHP 5.6 est en cours d'exécution dans le conteneur.
- Vous voyez la redirection vers l'installation de WordPress.
Étape 4 - Installer et configurer Nginx en tant que proxy inverse
Dans cette étape, nous allons installer le serveur Web Nginx sur le système hôte. Nous allons configurer Nginx en tant que proxy inverse pour le conteneur Docker "wpcontainer" sur le port 8081.
Installez Nginx avec la commande apt sur le système hôte :
apt-get install nginx
Ensuite, accédez au répertoire Nginx et créez une nouvelle configuration d'hôte virtuel pour le conteneur WordPress.
cd /etc/nginx/sites-available/
vim wordpress
Collez la configuration de l'hôte virtuel ci-dessous :
server {
listen 80 ;
nom_serveur wordpress-docker.co www.wordpress-docker.co;
location / {
proxy_pass http:// localhost :8081 ;
proxy_set_header Hôte $host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
}
}Enregistrez le fichier et quittez.
Maintenant, activez le nouvel hôte virtuel WordPress et supprimez la configuration d'hôte virtuel par défaut.
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-available/default
rm -f / etc/nginx/sites-enabled/defaultRedémarrez le serveur Web Nginx :
systemctl redémarrer nginx
Étape 5 - Installation de WordPress
Ouvrez votre navigateur Web et visitez le nom de domaine sur la configuration nginx 'www.wordpress-docker.co' et vous serez redirigé vers l'installation de WordPress.
Tapez le titre de votre site, le nom d'utilisateur de l'administrateur et le mot de passe, puis cliquez sur Installer WordPress.
Cliquez maintenant sur 'Connexion Wordpress' et remplissez le nom d'utilisateur et le mot de passe que vous avez choisis ci-dessus, vous verrez le tableau de bord WordPress.
Ou vous pouvez voir la page d'accueil de WordPress ci-dessous :
L'installation de WordPress avec un conteneur MariaDB et un conteneur WordPress a réussi.