**Ceci est une ancienne révision du document !**
Table des matières
Activité : créer un environnement LAMP avec Docker
Objectif
Réaliser un environnement LAMP avec 3 conteneurs :
- Conteneur Docker Apache (serveur Web) ;
- Conteneur Docker mariadb (base de données) ;
- Conteneur Docker phpmyadmin (site Web d'administration de la base de données).
Les fichiers du site Web et de la base de données seront enregistrés en local et non dans les conteneurs en utilisant le principe des volumes de Docker.
Utilisation d’un serveur Web Apache avec PHP
Créez un conteneur avec les informations suivantes :
- dossier local contenant les fichiers du site Web ;
- dossier local pour la persistance des logs du serveur Apache ;
- mappage du site Web sur le port local 8001 ;
- conteneur Docker basée sur l'image : php:8.1-apache.
Le site Web doit être est accessible à l'URL : http://localhost:8001
Toute page créée ou modifiée dans le dossier local C:\www\html\siteweb est publiée dans le site Web.
Utilisation d’un serveur de base de données conteneurisé
Votre architecture doit maintenant mettre en oeuvre :
- un conteneur Docker php:8.1-apache pour le serveur Web ;
- un conteneur Docker mariadb pour la base de données.
Pour cela, vous allez créer un nouveau réseau Docker, en plus celui créé par défaut qui est appelé bridge.
- Pour visualiser les réseaux créés par Docker utilisez la commande suivante : <code> PS> docker network ls PS C:\Users\Charles> docker network ls NETWORK ID NAME DRIVER SCOPE 0357f1f2d2c1 bridge bridge local 726b383a30a3 host host local 2550a660d6dd none null local </code>
- créez une nouveau réseau Docker appelé lamp : <code> docker network create lamp </code>
Pour le site Web dynamique, l'image officielle Docker de la base de données MariadDB sera utilisée avec les informations suivnates :
- le conteneur MariaDB sera dasn le réseau Docker lamp ;
- le service MariaDB sera en écoute sur le port par défaut 3306 (si le port d'écoute ne change pas, m il n'est pas nécessaire de le préciser à la création du conteneur) ;
- Le mot de passe du compte root de MariaDB est passé au conteneur via la variable d’environnement MARIADBROOTPASSWORD ;
- les bases de données du conteneur situé dans /var/lib/mysql doivent être externalisées dans un dossier local.
Pour en savoir plus sur l'utilisation du conteneur MariaDB :
Certaines variables données dans ce lien ne sont plus bonnes.
- Lancement d'un conteneur appelé servbdd basé sur l'image MariaDB, dans le réseau lamp avec comme mot de passe du compte root passwordmariadb :
docker run --name servbdd --network lamp -d -v c:\www\html\siteweb-bdd:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=passwordmariadb mariadb
Utilisation d’un conteneur phpmyadmin pour administrer la base de données
Phpmyadmin est un site Web écrit avec PHP qui permet d'administrer un serveur MariaDB.
Lors de la création du conteneur basé sur l'image phpmyadmin, il sera nécessaire :
- de définir le port d'écoute local de votre pc : par exemple 8080 ;
- de faire le lien avec le conteneur servbdd créé à partir de l'image Mariadb :
- en utilisant le même réseau Docker lamp.
- en renseignant le nom du serveur MariaDB dans la variable d'environnement PMAHOST. <code> docker run –name phpmyadmin -d –network lamp -e PMA_HOST=servbdd -p 8080:80 phpmyadmin </code> En accédant au site de PhpMyadmin à l'URL http://localhost:8080, vous devez visualiser la page d'accueil de PhpMyAdmin et pouvoir vous authentifier avec le compte root et le mot de passe passwordmariadb défini précédemment :
Pour en savoir plus sur l'utilisation de l'image phpmyadmin :
Il est également possible de gérer la base de données MariaDB en utilisant le client MariaDB présent dasn lm'image MariaDB.
Pour cela, lancez un conteneur basé sur l'image MAriaDB, en mode interactif :
docker run -it --rm --network lamp mariadb mariadb -h servbdd -u root -p
Remarques :
- utilisez le mêmz réseau Docker lamp ;
- le paramètre -h doit être utilisé pour préciser le nom du contenur servbdd contenant le serveur MariaDB.
- la paramètre –rm permet de détruire le conteneur dès que vous le quittez.
===== Architecture complète LAMP===== Il ne reste plus maintenant qu'à : * récréer le conteneur du site Web dans le même réseau Docker lamp ; * créer la base de données du site web à partir du script de la sauvegarde de la base ; * créer dans le serveur MariaDB le compte utilisé par le site Web pour accéder à la base de données ; * Tester que le site est opérationnel. ===== Autres ressources ===== Lien : https://www.alsacreations.com/tuto/lire/1836-Docker--decouverte-et-environnement-LAMP-pour-WordPress.html ====== Retour Accueil Docker ====== * Docker