Outils pour utilisateurs

Outils du site


reseau:docker:lampdocker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
reseau:docker:lampdocker [2023/02/26 16:12] – [Utilisation d’un conteneur phpmyadmin pour administrer la base de données] techer.charles_educ-valadon-limoges.frreseau:docker:lampdocker [2025/04/29 23:06] (Version actuelle) admin
Ligne 1: Ligne 1:
 ====== Activité : créer un environnement LAMP avec Docker ====== ====== Activité : créer un environnement LAMP avec Docker ======
 +<WRAP center round info>
 +Utiliser Docker en ligne : 
 +  * https://www.docker.com/play-with-docker/
 +  * https://labex.io/fr/tutorials/docker-online-docker-playground-372912
 +</WRAP>
 +
 ===== Objectif ===== ===== Objectif =====
-Réaliser un environnement LAMP avec 3 conteneurs :+Réaliser un environnement LAMP avec 3 conteneurs pour le **site Web Nolark** :
     * Conteneur Docker **Apache** (serveur Web)  ;     * Conteneur Docker **Apache** (serveur Web)  ;
     * Conteneur Docker **mariadb** (base de données) ;     * Conteneur Docker **mariadb** (base de données) ;
     * Conteneur Docker **phpmyadmin** (site Web d'administration de la base de données).     * Conteneur Docker **phpmyadmin** (site Web d'administration de la base de données).
 +<WRAP center round info>
 +Les fichiers du site web **Nolark** ainsi le script de restauration de la base de données se trouvent dans l'équipe Teams de la classe.
 +</WRAP>
  
-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.  
  
-{{ :reseau:docker:docker_07.png |}}+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
  
 +{{:reseau:docker:docker.drawio.png|}}
 ===== Utilisation d’un serveur Web Apache avec PHP ===== ===== Utilisation d’un serveur Web Apache avec PHP =====
 Créez un conteneur avec les informations suivantes : Créez un conteneur avec les informations suivantes :
Ligne 15: Ligne 24:
     * dossier local pour la **persistance des logs du serveur Apache** ;     * dossier local pour la **persistance des logs du serveur Apache** ;
     * mappage du site Web sur le **port local 8001** ;     * mappage du site Web sur le **port local 8001** ;
-    * conteneur Docker basée sur l'image : **php:8.1-apache**.+    * conteneur Docker que vous avez créé (basé sur l'image php:8.1-apache) : **ctecher/php-mariadb**.
  
  
 Le site Web doit être est accessible à l'URL : http://localhost:8001 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.+Toute page créée ou modifiée dans le dossier local **C:\www\html\nolark** est publiée dans le site Web.
  
 ===== Utilisation d’un serveur de base de données conteneurisé ===== ===== Utilisation d’un serveur de base de données conteneurisé =====
 Votre architecture doit maintenant mettre en oeuvre : Votre architecture doit maintenant mettre en oeuvre :
-  * un conteneur Docker **php:8.1-apache** pour le **serveur Web** ; +  * un conteneur Docker créé à partir de l'image **ctecher/php-mariadb** pour le **serveur Web** ; 
-  * un conteneur Docker **mariadb** pour la base de données.+  * un conteneur Docker  créé à partir de l'image **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 :  +Pour le site Web dynamique, l'image officielle Docker de la base de données **MariadDB** sera utilisée avec les informations suivantes 
-<code> +    * le service MariaDB sera en **écoute** sur le port par défaut  **3306** (si le port d'écoute ne change pas, il n'est pas nécessaire de le préciser à la création du conteneur) ; 
-PS> docker network ls +    * Le mot de passe du compte **root** de **MariaDB** est passé au conteneur via la variable d’environnement **MARIADB\_ROOT_PASSWORD**  ;
-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, 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 **MARIADB_ROOT_PASSWORD** ;+
     * les bases de données du conteneur situé dans **/var/lib/mysql** doivent être externalisées dans un dossier local.     * les bases de données du conteneur situé dans **/var/lib/mysql** doivent être externalisées dans un dossier local.
  
Ligne 56: Ligne 48:
 </WRAP> </WRAP>
  
-  * 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** : +  * Lancement d'un conteneur appelé **servbdd** basé sur l'image **MariaDB** avec comme mot de passe du compte root **passwordmariadb** :  
 + 
 +  * Code Windows
  
 <code> <code>
-docker run --name servbdd --network lamp -d -v c:\www\html\siteweb-bdd:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=passwordmariadb  mariadb+docker run --name servbdd  -d -v c:\www\html\siteweb-bdd:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=passwordmariadb  mariadb 
 +</code> 
 +  * Code Linux 
 + 
 +<code> 
 +docker run --name servbdd  -d -v /home/user/www/html/siteweb-bdd:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=passwordmariadb  mariadb
 </code> </code>
  
 ===== Utilisation d’un conteneur phpmyadmin pour administrer la base de données ===== ===== 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**. **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 : 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 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 :     * de **faire le lien** avec le conteneur **servbdd** créé à partir de l'image Mariadb :
-      * en utilisant le même réseau Docker **lamp** +      * en utilisant l'opérateur **link**  
-      * en renseignant le **nom du serveur MariaDB** dans la variable d'environnement **PMA_HOST**.+      * en renseignant le **nom du serveur MariaDB** dans la variable d'environnement **PMA\_HOST**. 
 + 
 +L’opérateur **link** permet à un conteneur d’avoir accès directement au service d’un autre conteneur : 
 +  * via le **port** de ce service (par défaut ou redéfini par vous), 
 +  * en accédant au conteneur **par le nom** précisé dans l'opérateur **link** : pour cela Docker modifie le fichier **/etc/hosts** pour associer le nom à l'adresse IP du service. 
 + 
 <code> <code>
-docker run --name phpmyadmin -d --network lamp -e PMA_HOST=servbdd -p 8080:80 phpmyadmin+docker run --name phpmyadmin -d --link servbdd:servbdd  -e PMA_HOST=servbdd -p 8080:80 phpmyadmin
 </code> </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 :+L'opérateur link prend en argument le nom_du_conteneur_d_origine:alias_de_ce_conteneur ou alias_de_ce_conteneur est un nom d'alias libre qui peut être le même que celui du conteneur d'origine. 
 + 
 +  
 +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 :
  
 {{ :reseau:docker:docker_10.png |}} {{ :reseau:docker:docker_10.png |}}
Ligne 85: Ligne 94:
  
 <WRAP center round info> <WRAP center round info>
-Il est également possible de gérer la base de données MariaDB en utilisant le client MariaDB présent dasn lm'image MariaDB.+Il est également possible de gérer la base de données MariaDB en utilisant le client MariaDB présent dans l'image MariaDB. 
 + 
 +Pour cela, lancez un conteneur basé sur l'image MariaDB, en mode interactif :
  
-Pour cela, lancez un conteneur basé sur l'image MAriaDB, en mode interactif : 
 <code> <code>
-docker run -it --rm --network lamp mariadb mariadb -h servbdd -u root -p+docker run -it --rm --link servbdd:servbdd mariadb mariadb -h servbdd -u root -p
 </code>  </code> 
-Remarques :  + 
-  * utilisez le mêmz réseau Docker **lamp** ; +==== Remarques : ==== 
-  * le paramètre **-h** doit être utilisé pour préciser le nom du contenur **servbdd** contenant le serveur MariaDB.+ 
 +  * l'opérateur **link** permet de lier les 2 conteneurs  
 +  * le paramètre **-h** doit être utilisé pour préciser le nom du conteneur **servbdd** (précisé par l'opérateur link) contenant le serveur MariaDB.
   * la paramètre **--rm** permet de détruire le conteneur dès que vous le quittez.   * la paramètre **--rm** permet de détruire le conteneur dès que vous le quittez.
 +
 </WRAP> </WRAP>
  
 ===== Architecture complète LAMP===== ===== Architecture complète LAMP=====
 Il ne reste plus maintenant qu'à : 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 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 ;+    * **récréer le conteneur du site Web** en le liant au conteneur **srvbdd** ;
     * Tester que le site est opérationnel.     * Tester que le site est opérationnel.
 +
 +===== Activité à faire =====
 +<WRAP center round todo>
 +**Mission 1  :**
 +  * Utilisez le site **PhpMyAdmin** pour restaurer la base de données du site Web à partir du **script** de sauvegarde de la base de données.
 +
 +**Mission 2  :**
 +  * **Créez** le conteneur Docker du site Web en utilisant l'image que vous avez créée pour php ou bien l'image **ctecher/php** et en le liant au conteneur **servbdd** .
 +  * Testez que le site est **complètement opérationnel**.
 +
 +Vous pouvez prendre connaissance des **paramètres de connexion** nécessaires au site Web pour se connecter à la base de données dans l'un des fichiers du site Web.
 +
 +</WRAP>
 +
  
  
Ligne 110: Ligne 136:
  
 Lien : https://www.alsacreations.com/tuto/lire/1836-Docker--decouverte-et-environnement-LAMP-pour-WordPress.html Lien : https://www.alsacreations.com/tuto/lire/1836-Docker--decouverte-et-environnement-LAMP-pour-WordPress.html
 +
 +===== Mémento Docker =====
 +
 +<WRAP center round info>
 +**Mémento Docker** : https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes-fr
 +</WRAP>
  
  
 ====== Retour Accueil Docker ====== ====== Retour Accueil Docker ======
 +
   * [[reseau:docker:accueil|Docker]]   * [[reseau:docker:accueil|Docker]]
reseau/docker/lampdocker.1677424368.txt.gz · Dernière modification : 2023/02/26 16:12 de techer.charles_educ-valadon-limoges.fr