Vous êtes sur la page 1sur 19

Université Mohammed V

Ecole Nationale supérieure d’informatique et d’Analyse


des Systèmes
Rabat

Compte rendu
TP N°3 : Containers Docker
Nom et Prénom: Hanane ABID

Master1: Cloud and High Performance Computing-CLOUDHPC

Groupe: salaries

Professeur: Mr. Mustapha ZBAKH

Annee universitaire: 2019-2020

I. Objectifs du travail :
 L’installation et la configuration de docker ;
 l’installation des images et la création des containers ;
 gestion des containers et des images ;
 tournages des applications web avec docker ;
 l’affichage des réseaux par défaut, les paramètres de bridge des
conteneurs.

II. Etapes de réalisation :

Partie1 : Configuration hôte Docker et premiers containers :

1. On a créé une machine virtuel Debian 64 bit sur VMware.


2. J’ai connecté en tant qu’administrateur et j’ai installé les commandes
recommandées pour Debian :

Figure 1 : faire des mises à jour pour Debian


Figure 2 :l’installation des packages de référentiel

Figure 3 : I ’ajout de la clé GPG officielle de docker

Figure 4 : la création du fichier /etc/apt/sources.list.d/docker.list

Figure 5 :l’ajout des adresses des dépôts

Quand on retape la commande apt-get update pour télécharger les dépôts docker, on
constate qu’il s’affiche des erreurs de téléchargements .pour les installer on a utilisé la
commande suivante proposée sur la page officielle docker :

Figure 6 : configuration le référentiel stable


Maintenant, on peut installer docker : (cette commande est recommandée par le site
officiel docker) :

Figure 7 :l’installation de la dernière version docker Engine et containers

3. On va créer le répertoire /etc/systemd/system/docker.service.d, puis on va ajouter


le fichier http-proxy.conf dans ce répertoire, et enfin on va redémarrer docker.

Figure 8 : création du répertoire

Figure 9 :l’ajout du fichier

Figure 10 : redémarrage de docker

Maintenant, on va vérifier que Docker Engine est correctement installé en exécutant la


commande docker run hello-world.
Cette commande télécharge une image de test et l'exécute dans un conteneur. Lorsque le
conteneur s'exécute, il imprime un message d'information et se ferme.
Figure 11 : le bon fonctionnement de docker Engine

4. On va télécharger le container officiel ubuntu


a) Naviguer sur le site de docker :

Figure 12 :l’image officielle ubuntu

b) Installer l’image Ubuntu :

Figure 13 :l’installation de l’image ubuntu

c) Vérifier que l’image est correctement installée :


Figure 14 :l’affichage des images installées

Remarque : L’image ubuntu a été créé les 3 semaines dernières

Partie 2 : Premier container :

1. On va démarrer notre premier container ubuntu :

Figure 15 : démarrage du container ubuntu

Le container ubuntu a été activé.

2. On va lister les conteneurs actifs et inactifs :

Figure 16 : la liste des containers active

Figure 17 : la liste des containers actifs et inactifs

L’option -a permet de voir tous les conteneurs, quel que soit leur statut (en arrêt, ou en
cours d’exécution).

3. On va rediriger l’entrée standard du conteneur ubuntu :


Figure 18 : redirection vers le conteneur

Les options –ti : -t va créer un terminal dans le conteneur et -i va nous permettre de se


connecter à celui-ci.

La version du conteneur :

Figure 19 :l’affichage de la version conteneur

4. on va vérifier les conteneurs qui sont actifs :

Figure 20 : les conteneurs actifs

Il y a 2 conteneurs qui sont actifs.

5. On va placer dans notre second terminal, celui de la machine hôte.


a) Lister les processus avec la commande top :

Figure 21 : listes des processus avec la commande top

b) Ajouter le namespace des processus afin de voir le namespace de notre


container en tapant f dans le top puis en allant sélectionné le champ nsPID :
Figure 22 :la selection du champs nsPID

Figure 23 : retourner le champ nsPID dans l’affichage

c) faire du bruit" dans le container avec la commande yes :

Figure 24 : la sortie de la commande yes

d) sélectionner les processus d’une manière décroissante en tapant à nouveau


f:
Figure 25 :nsPID des différents processus

Le namespace id de notre container est : 4026532617

Figure 26 : tous les processus de notre conteneur

Le conteneur utilise les mêmes processus.

6. on va aborder la partie réseau de notre conteneur.


a) lister les interfaces réseaux de notre conteneur :

Figure 27 : interface réseau du conteneur ubuntu


b) afficher l’adresse IP de notre container :

Figure 28 :l’adresse ip du conteneur

L’adresse ip de notre container est masquée.

c) Trouver la passerelle de notre container :

Figure 29 : passerelle du container

7. On va arrêter notre conteneur :


a) La commande docker stop ubuntu permet d’arrêter le conteneur .

Figure 30 : stopper le conteneur ubuntu

b) redémarrer le conteneur et vérifier qu’il est actif :

Figure 31 : redémarrer le conteneur ubuntu

c)

Figure 32 : connecter au conteneur ubuntu


8. Maintenant, on va tuer le conteneur ubuntu après leur arrêt :

Figure 33 : tuer le conteneur ubuntu

Partie 3 : Gestion des containers :


1. On va redémarrer un autre container basé sur l'image ubuntu avec un nom diffèrent
pour changer :

Figure 34 : démarrer le conteneur bob

2.

Figure 35 :le conteneur bob est actif

Figure 36 :

Figure 37 :
Figure 38 :

Apres avoir écrire la commande top dans le container, on obtient :

Figure 39 :

Et quand on retape la commande docker logs bob dans la machine hôte on obtient :

Figure 40 : statistiques du conteneur bob

3. Surveiller efficacement un container avec la commande docker logs -ft bob :


Figure 41 : surveillance du conteneur bob

4. Docker fournit aussi des statistiques sur l'usage des ressources CPU/mémoire/réseau
des Containers :

Figure 42 : statistiques des ressources

Partie 4 : Gestion des images :

1. On va lister les images disponibles avec la commande docker images :

Figure 43 : les images disponibles

2. On va télécharger l’image Apache localement depuis le site de docker avec la


commande docker put httpd :

Figure 44 :l’ajout de l’image d’Apache


3. Créer notre propre image :
a) Créer le répertoire ~/Docker/Apache :

Figure 45 : création du répertoire

b) Créer le fichier Dockerfile avec la commande touch après avoir se placer dans
le répertoire ciblé :

Figure 46 : création du fichier Dockerfile

Figure 47 : contenu du fichier Dockerfile

c) On va créer notre propre image sous le nom hanane/apache :

Figure 48 : création de l’image hanane/apache

La création de l’image s’interrompe et affiche le message suivant sur le terminal :


Figure 49 : erreur de l’localisation de l’image

Donc il faut ajouter la commande qui permet de localiser la machine dans le fichier
Dockerfile :

Figure 50 :l’ajout les lignes de la localisation

d) Lister nos images :

Figure 51 : vérification de l’existante de l’image crée précédemment

Partie 5 : Faire tourner des applications avec Docker :

1. On va démarrer les containers en mode démon :


a) Utiliser l’option -d pour démarrer un conteneur en mode démon :

Figure 52 : démarrage en mode démon


Figure 53 :

L’option -d permet de lancer un conteneur en tâche de fond et de ne pas bloquer la


console avec un shell interactif. Le container va s’éteindre après sa création.

b) Détruire le container précédent :

Figure 54 : détruire le conteneur démon

Figure 55 : laisser le conteneur toujours actif

c) On va créer un nouveau container en tache de fond, et on lui a


demandée d’exécuter une boucle while infini qui permet d’afficher le
message ´hello world´ (dormir 1 second puis recommencer), donc le
container ne va pas s’éteindre car on lui demande de faire quelque chose.

Figure 56 : détruire le container démon

2. Démarrer un container hanane/apache en mode démon en exposant le port 80 :

Figure 57 : exposer le port 80

3. On va connecter sur la machine locale (l'hôte Debian) sur le port docker :


Figure 58 : connecter sur le port docker

Figure 59 : la page web du serveur Apache

4. Controller le port choisi :

Figure 60 : la vérification du port choisi

Figure 61 : le bon fonctionnement de la page du serveur

5. On va contrôler le contenu du serveur Web depuis l'hôte Debian :


a) créer un répertoire mkdir website dans le répertoire Apache crée
précédemment :
Figure 62 : la création du répertoire website

b) mettre dans ce répertoire un fichier index.html avec le contenu suivant :

Figure 63 : Edition du fichier index.html

Figure 64 : code html du fichier index.html

c) démarrer votre container en montant le répertoire apache :

Figure 65 : démarrage de conteneur

d) vérifier que le container offre le service attendu :

Figure 67 : affichage de l’adresse

Figure 68 : le service inattendu


On n’a pas obtenu le résultat attendu car le port 80 est donnée pour le serveur apache
(spécifier dans le fichier Dockerfile).Pour avoir le résultat souhaité il faut changer le numéro
de port du fichier index.html

Figure 69 : changement de port

Figure 70 : la page web obtenu

III. Conclusion :
Pendant la réalisation de ce TP, j’ai constatée qu’il a une grande différence entre
une machine virtuelle et un conteneur. Docker permet de lancer un conteneur
rapidement par rapport VM, ainsi qu’une économie des ressources.

Parmi les inconvénients de docker est le manque de la sécurité, puisque les


conteneurs peuvent communiquer entre contrairement aux machines virtuelles (il
n’y a pas de communication entre la machine hots et VM).

IV. Problèmes rencontrés


 Quand j’exécute une 2eme commande de lancement de conteneur, il y aura 2
conteneurs dans la liste, ce qui m’a poussé de faire de la suppression à chaque fois
pour libérer l’espace du disque.

V. Questions:

1. Est-ce que on peut créer des clusters des conteneurs Docker ?


2. Comment on gère nos déploiements multi-nœuds on utilisant docker ?

Vous aimerez peut-être aussi