Semaine 2 · Laboratoire

WordPress
emballé

Installer Docker, faire ses premiers pas, puis mettre le site de la petite entreprise en conteneurs.

420-5A4-MT · Acte 1 · La fondation
La mission du jour

À la fin de la séance, vous aurez :

Prérequis : la machine virtuelle uniformisée de la semaine 1, démarrée, avec votre accès SSH. En cas de doute, revenez à l'instantané de départ.

Étape 1

Installer Docker et vérifier

On installe avec le script officiel de commodité (il installe aussi Docker Compose) :

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# trois verifications avant de continuer :
docker version
sudo systemctl status docker
sudo docker run hello-world
Hello from Docker!

Si hello-world vous salue, votre moteur Docker est vivant. Sinon, appelez avant de continuer : tout le reste en dépend.

Étape 2

Les premiers pas

Dix minutes de gymnastique avec les commandes du jour :

sudo docker pull ubuntu
sudo docker images
sudo docker run ubuntu echo bonjour
sudo docker ps -a
# pourquoi le conteneur est-il deja arrete ?
sudo docker run --name essai -d ubuntu sleep 300
sudo docker ps
sudo docker logs essai
sudo docker stop essai
sudo docker rm essai

Question piège à résoudre en chemin : pourquoi docker run ubuntu tout court se termine-t-il immédiatement ?

Étape 3

WordPress tout-en-un

Première conteneurisation du site : une image LAMP complète (Linux, Apache, MySQL, PHP) dans un seul conteneur, avec deux volumes pour que les données survivent :

mkdir -p ~/conteneur/www ~/conteneur/mysql
chmod 777 ~/conteneur/www ~/conteneur/mysql
cd ~/conteneur
sudo docker run -d -p 80:80 -v ${PWD}/www:/app -v ${PWD}/mysql:/var/lib/mysql mattrayner/lamp:0.8.0-1804-php8

Vérifiez dans votre navigateur : http://192.168.56.2/

Étape 4

Installer WordPress dans le conteneur

A

La base de données. Par phpMyAdmin (http://192.168.56.2/phpmyadmin/) : créer la base wordpress et un utilisateur wordpressuser avec tous les privilèges dessus.

B

Les fichiers. Télécharger WordPress (curl -O https://wordpress.org/latest.tar.gz), extraire, copier wp-config-sample.php vers wp-config.php et y inscrire la base, l'utilisateur et le mot de passe.

C

Le déploiement. Copier les fichiers dans ~/conteneur/www, ajuster les droits pour Apache, puis terminer l'installation dans le navigateur. Ajouter un article avec une image pour prouver que tout fonctionne.

Étape 5

La version pro : un conteneur par service

Tout-en-un, c'est déjà emballé, mais la vraie séparation professionnelle isole chaque service : le web d'un côté, la base de données de l'autre, reliés par un réseau privé Docker.

sudo docker network create reseau-wordpress
sudo docker run -d --name basededonnees --network reseau-wordpress -v ~/conteneur/basededonnees:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=wordpress mysql:8.0
sudo docker run -d --name web --network reseau-wordpress -p 8080:80 -v ~/conteneur/web:/var/www/html -e WORDPRESS_DB_HOST=basededonnees -e WORDPRESS_DB_NAME=wordpress wordpress
Avant de partir

Vérifications, nettoyage, devoir

La semaine prochaine, l'acte 2 : la partition. Toutes ces longues commandes tiendront dans un seul fichier, et l'application entière se lèvera d'un seul geste.

Version de départ · ce diaporama va s'enrichir