0% ont trouvé ce document utile (0 vote)
18 vues17 pages

tp6 1

Ce TP explore les fonctionnalités avancées de Docker, incluant la récupération d'images, la création et gestion de conteneurs, ainsi que l'utilisation de volumes persistants. Les étapes comprennent la manipulation de conteneurs Ubuntu, Alpine et Nginx, ainsi que la création d'un serveur PHP-MYSQL-PHPMYADMIN à l'aide de Docker Compose. Le document détaille également la création d'images personnalisées et l'utilisation de variables d'environnement.

Transféré par

rachaabu61
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues17 pages

tp6 1

Ce TP explore les fonctionnalités avancées de Docker, incluant la récupération d'images, la création et gestion de conteneurs, ainsi que l'utilisation de volumes persistants. Les étapes comprennent la manipulation de conteneurs Ubuntu, Alpine et Nginx, ainsi que la création d'un serveur PHP-MYSQL-PHPMYADMIN à l'aide de Docker Compose. Le document détaille également la création d'images personnalisées et l'utilisation de variables d'environnement.

Transféré par

rachaabu61
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP6 – compte rendu

Conteneurisation
Docker, le retour avec des compléments
Introduction :

Ce TP a pour objectif d'approfondir la maîtrise de Docker en explorant des


fonctionnalités avancées de conteneurisation
1. Résumé de commandes
1. récupérer les images des conteneurs officiels Ubuntu et Debian comme vu
lors du TP précédent ;

J'ai commencé par récupérer les images officielles Ubuntu et Debian :

2.
J'ai testé plusieurs commandes du tableau :
• docker image ls pour lister les images disponibles
• docker run ubuntu pour créer un conteneur Ubuntu
• docker ps -a pour voir tous les conteneurs (y compris ceux arrêtés)
• docker inspect <ID> pour voir les détails d'un conteneur

3. pour finir, vérifier que tous les conteneurs sont arrêtés, puis les supprimer.

Pour nettoyer :
S’assurer que tous est supprimé :

2. Un premier conteneur pour se faire la main


1. aller sur le Docker Hub et rechercher l'image Alpine ;
2. récupérer l'image correspondante et la lancer sans option particulière ;

3. Vérifié son état avec docker ps -a (il s'est bien arrêté)

4. on le relance en dénissant un nom en mode détaché interactif

5. on s'y connecte en dénissant un shell

1. docker exec : C'est la commande pour exécuter une commande dans un


conteneur déjà en cours d'exécution.
2. -ti : Ce sont deux options combinées :
o -t (--tty) : Alloue un pseudo-terminal
o -i (--interactive) : Garde STDIN ouvert même si non attaché
Ensemble, ces options permettent une interaction avec le shell dans le
conteneur.
3. alpinetest : C'est le nom du conteneur dans lequel on veut entrer.
4. sh : C'est le shell qu'on veut exécuter (dans Alpine Linux, le shell par défaut
est sh plutôt que bash).
6. on arrête le conteneur et on le supprime

7. récupérer l'image officielle nginx et la lancer de façon à rediriger le port 80


vers le port 8080 de la machine hôte et en lui donnant le nom mynginx. Se
connecter avec un navigateur de la machine hôte sur le port adéquat et
visualiser la page par défaut du serveur web NGINX.

J'ai vérifié que Nginx fonctionnait en accédant à http://localhost:8080


8. inspecter le conteneur, puis afficher des statistiques sur les ressources
utilisées ;

9. lister les réseaux disponibles dans Docker et inspecter celui nommer bridge
10. arrêter le conteneur et le supprimer.

3 Volumes persistants
1. on commence par créer un répertoire Web dans lequel on va placer le
fichier HTML, on donne tous les droits à other sur le répertoire

2. on écrit un petit fichier index.html dans le répertoire Web ;


3. on lance un conteneur instanciant l'image nginx comme précédemment
en ajoutant l'option -v

Avec -v, vous pouvez lier un répertoire de l'hôte au conteneur pour que les
données survivent à la destruction du conteneur.

4. Arrêter le conteneur et le supprimer.

Voyons maintenant comment créer un volume.


1. Création du volume :

2. Lancement avec volume :

3. J'ai copié mon fichier HTML dans le volume (après avoir localisé le
chemin avec docker volume inspect)
3.
4.

6. arrêter le conteneur et le supprimer.


4 .Variable d'environnement en parameter
Pour passer une variable d'environnement en paramètre lors de la création / du
lancement d'un conteneur, on utilise l'option-- env, comme l'explique docker run
--help. Voyons cela avec un conteneur instanciant l'image alpine.
Les manipulations à effectuer sont :

1. on commence par créer/ lancer le conteneur, puis on s'y connecte et on


regarde le résultat

2. arrêter le conteneur et le supprimer ;

3. utilisons maintenant un chier dans lequel on va déclarer plusieurs


variables

4. recréer / relancer le conteneur en donnant le chier comme entrée, s'y


connecter et voir le changement
5. Créer une image à partir d'un conteneur
1. créer / lancer un conteneur instanciant l'image Ubuntu

2. se connecter dans le conteneur


3. mettre à jour les paquets du conteneur ;

4. installer les paquets supplémentaires suivants :


l'éditeur de texte nano ; les paquets iproute2 et net-tools qui permettent
d'avoir accès aux commandes ip et ifconfig (notamment), respectivement

5. sortir du conteneur et afficher la liste des conteneurs qui sont en cours


d'exécution ;
6. on sauvegarde ensuite l'état du conteneur en cours d'exécution via la
commande docker

7. lister vos images et observer l'ajout de l'image créée précédemment ;


8. utiliser docker diff pour afficher ce qui a été ajouter à l'image de base ;

9. créer / lancer un conteneur instanciant la nouvelle image en mode


détaché interactif, puis s'y connecter avec un le shell sh
10. sortir du contenir, l'arrêter, puis le supprimer ;

11. afficher avec docker history la liste des commandes exécutées pour créer
l'image

12. si on veut que l'image soit vue comme la dernière en date (latest) et donc
soit myubuntu:latest

13. finalement supprimer l'image créée.


6. Un serveur PHP-MYSQL-PHPMYADMIN avec Docker
1. on se place dans le répertoire /Docker et on crée un répertoire
MultiContServer, ainsi que trois sous-répertoires php, db et phpmyadmin

2. le conteneur PHP sera obtenu en créant une nouvelle image à partir de


l'image officielle grâce à un Dockerfile. Pour cela, dans un chier
dockerfile saisir les lignes suivantes

3. dans le répertoire php créer un chier index.php en utilisant nano pour


saisir les lignes suivantes

4. comme nous allons exécuter un serveur en mode multi-conteneurs, il faut


utiliser Docker Compose qui via un chier YAML va permettre de
configurer les différents services. La première chose avant d'écrire ce
chier de configuration est d'installer l'outil s'il ne l'est pas, puis on
redémarre le service
sudo apt install docker-compose
sudo service docker restart

5. saisir le chier docker-compose.yml dans le répertoire


/Docker/MultiContServer

6. lancer docker-compose et regarder les affichages produits, en particulier


les warnings
7. lister les conteneurs en cours d'exécution avec docker ps

8. se connecter avec un navigateur de la machine hôte sur le serveur web


du conteneur et observer les messages ;
Accès à http://localhost - message d'erreur car MySQL n'est pas encore configuré

9. afficher les logs du docker-compose

10. afficher la liste des commandes exécutées pour créer l'image php:7.3-
apache ;

11. complétons le fichier docker-compose.yml pour y ajouter les deux autres


conteneurs qui exécuteront MYSQL et PHPMYADMIN,.
12. lister les conteneurs en cours d'exécution avec docker ps et constater
l'évolution par rapport à avant ;

13. se connecter avec un navigateur de la machine hôte sur le serveur web


du conteneur et observer ce qui est affiché ;
J’ai cree la base de donné dans virtualisation
CREATE TABLE etudiants (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50) NOT NULL,
prenom VARCHAR(50) NOT NULL
);

Vous aimerez peut-être aussi