Outils pour utilisateurs

Outils du site


reseau:docker:creerimagedockerfile

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:creerimagedockerfile [2026/06/21 15:13] – [Présentation] techer.charles_educ-valadon-limoges.frreseau:docker:creerimagedockerfile [2026/06/21 16:54] (Version actuelle) – [Test de votre image avec un fichier docker-compose.yml] techer.charles_educ-valadon-limoges.fr
Ligne 3: Ligne 3:
 Les images Docker disponibles sur Docker Hub, sont construites à partir d'une image de base dans laquelle est ajouté des paquets logiciels et des éléments de configuration et de personnalisation. Les images Docker disponibles sur Docker Hub, sont construites à partir d'une image de base dans laquelle est ajouté des paquets logiciels et des éléments de configuration et de personnalisation.
  
-Pour cela, ces nouvelles images sont construites à partir d'un fichier appeél **Dockerfile**  décrivant toutes les opérations à effectuer.+Pour cela, ces nouvelles images sont construites à partir d'un fichier appelé **Dockerfile**  décrivant toutes les opérations à effectuer.
  
 ===== Créer une image personnalisée de l'image php===== ===== Créer une image personnalisée de l'image php=====
Ligne 20: Ligne 20:
 </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, le **terminal** pour Linux ou  **Powershell** pour Windows, 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 pseudo Docker :+    * une image **appelée php-mariadb** et **préfixée** par votre pseudo Docker :
  
 <code> <code>
Ligne 28: Ligne 28:
  
 ===== Test de votre image ===== ===== Test de votre image =====
-Pour pouvoir tester votre, vous devez mette en oeuvre +Pour pouvoir tester votre nouvelle image **php-mariadb**, vous devez mettre en œuvre 
  
   * un **conteneur MariaDB** appelé **srvbdd**;   * un **conteneur MariaDB** appelé **srvbdd**;
-  * un **script bdd\_test\_sov.sql** de **création d'une base de données de test** ; +  * un **script bdd\_phptest\_sov.sql** de **création** d'une base de données appelée **phptest** ; 
-  * un **conteneur** avec l'image **php** nouvellement créée appelé **testphp**; +  * un **conteneur** appelé **testphp** créé à partir de la nouvelle image **php-mariadb** ; 
-  * un **script index.php** permettant de **tester la connexion** à la base de données.+  * un **script index.php** permettant de **tester la connexion** à la base de données **phptest**.
  
-<code file bdd_test_sov.sql> +<code file bdd_php-test_sov.sql> 
-CREATE DATABASE test+CREATE DATABASE phptest
-USE test;+USE phptest;
 CREATE TABLE produits ( CREATE TABLE produits (
     nom VARCHAR(50)     nom VARCHAR(50)
Ligne 48: Ligne 48:
 <?php <?php
 $host = 'srvbdd'; // nom du conteneur MariaDB (base de données) $host = 'srvbdd'; // nom du conteneur MariaDB (base de données)
-$db   = 'test';+$db   = 'phptest';
 $user = 'root'; $user = 'root';
 $pass = 'Sio1234*'; $pass = 'Sio1234*';
Ligne 73: Ligne 73:
  
 ==== Création du conteneur mariadb appelé srvbdd==== ==== Création du conteneur mariadb appelé srvbdd====
-  * création du dossier contenant le script bdd_test.sql+ 
 +  * création du dossier contenant le script **bdd\_php-test\_sov.sql** : 
 <code shell> <code shell>
-mkdir .\init+mkdir init
 cd init cd init
 </code> </code>
  
-  * copie du fichier bdd_test.sql dans le dossier .\init+  * copie du fichier **bdd\_php-test\_sov.sql** dans le dossier init. 
 + 
 +  * création du conteneur **srvbdd** avec : 
 +    * la définition du mot de passe du compte root, 
 +    * exécution automatique du contenu du fichier **bdd\_php-test\_sov.sql** :   
  
  
Ligne 86: Ligne 92:
   --name srvbdd \   --name srvbdd \
   -e MARIADB_ROOT_PASSWORD=Sio1234* \   -e MARIADB_ROOT_PASSWORD=Sio1234* \
-  -e MARIADB_DATABASE=test \+  -e MARIADB_DATABASE=phptest \
   -p 3306:3306 \   -p 3306:3306 \
-  -v .\:/docker-entrypoint-initdb.d \+  -v ./init:/docker-entrypoint-initdb.d \
   mariadb    mariadb 
 </code> </code>
Ligne 95: Ligne 101:
 Explications : Explications :
   * -e MARIADB_ROOT_PASSWORD=Sio1234* => mot de passe root.   * -e MARIADB_ROOT_PASSWORD=Sio1234* => mot de passe root.
-  * -e MARIADB_DATABASE=test => base créée automatiquement. +  * -e MARIADB_DATABASE=phptest => base de créée automatiquement à la création du conteneur srvbdd
-  * -v .\init:/docker-entrypoint-initdb.d => montage du dossier contenant init.sql (exécuté au premier démarrage).+  * -v init:/docker-entrypoint-initdb.d => montage du dossier contenant **bdd\_phptest\_sov.sql** qui sera **exécuté** au premier démarrage du conteneur.
   * mariadb => image officielle MariaDB.   * mariadb => image officielle MariaDB.
 </WRAP> </WRAP>
Ligne 104: Ligne 110:
   * Tous les scripts présents dans **/docker-entrypoint-initdb.d** ne sont exécutés qu’au premier démarrage (quand /var/lib/mysql est vide).   * Tous les scripts présents dans **/docker-entrypoint-initdb.d** ne sont exécutés qu’au premier démarrage (quand /var/lib/mysql est vide).
   * Pour exécuter à nouveau des scripts d’initialisation, il faut :   * Pour exécuter à nouveau des scripts d’initialisation, il faut :
-    * soit rajouter lors de la création du conteur un volume pour le dossier /var/lib/mysql et le supprimer ermr ce dossier+    * soit rajouter lors de la création du conteneur un volume pour le dossier **/var/lib/mysql**, dossier qui va contenir les fichier de la base de données MariaDB. Il faudra alors supprimer le contenu de ce dossier **/var/lib/mysql** pour  relancer l'initialisation avec tous les scripts contenus dans le dossier  **/docker-entrypoint-initdb.d**; 
 +    * soit supprimer le conteneur et le recréer.
 </WRAP> </WRAP>
 +
 +==== Création du conteneur Web appelé testphp====
 +
 +  * création du dossier **www** contenant le script php **index.php** :
 +
 +<code shell>
 +mkdir www
 +cd www
 +</code>
 +
 +  * copie du fichier **index.php** dans le dossier **www**.
 +
 +  * création du conteneur **testphp** avec :
 +    * la mappage du dossier **www** avec le dossier de piblicatio **/var/www/html** du conteneyr ;
 +    * le port réseau de l'hôte de votre choix. Par exemple 8080 ;
 +    * le lien avec le conteneur **svrbdd** (l'utilisation de ce paramètre **link** sera explicité dans l'activité suivante) ;
 +    * la nouvelle image que vous devez tester. Ici **ctecher/php-mariadb** 
 +
 +
 +<code shell>
 +docker run -d \
 +  --name testphp \
 +  -p 8080:80 \
 +  --link srvbdd:srvbdd
 +  -v ./www:/var/www/html \
 +  ctecher/php-mariadb 
 +</code>
 +
 +===== Test de votre image avec un fichier docker-compose.yml=====
 +L'utilisation du fichier Docker-compose.yml sera explicité dans une prochaine activité.
 +
 +  * utilisation du dossier **init** contenant le script **bdd\_php-test\_sov.sql** ;
 +  * utilisation du dossier **wws** contenant le fichier **index.html**.
 +
 +<code file Docker-compose.yml>
 +services: 
 +  # base de données MariaDB 
 +  srvbdd: 
 +    image: mariadb
 +    volumes:
 +      - ./init:/docker-entrypoint-initdb.d/
 +    environment:
 +      MARIADB_ROOT_PASSWORD: Sio1234*
 +
 +  # site Web php 
 +  testphp: 
 +    image: ctecher/php-mariadb
 +    depends_on:
 +      - srvbdd
 +    ports:
 +      - 8080:80
 +    volumes:
 +      - ./www:/var/www/html  
 +</code>
 +
 +  * lancement des conteneurs : 
 +
 +<code>
 +docker compose up -d
 +</code>
 +
 +  * arrêt des conteneurs : 
 +
 +<code>
 +docker compose down
 +</code>
  
 ====== Retour Accueil Docker ====== ====== Retour Accueil Docker ======
  
   * [[reseau:docker:accueil|Docker]]   * [[reseau:docker:accueil|Docker]]
reseau/docker/creerimagedockerfile.1782047605.txt.gz · Dernière modification : 2026/06/21 15:13 de techer.charles_educ-valadon-limoges.fr