reseau:docker:creerimagedockerfile
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| reseau:docker:creerimagedockerfile [2026/06/21 12:08] – [Test de votre image] techer.charles_educ-valadon-limoges.fr | reseau: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 1: | Ligne 1: | ||
| ====== Activité : créer une image Docker avec un fichier Dockerfile ====== | ====== Activité : créer une image Docker avec un fichier Dockerfile ====== | ||
| ===== Présentation ===== | ===== Présentation ===== | ||
| - | Les images Docker disponibles sur Dockerhub, 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 | + | Pour cela, ces nouvelles |
| ===== Créer une image personnalisée de l' | ===== Créer une image personnalisée de l' | ||
| Ligne 20: | Ligne 20: | ||
| </ | </ | ||
| - | * Depuis l' | + | * Depuis l' |
| - | * 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 : |
| < | < | ||
| - | docker build -t charles/ | + | docker build -t ctecher/ |
| </ | </ | ||
| ===== Test de votre image ===== | ===== Test de votre image ===== | ||
| - | Pour pouvoir tester votre, vous devez mette en oeuvre : | + | Pour pouvoir tester votre nouvelle |
| - | * un **conteneur MariaDB** ; | + | |
| - | * un **script bdd_test_sov.sql** de **création d'une base de données de test** ; | + | |
| - | * un **conteneur** avec l'image **php** | + | |
| - | * un **script index.php** permettant de **tester la connexion** à la base de données. | + | |
| - | <code file bdd_test_sov.sql> | + | * un **conteneur MariaDB** appelé **srvbdd**; |
| - | CREATE DATABASE test; | + | * un **script bdd\_phptest\_sov.sql** de **création** d'une base de données appelée **phptest** |
| - | + | * un **conteneur** appelé **testphp** créé à partir de la nouvelle image **php-mariadb** | |
| - | USE test; | + | * un **script index.php** permettant de **tester la connexion** à la base de données **phptest**. |
| + | <code file bdd_php-test_sov.sql> | ||
| + | CREATE DATABASE phptest; | ||
| + | USE phptest; | ||
| CREATE TABLE produits ( | CREATE TABLE produits ( | ||
| nom VARCHAR(50) | nom VARCHAR(50) | ||
| ); | ); | ||
| - | |||
| INSERT INTO produits (nom) VALUES (' | INSERT INTO produits (nom) VALUES (' | ||
| INSERT INTO produits (nom) VALUES (' | INSERT INTO produits (nom) VALUES (' | ||
| </ | </ | ||
| + | |||
| + | <code file index.php> | ||
| + | <?php | ||
| + | $host = ' | ||
| + | $db = ' | ||
| + | $user = ' | ||
| + | $pass = ' | ||
| + | |||
| + | try { | ||
| + | $pdo = new PDO(" | ||
| + | } catch (Exception $e) { | ||
| + | die(" | ||
| + | } | ||
| + | |||
| + | $stmt = $pdo-> | ||
| + | |||
| + | echo "< | ||
| + | echo "< | ||
| + | echo "< | ||
| + | |||
| + | while ($row = $stmt-> | ||
| + | echo "< | ||
| + | } | ||
| + | |||
| + | echo "</ | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | ==== Création du conteneur mariadb appelé srvbdd==== | ||
| + | |||
| + | * création du dossier contenant le script **bdd\_php-test\_sov.sql** : | ||
| + | |||
| + | <code shell> | ||
| + | mkdir init | ||
| + | cd 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** : | ||
| + | |||
| + | |||
| + | <code shell> | ||
| + | docker run -d \ | ||
| + | --name srvbdd \ | ||
| + | -e MARIADB_ROOT_PASSWORD=Sio1234* \ | ||
| + | -e MARIADB_DATABASE=phptest \ | ||
| + | -p 3306:3306 \ | ||
| + | -v ./ | ||
| + | mariadb | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info> | ||
| + | Explications : | ||
| + | * -e MARIADB_ROOT_PASSWORD=Sio1234* => mot de passe root. | ||
| + | * -e MARIADB_DATABASE=phptest => base de créée automatiquement à la création du conteneur srvbdd. | ||
| + | * -v init:/ | ||
| + | * mariadb => image officielle MariaDB. | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important> | ||
| + | Important : | ||
| + | * Tous les scripts présents dans **/ | ||
| + | * Pour exécuter à nouveau des scripts d’initialisation, | ||
| + | * soit rajouter lors de la création du conteneur un volume pour le dossier **/ | ||
| + | * soit supprimer le conteneur et le recréer. | ||
| + | </ | ||
| + | |||
| + | ==== Création du conteneur Web appelé testphp==== | ||
| + | |||
| + | * création du dossier **www** contenant le script php **index.php** : | ||
| + | |||
| + | <code shell> | ||
| + | mkdir www | ||
| + | cd www | ||
| + | </ | ||
| + | |||
| + | * 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 **/ | ||
| + | * le port réseau de l' | ||
| + | * le lien avec le conteneur **svrbdd** (l' | ||
| + | * la nouvelle image que vous devez tester. Ici **ctecher/ | ||
| + | |||
| + | |||
| + | <code shell> | ||
| + | docker run -d \ | ||
| + | --name testphp \ | ||
| + | -p 8080:80 \ | ||
| + | --link srvbdd: | ||
| + | -v ./ | ||
| + | ctecher/ | ||
| + | </ | ||
| + | |||
| + | ===== Test de votre image avec un fichier docker-compose.yml===== | ||
| + | L' | ||
| + | |||
| + | * 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: | ||
| + | - ./ | ||
| + | environment: | ||
| + | MARIADB_ROOT_PASSWORD: | ||
| + | |||
| + | # site Web php | ||
| + | testphp: | ||
| + | image: ctecher/ | ||
| + | depends_on: | ||
| + | - srvbdd | ||
| + | ports: | ||
| + | - 8080:80 | ||
| + | volumes: | ||
| + | - ./ | ||
| + | </ | ||
| + | |||
| + | * lancement des conteneurs : | ||
| + | |||
| + | < | ||
| + | docker compose up -d | ||
| + | </ | ||
| + | |||
| + | * arrêt des conteneurs : | ||
| + | |||
| + | < | ||
| + | docker compose down | ||
| + | </ | ||
| + | |||
| ====== Retour Accueil Docker ====== | ====== Retour Accueil Docker ====== | ||
| * [[reseau: | * [[reseau: | ||
reseau/docker/creerimagedockerfile.1782036538.txt.gz · Dernière modification : 2026/06/21 12:08 de techer.charles_educ-valadon-limoges.fr
