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édentes Révision précédente
Prochaine révision
Révision précédente
reseau:docker:lampdocker [2023/02/26 16:12]
techer.charles_educ-valadon-limoges.fr [Utilisation d’un conteneur phpmyadmin pour administrer la base de données]
reseau:docker:lampdocker [2023/12/05 16:28] (Version actuelle)
techer.charles_educ-valadon-limoges.fr
Ligne 1: Ligne 1:
 ====== Activité : créer un environnement LAMP avec Docker ====== ====== Activité : créer un environnement LAMP avec Docker ======
 ===== 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 18:
     * 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**.
  
  
 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** 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 :  +
-<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 : 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 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** ;     * 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 42:
 </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>
  
Ligne 68: Ligne 59:
     * 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**.
 +
 +<WRAP center round info>
 +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.
 +</WRAP>
 +
 <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>
 +
 +<WRAP center round info >
 +L'opérateur **link** prend en argument le **nom_du_conteneur_d_origine:alias_de_ce_conteneur** où **alias_de_ce_conteneur** est un nom d’alias libre qui peut être le même que celui du conteneur d’origine.
 +</WRAP>
  
 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 : 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 :
Ligne 85: Ligne 87:
  
 <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 :  +**Remarques : ** 
-  * utilisez le mêmz réseau Docker **lamp** ; +  * l'opérateur **link** permet de lier les 2 conteneurs  
-  * le paramètre **-h** doit être utilisé pour préciser le nom du contenur **servbdd** contenant le serveur MariaDB.+  * 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>
Ligne 99: Ligne 101:
 ===== 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 111: Ligne 126:
 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