Outils pour utilisateurs

Outils du site


reseau:docker:webdocker

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:webdocker [2023/11/26 22:09] – [Activité à faire] techer.charles_educ-valadon-limoges.frreseau:docker:webdocker [2025/06/11 08:30] (Version actuelle) – [Créer un conteneur personnalisé] admin
Ligne 1: Ligne 1:
-====== Activité : publier un service en utilisant un conteneur Docker ====== +====== Activité : publier le service Web 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>
 Pour rendre un service accessible, le conteneur doit être lancé en arrière plan.  Pour rendre un service accessible, le conteneur doit être lancé en arrière plan. 
  
Ligne 95: Ligne 99:
   * Les **images** utlisée par les instances de conteneur sont en **lecture seule**.   * Les **images** utlisée par les instances de conteneur sont en **lecture seule**.
   * **Toutes les modifications** sur le conteneur sont réalisées **dans une couche supplémentaire**.   * **Toutes les modifications** sur le conteneur sont réalisées **dans une couche supplémentaire**.
-  * Les **données ajoutées** dans un conteneur **disparaissent avec lui lors de sa destruction**. Pour **sauvegarder ** les modifications dans une autre image, il est nécessaire d’utiliser la commande **commit**.+  * Les **données ajoutées** dans un conteneur **disparaissent avec lui lors de sa destruction**.  
 +  
 +Pour **sauvegarder** les modifications dans une autre image, il est nécessaire d’utiliser la commande **commit**.
  
 Cela est pertinent pour construire une nouvelle image personnalisée mais pas pour utiliser le conteneur pour un service en ligne où les données sont modifiées sans cesse ou bien s’il est important de conserver certaines données comme les traces (logs). Cela est pertinent pour construire une nouvelle image personnalisée mais pas pour utiliser le conteneur pour un service en ligne où les données sont modifiées sans cesse ou bien s’il est important de conserver certaines données comme les traces (logs).
Ligne 114: Ligne 120:
  
   * **image utilisée** : php:8.1-apache   * **image utilisée** : php:8.1-apache
-  * **dossier du serveur Apache**  : /var/www/html  +  * **dossier du serveur Apache**  : /var/www/html 
-  * **dossier local sur le PC** : par exemple C:\www\html +  * **dossier local sur le PC** : par exemple C:\www\html 
 +  * Commande sous  **Windows**. La commande à utiliser sera la suivante si les fichiers du site Web sont situés dans le dossier local **c:\www\html\siteweb** et les logs du serveur Apache externalisés dans le dossier c:\www\log\ :  
  
-La commande à utiliser sera la suivante si les fichiers du site Web sont situés dans le dossier local **c:\www\html\siteweb** et les logs du serveur Apache externalisés dans le dossier **c:\www\log\** :  
 <code> <code>
 docker run --name servweb -d -v c:\www\html\siteweb:/var/www/html -v c:\www\log:/var/log/apache2 -p 8001:80  php:8.1-apache docker run --name servweb -d -v c:\www\html\siteweb:/var/www/html -v c:\www\log:/var/log/apache2 -p 8001:80  php:8.1-apache
 +</code>
 +
 +  * Commande sous **Linux** 
 +La commande à utiliser sera la suivante si les fichiers du site Web sont situés dans le dossier local **/home/user/www/html/siteweb** et les logs du serveur Apache externalisés dans le dossier **/home/user/www/log** : 
 +
 +<code>
 +docker run --name servweb -d -v /home/user/www/html/siteweb:/var/www/html -v /home/user/www/log:/var/log/apache2 -p 8001:80  php:8.1-apache
 </code> </code>
  
Ligne 135: Ligne 149:
 <WRAP center round todo> <WRAP center round todo>
 **Mission 1  :** **Mission 1  :**
-    * Créez un conteneur Docker à partir de l'image **php:8.1-apache** permettant d’accéder à la page Web du site **Geststage**+    * Créez un conteneur Docker à partir de l'image **bitnami/apache** permettant d’accéder à la page Web par défaut du serveur Web en configurant la persistance du site en local. 
-    * Testez l’accès à la page d'accueil du site Geststage.+    Modifiez la page Web par défaut pour afficher vos nom et prénom ainsi qu'un lien vers une 2e page html.  
 +    Créez cette 2e page présentant le playgroud de Docker
 +    * Testez l’accès à vos deux pages :  page d'accueil et page de présentation du playground Docker.
  
 **Mission 2  :** **Mission 2  :**
 Vous devez **externaliser les logs du serveur Apache** afin de pouvoir les consulter en cas de besoin et d'erreur de fonctionnement du site Web **Geststage** et du serveur.  Vous devez **externaliser les logs du serveur Apache** afin de pouvoir les consulter en cas de besoin et d'erreur de fonctionnement du site Web **Geststage** et du serveur. 
-    * Créez un conteneur Docker à partir de l'image **bitnami/apache** affichantg la page Web par défaut et en configurant la persistance des logs en local en crééant un volume local pour le dossier **/var/log/apache2** du conteneur.+    * Créez un conteneur Docker à partir de l'image **bitnami/apache** affichant la page Web par défaut et en configurant la persistance des logs en local en crééant un volume local pour le dossier **/var/log/apache2** du conteneur.
     * **Vérifiez la présence** des fichiers de logs dans le **dossier local** (access.log ; error.log ; other_vhosts_access.log )     * **Vérifiez la présence** des fichiers de logs dans le **dossier local** (access.log ; error.log ; other_vhosts_access.log )
  
-**Mission 3  :** 
-    * Lancez 2 conteneurs Docker (servweb1 et servweb2) à partir de l'image **bitnami/apache** permettant d’accéder à la page Web du site **Geststage**. 
-    * Testez l’accès à chacun des services Web. 
 </WRAP> </WRAP>
  
-===== Créer un conteneur personnalisé=====+===== Créer une image personnalisée=====
 L'image **php:8.1-apache** contient une **configuration de php** qui ne possède de pilote que pour gérer les accès à la base de données **sqlite**. L'image **php:8.1-apache** contient une **configuration de php** qui ne possède de pilote que pour gérer les accès à la base de données **sqlite**.
  
Ligne 155: Ligne 168:
   * Créer un ficher appelé **Dockerfile** (sans extension) ;   * Créer un ficher appelé **Dockerfile** (sans extension) ;
   * Editez ce fichier pour y mettre les instructions suivantes :   * Editez ce fichier pour y mettre les instructions suivantes :
 +
 <code file Dockerfile>  <code file Dockerfile> 
 FROM php:8.1-apache FROM php:8.1-apache
Ligne 161: Ligne 175:
 RUN docker-php-ext-install pdo pdo_mysql RUN docker-php-ext-install pdo pdo_mysql
 </code> </code>
 +
   * Depuis l'invite de commande **Powershell**, dans le dossier contenant le **fichier Dokerfile**, lancez la commande suivante pour créer :   * Depuis l'invite de commande **Powershell**, dans le dossier contenant le **fichier Dokerfile**, lancez la commande suivante pour créer :
-    * une image **appelée php** et **préfixée** par votre prénom +    * une image **appelée php** et **préfixée** par votre pseudo Docker : 
-<code powershell+ 
-docker build -t charles/php .+<code> 
 +docker build -t charles/php-mariadb .
 </code> </code>
  
 ===== Afficher les logs du conteneur ===== ===== Afficher les logs du conteneur =====
  
-Si la **persistance des logs en local n'est pas configurée**, cette commande est utile notamment si la création du conteneur se passe mal et si l’accès au servoce Web n’est pas possible (cette commande ne renvoie rien dans ce cas si tout se passe bien).+Si la **persistance des logs en local n'est pas configurée**, cette commande est utile notamment si la création du conteneur se passe mal et si l’accès au service Web n’est pas possible (cette commande ne renvoie rien dans ce cas si tout se passe bien).
 <code shell> <code shell>
 docker logs servweb docker logs servweb
reseau/docker/webdocker.1701032981.txt.gz · Dernière modification : 2023/11/26 22:09 de techer.charles_educ-valadon-limoges.fr