TP1 - DeumeniDerval/admin-2 GitHub Wiki
Noms des auteurs : DEUMENI TCHAMENI DERVAL
1. Premier container
1.1. Hello World
Pouvez-vous expliquer avec vos mots ce qui s'est passé suite à l'exécution de cette commande?
- Docker a tenté de trouver l'image
hello-world:latest
en local, mais ne l'a pas trouvée. - Il a alors téléchargé l'image
hello-world
depuis Docker Hub (mentionné à l'étape 1.1). - Ensuite, Docker a créé un container à partir de cette image.
- Ce container a exécuté un programme qui affiche un message de confirmation, puis il s'est arrêté immédiatement après son exécution
1.2. Observer un container
apres avoir exécuté la commande docker container ls -a
on peut voir les détails du container
- Identifiant du container :
0aca120adcd6
- Nom du container :
thirsty_lamport
- État du container :
Exited (0) 47 seconds ago
(le container a terminé son exécution avec succès) - Nom de l’image utilisée :
hello-world
- Provenance de l’image : Docker Hub, comme mentionné dans le point
1.1
. - Commande exécutée par le container :
"/hello"
Peut-on retrouver ces informations dans Docker Desktop ?
Oui, si Docker Desktop est installé, vous pouvez retrouver ces informations dans l'interface graphique :
- Ouvrir Docker Desktop.
- Aller dans l’onglet "Containers" : Vous verrez la liste des containers créés.
- Chercher "hello-world" : Vous y verrez son ID, nom, statut ("Exited"), et l’image utilisée.
- Aller dans l’onglet "Images" : Vous verrez
hello-world
comme une image disponible en local.
1.3. Les images
- Quelles informations voyez-vous? Quel est le lien avec ce que vous avez observé auparavant?
On voit les informations comme:
-REPOSITORY : Nom de l’image
-TAG : Version de l’image
-IMAGE ID : Identifiant unique de l’image
-CREATED : Date de création de l’image
-SIZE : Taille de l’image en MB,GB et KB
Après avoir exécuté la commande docker run hello-world
, Docker a téléchargé l’image hello-world
et on peut l'observer ici après avoir listé les images.
-
Comparez l'output de cette commande avec la vue correspondante de l'interface graphique.
On constate que dans l'interface graphique on a les même informations que dans l'output da la commandes
docker image ls
On peut voir la liste des images disponibles, leur taille et leur date de création avec un bouton supprimer que l'on peut utiliser pour supprimer les images directement. -
Essayez de trouver la commande qui vous permettra de supprimer cette image. C'est une bonne idée de ne pas conserver les images non utilisées sur votre système de fichiers : même avec la mutualisation de couches, elles prennent de l'espace sur le disque!
La commande
docker rm <id_du_container>
en supprimant les containers sur les quels les images sont basées cela supprime l'image.
on peut voir dans la capture ci-dessous que une des 2 images hello-world que j'avais a disparue
2. Utiliser un container
2.1. Interagir avec un container
- A quoi servent les options
i
ett
dans la commande ci-dessus?
Le i
(interactif) sert a Garde l’entrée standard ouverte pour permettre l'interaction avec le conteneur.
Le t
(TTY) Alloue un terminal pseudo-TTY, ce qui rend l’affichage interactif et lisible.
les 2 servent a ouvrir un terminale interactif dans le container ubuntu.
2. Chaque container Docker est destiné à exécuter une commande unique. Quelle est-elle dans ce cas-ci?
La commande unique ici est le bash
comme on peut l'observer sur l'image en dessous
-
Dans le container, quels sont les processus présents? Et leurs PIDs? on a 2 processus présents
bash
qui a un PID 1 etps
qui a un PID 9 -
Avec quel utilisateur êtes-vous loggé? Je suis loggé avec l'utilisateur root
-
Votre container a-t'il accès à Internet? Qui est son résolveur? j'ai essayé de pinger google mais ca ne fonctionnait pas vu que l'outil ping n'était pas installé j'ai du faire une mise a jour avec la commande
apt update && apt install utils-ping
. avoir pingé google on voit que ca marcheson résolveur est nameserver 192.168.65.7
2.2. Inspecter un container
- Chaque container dispose d'une interface réseau. Quelle est l'adresse IP de l'interface de votre container? Dans la partie "NetworkSettings" on peut voir l'adresse ip de l'interface du container qui est 172.17.0.2
- Votre container a-t'il des ports ouverts?
Le container n'a aucun port ouvert on peut le voir aussi dans la partie "NetworkSettings"
2.3. Faire tourner un service dans un container
- Qu'avez-vous observé au niveau des "ports" ? Expliquez et illustrez votre réponse avec des screenshots.
La commande
docker run -p80:80 --name mon-serveur-web nginx
a lancé le conteneur mon-serveur-web et a mappé le port 80 de mon serveur local au port 80 du container.
3. Construire des images
3.1. Figer un container
installation de nano après avoir lancé le terminal interacif
modification du fichier html
Résultat :
Image sur base de mon serveur
Nouveau container sue base de l'image créée
Après avoir arrêté l'image mon-serveur-web j'ai crée un autre container sur base de l'image que j'ai crée
3.2. Créer une image sur base d'un Dockerfile
fichier Dockerfile et index.html crées en local
Création de l'image
On peut voir que l'image a bien été créé
Exercices récapitulatifs
Documentez ici la réalisation des exercices, via des explications et des snapshots.
4.1. Démarrer un serveur Web Apache
Je démarre le container container_apache avec l'imaage apache en mappant son port 80 au port 80 du PC
On peut voir ici qu'il a bien été crée
je crée un répertoire site_2
pour l'autre site
Je crée le deuxième index.html avec la commande nano je mets un code html pour le 2eme site et j'afficher son contenu avec la commande cat
4.2. Lancer un résolveur Bind dans un container Docker
- Quelle configuration avez-vous effectuée au niveau des ports ?
- Qu'avez-vous observé dans la trace Wireshark qui prouve que la configuration est correcte? Illustrez avec un screenshot de la capture.