Accueil TechnologiesDocker Les meilleures commandes de Docker – Partie 2
Les meilleures commandes Docker

Les meilleures commandes de Docker – Partie 2

par Jérémy PASTOURET

Vous l’attendiez tous, il est enfin arrivé. Voici mon second article technique sur Docker. Si vous n’avez pas lu le premier, je vous conseille de le parcourir. Autrement il vous manquera les bases pour suivre ce nouveau TP.

Voici le lien de l’article précédent : Les meilleures commandes de Docker – Partie 1

Je pense que ce nouveau TP va vous plaire. L’idée aujourd’hui est de vous faire démarrer un site de type WordPress en moins de 5 min (oui, c’est possible).

Petit rappel de ce qu’est un WordPress :  c’est un système de gestion de contenu communément appelé CMS (de l’anglais Content Management System). En plus WordPress est libre (Open Source). Il permet donc de créer des sites sans écrire une seule ligne de code. D’après une étude réalisée en décembre 2016, WordPress est utilisé par 27% des sites web dans le monde. Impressionnant ? La première version publiée date du 27 mai 2003, et nous sommes aujourd’hui à la version 4.7. La communauté est vraiment active sur ce projet, c’est ce qui est très intéressant. Pour vous donner une petite idée du rendu, voici quelques liens de sites qui tournent sous WordPress :

Sony Music, Panzani, et La Villette sont des sites qui fonctionnent sur ce système. Si vous voulez d’autres exemples, je vous conseille de faire un tour sur ce site : WordPress.org

D’ailleurs, si vous voulez vérifier qu’un site fonctionne bien sous WordPress, voici une petite astuce : vous pouvez rajouter à la fin de chaque lien /wp-admin/. Ainsi, « http://www.panzani.fr/ » devient « http://www.panzani.fr/wp-admin/ » et vous découvrirez le formulaire de connexion basique qui permet d’administrer le site.

Avant de nous lancer dans les commandes Docker, parlons d’abord d’architecture afin d’avoir une petite idée des conteneurs dont on a besoin pour faire tourner un WordPress.

Pour faire fonctionner notre site, on a bien entendu besoin d’une base de données qui va contenir nos pages, nos articles de blog, la liste des utilisateurs, etc. Et pour administrer et voir ce que contient notre base de données, nous avons besoin de PhpMyAdmin.

Pour la base de données, on va partir sur le moteur classique qui se nomme MySQL.

Et là vous devez sûrement vous dire : « Comment aurais-je pu faire si je ne connaissais pas l’architecture de WordPress ? »

En fait c’est simple. Rendez-vous sur le Docker Hub que je vous ai présenté dans mon précédent article, et cherchez « WordPress ». Sinon voici le lien : Repository WordPress. En un clin d’œil sur la page, on voit qu’on a besoin des identifiants et mots de passe d’une base de données MySQL.

Donc maintenant, ‘on sait qu’on doit d’abord installer MySQL. Voyons comment procéder en allant faire un tour sur la page Docker prévu à cette effet : Repository MySQL.

Analysons ensemble la commande Docker que la page nous conseille d’effectuer :

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

En regardant cette commande, certains termes vont probablement vous sauter au yeux. On retrouve « some-mysql », qui est le nom de notre futur conteneur et qu’on peut changer si on en a envie. On a aussi « my-secret-pw » : c’est le mot de passe de notre base de données. Il faudra bien penser à le changer. Pour le petit dernier, « tag » : c’est à nous de le choisir parmi une liste bien définie sur la page web, qui correspond à la version de MySql que l’on souhaite utiliser. Voici un petit extrait :

On va choisir la version 8. Deux autres paramètres se trouvent en bas de page : on a MYSQL_DATABASE et MYSQL_USER. Grâce à ces paramètres, on va pouvoir automatiquement créer notre user eainsi qu’une première base de données. Elle est pas belle la vie?

Voici la commande finale :

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=wordpress -e MYSQL_USER=root -d mysql:8

Quand on lance la commande, voici ce qu’on obtient : Docker télécharge ce qu’il lui faut pour lancer MySQL

Dès que tout est fini, on vérifie que notre conteneur est bien présent :

On voit que le conteneur some-mysql a bien été créé, et qu’il est toujours actif.

Passons maintenant à PhpMyAdmin qui va nous permettre de créer des tables, ajouter des données, etc.

Donc rebelote, on va faire un tour sur le Docker Hub – dont voici le lien. Dans la documentation, on nous indique la commande suivante :

docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin/phpmyadmin

Analysons la structure de la fonction. On a le nom « myadmin » qui est modifiable. Puis « mysql_db_server » qui est le terme le plus important de la requête car il permet de lier notre moteur MySQL à PhpMyAdmin. Ensuite rien de spectaculaire pour vous maintenant.

Voici donc la commande finale :

docker run --name myadmin -d --link some-mysql:db -p 8080:80 phpmyadmin/phpmyadmin

Vous avez dû remarquer que j’ai remplacé « mysql_db_server » par « some-mysql« , qui est le nom de mon conteneur comportant MySQL. C’est simplement pour dire  à Docker de lier mon nouveau conteneur à mon moteur de base de données.

Après avoir lancé votre commande, vous pouvez vérifier que tout est bon en lançant simplement un :

docker ps

Le résultat est le suivant, cette commande nous permet d’afficher uniquement les conteneurs actifs :

Maintenant que PhpMyAdmin est actif, on peut vérifier que notre installation fonctionne en ouvrant notre navigateur favori.

Pour connaître l’adresse à saisir dans votre navigateur internet, vous devez ouvrir une console et taper « ifconfig docker0« , ou « ipconfig » pour Windows.

Dans ma capture de console, on remarque sur la deuxième ligne le « addr » suivi d’une adresse IP. C’est celle qui devra être tapée dans le navigateur. A cela, nous devons rajouter le port 8080. Nous l’avons spécifié à Docker lors de l’installation de PhpMyAdmin, afin de ne pas bloquer le port 80 qui est le port traditionnel web et qui sera utilisé par WordPress.

Voici l’URL à taper dans Chrome. Bien sûr, si vous avez une adresse IP différente, changez l’URL :

192.168.99.100:8080

C’est un peu l’épreuve du feu ! Si vous obtenez une jolie page comme celle ci-dessous, c’est que vous avez réussi. Sinon relisez l’article, ou utilisez les commentaires.

Ensuite, saisissez l’utilisateur et le mot de passe spécifiés plus haut lors de l’installation de MySQL pour vous connecter. Pour vous évitez le scroll, je vous affiche à nouveau les paramétrages :

Utilisateur : root
Mot de passe : my-secret-pw

Vous allez obtenir la fenêtre suivante :

Si vous êtes bien attentif, vous avez dû remarquer qu’à gauche on peut voir la liste des bases de données. Notamment la base de données WordPress que l’on a spécifiée lors de l’installation de MySQL.

J’espère que tout fonctionne pour vous et que vous avez hâte de lancer l’installation de WordPress.

Avant de lancer la commande magique, je vous conseille de regarder de nouveau la page WordPress Hub.

La première ligne de commande est la suivante :

docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress

Le première paramètre « –name » est modifiable : il définit le nom de notre futur conteneur. Ensuite on a ‘–link’ qui permet de définir le nom du conteneur comprenant la base de données MySQL . Puis on a le port, qu’il faut changer car notre ami PhpMyAdmin utilise aussi le port 8080. Pour finir, le dernier élément correspond au nom du repository.

On va donc légèrement modifier la ligne de commande :

docker run --name some-wordpress --link some-mysql:mysql -p 80:80 -d wordpress:4.7.1-php7.0-apache

J’ai donc changé le port : j’ai mis le port 80  qui est plus sympa à utiliser. J’ai également rajouté un tag à notre WordPress pour obtenir la dernière version, et surtout utiliser PHP 7 qui est super rapide comparé à PHP5. Voyons maintenant ce que ça donne :

Docker se met donc à télécharger toutes les informations dont il a besoin pour lancer notre conteneur.

A la fin, Docker vous indique que tout a été correctement téléchargé dans une image qui se nomme wordpress:4.7.1-php7.0-apache, et que l’id du conteneur qu’on a lancé se nomme 34d4

Maintenant que tout est prêt, il ne reste plus qu’aller voir la tête de notre beau WordPress. Il faut utiliser la même adresse que pour PhpMyAdmin mais en supprimant le :8080. Voici le résultat :

Ensuite, on se retrouve sur une installation classique de WordPress. Vous choisissez la langue, cliquez sur « suivant », puis créez un utilisateur… et le tour est joué !

Félicitation, vous avez maintenant un beau WordPress et surtout la possibilité de créer un joli site Web.

Pour résumer notre magnifique boulot, voici les commandes pour créer un WordPress tout neuf en 2 lignes :

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=wordpress -e MYSQL_USER=root -d mysql:8

docker run --name some-wordpress --link some-mysql:mysql -p 80:80 -d wordpress:4.7.1-php7.0-apache

Impressionnant ce qu’on peut faire en si peu de lignes, non ? Enfin bref, j’espère que ce petit TP bien sympa vous a plu, et que vous arrivez à toucher du doigt la puissance de Docker. Dans le prochain article, je vous montrerai comment créer à la volée plein de WordPress en une seule petite ligne de commande. Vous allez être encore plus impressionnés… Alors revenez régulièrement visiter le blog 😉.

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.