0% ont trouvé ce document utile (0 vote)
11 vues18 pages

Guide d'installation et gestion de Docker

Ce document présente un atelier sur la conteneurisation avec Docker, couvrant des tâches telles que l'installation de Docker, la création et la gestion de conteneurs, ainsi que l'utilisation de Docker Compose et Docker Swarm. Les membres du groupe ont réalisé des étapes pratiques, allant de la mise à jour des paquets à la création d'images personnalisées et au déploiement de services. Le projet se conclut par une exploration de Portainer pour la gestion graphique des conteneurs.

Transféré par

mortallaba
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)
11 vues18 pages

Guide d'installation et gestion de Docker

Ce document présente un atelier sur la conteneurisation avec Docker, couvrant des tâches telles que l'installation de Docker, la création et la gestion de conteneurs, ainsi que l'utilisation de Docker Compose et Docker Swarm. Les membres du groupe ont réalisé des étapes pratiques, allant de la mise à jour des paquets à la création d'images personnalisées et au déploiement de services. Le projet se conclut par une exploration de Portainer pour la gestion graphique des conteneurs.

Transféré par

mortallaba
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

Université Cheikh Anta Diop

Ecole Supérieure Polytechnique


Département Génie Informatique
Année Universitaire 2024 / 2025
Diplôme d’ingénieur de Conception (DIC 3 année) ère

Cloud Computing et Virtualisation

Atelier : Plateforme de Conteneurisation Docker

Membres du Groupe :
Moussa DIALLO
Cheikh GAYE
Mor Talla BA

Tache 1
1- Mise à jour de la liste de paquets existante
Commande exécutée pour ajouter la clé GPG officielle de Docker à la machine, nécessaire pour
valider les paquets provenant du dépôt Docker.

2- Permettre à la commande apt d’utiliser les paquets via HTTPS


Installation des paquets nécessaires pour configurer le dépôt Docker.
Les outils comme apt-transport-https, gnupg2, et software-properties-common sont
installés avec succès.
Cette étape prépare le système à ajouter le dépôt Docker de façon sécurisée.
Ajout de la clé GPG et du dépôt Docker à la liste des sources APT. Cela permet à la machine
d’installer Docker depuis les dépôts officiels.
Le fichier [Link] est correctement créé.

3- Mise à jour de la liste de paquets


Exécution de sudo apt update pour mettre à jour les listes de paquets. Le dépôt Docker ajouté
précédemment est bien détecté ([Link]).

4- Installation de Docker
Installation de Docker Engine (docker-ce) en cours via la commande apt install. Les paquets
nécessaires comme docker-ce-cli et docker-compose-plugin sont bien téléchargés.
5- Vérification de l’état de Docker

Vérification que le service Docker est bien lancé. Le statut affiché est "active (running)", ce
qui confirme le bon fonctionnement de Docker.

6- Utiliser docker sans sudo


L'utilisateur courant est ajouté au groupe docker et les permissions sur le socket sont ajustées.
Cette étape permet d'exécuter les commandes Docker directement, sans privilège
administrateur.
Redémarrage du service Docker avec la commande sudo systemctl restart docker. Cela permet
de prendre en compte les changements de configuration, notamment les droits d’accès pour
l'utilisateur courant.

7- L’aide sous Docker


Affichage de l'aide Docker via la commande docker --help. Cette commande liste les principales
fonctionnalités disponibles, comme run, build, ps, images, utiles pour gérer des conteneurs en
ligne de commande.

Affichage de l'aide pour la commande docker build, utilisée pour construire une image Docker
à partir d’un Dockerfile.
La liste des options montre les paramètres disponibles comme --tag, --file, ou --no-cache pour
personnaliser la construction de l’image.
Tache 2 : Gestion des conteneurs Docker
1- Création d’une image
Création d’un dossier premiere-image contenant un sous-dossier mes-donnees avec 4 fichiers.
Ces fichiers serviront à la construction d'une image Docker personnalisée dans la suite du TP.

Contenu du Dockerfile utilisé pour créer une image personnalisée basée sur Debian. Il installe
hollywood, copie des fichiers locaux, expose les ports 80 et 443, et affiche un message de
bienvenue à l’exécution du conteneur
Construction de l’image Docker premiere-image à partir du Dockerfile. Docker télécharge
l’image de base Debian et commence à transférer le contexte de build pour créer l’image
personnalisée.

Lancement du conteneur mon-conteneur basé sur l’image premiere-image. Le message de


bienvenue s’affiche comme défini dans le Dockerfile, confirmant que le conteneur fonctionne
correctement.

Installation manuelle de paquets utiles dans le conteneur : net-tools, curl et apache2.


Cette étape permet d’équiper le conteneur de services réseau et d’un serveur web pour les tests.

2- Lister les conteneurs actifs


On observe que le conteneur mon-conteneur a bien été lancé puis s’est arrêté (Exited) après
exécution de la commande définie dans le Dockerfile.

3- Démarrer un conteneur
Relancement du conteneur mon-conteneur avec la commande docker start -aI. Le message
personnalisé s’affiche à nouveau, confirmant que le conteneur fonctionne toujours correctement
après redémarrage.

4- Arrêter un conteneur
Arrêt du conteneur mon-conteneur à l’aide de la commande docker stop. Cette commande met
fin proprement à l’exécution du conteneur actif.

5- Supprimer un conteneur
Suppression du conteneur mon-conteneur avec la commande docker rm. Cette action libère de
l’espace disque et nettoie les conteneurs inactifs de la machine.

6- Installation automatique des programmes précédemment installé


Modification du Dockerfile pour installer automatiquement plusieurs programmes
(hollywood, net-tools, curl, apache2) pendant la création de l’image. Ensuite, lancement
d’un nouveau conteneur mon-conteneur-v2 basé sur cette image mise à jour, avec un
message de confirmation indiquant que les programmes ont bien été installés.
Test réussi avec la commande curl [Link] depuis le conteneur : la réponse HTML
d’Apache s’affiche. Cela confirme que le serveur Apache2 est bien installé et fonctionne
correctement dans le conteneur.

Tache 3 : Docker Hub


1- Recherche d’une image
Recherche d’images Docker MySQL avec la commande docker search mysql. La liste affiche
plusieurs versions disponibles, avec l’image officielle mysql en tête, marquée comme « [OK] »
et fortement recommandée.
2- Téléchargement du conteneur

Téléchargement réussi de l’image officielle mysql:8.0 depuis Docker Hub avec la commande
docker pull.
Tous les layers de l’image sont marqués comme "Pull complete", confirmant que l’image est
prête à être utilisée localement.

3- Téléverser une image dans le docker Hube


Connexion à Docker Hub via docker login, puis étiquetage (tag) et envoi (push) de l’image
premiere-image vers le dépôt Docker Hub de l’utilisateur.
La préparation des couches de l’image confirme que l’envoi est en cours.
Tache 4 : Docker Compose
1- Installation de docker compose
Installation de docker-compose avec la commande apt install docker-compose -y.
Les paquets nécessaires à son fonctionnement sont automatiquement installés, permettant la
gestion multi-conteneurs via des fichiers YAML.

Vérification de l'installation de Docker Compose avec docker-compose --version. La version


1.29.2 est correctement installée, confirmant que l’outil est prêt à être utilisé.
2- Création du fichier [Link]
Création du répertoire docker-compose-mysql-web et ouverture du fichier docker-
[Link].

Contenu du fichier [Link] définissant deux services

Contenu du Dockerfile pour le service web : installation d’Apache2, PHP et des extensions
MySQL.
Des fichiers de configuration ([Link], [Link]) sont ajoutés et le conteneur est lancé en
mode serveur Apache.

- [Link] configure Apache pour servir des pages web depuis /var/www/html sur le port
80.
- [Link] affiche la liste des bases de données MySQL en se connectant avec les infos
reçues depuis les variables d’environnement.
3- Lancement du docker compose
Cette commande docker-compose up --build initialise le projet Docker Compose. Elle crée le
réseau et les volumes nécessaires, puis télécharge et construit les images définies dans docker-
[Link], ici notamment l’image mysql:5.7.

Tâche 5 – Docker Swarm


1- Initialiser Docker Swarm (sur le nœud principal : manager)
Cette capture montre l'exécution de docker swarm init, qui configure la machine actuelle
comme nœud manager du cluster Docker Swarm. Elle fournit aussi le token à utiliser pour
ajouter des nœuds workers.

2- Ajouter un nœud worker au Swarm


Cette commande docker node ls permet de lister les nœuds du cluster. On voit que le nœud
actuel est bien configuré comme Leader, Actif et Prêt, ce qui confirme qu’il fonctionne comme
manager du Swarm.

3- Déployer un service NGINX sur le cluster

La commande docker service create permet ici de créer un service nommé mon-nginx, exposé
sur le port 8080 du host vers le port 80 du conteneur. Le service est bien lancé avec succès et
est marqué comme "running" et "converged".

4- Vérifier l’état du service


La commande docker service ls confirme que le service mon-nginx fonctionne correctement
dans le mode répliqué avec 1 réplique active sur 1, utilisant l'image nginx:latest et exposé sur
le port 8080.

Cette capture montre que le service mon-nginx.1 s'exécute correctement sur le nœud mor-
virtual-machine, avec un état souhaité "Running" et un état actuel "Running". Cela confirme
que le service fonctionne comme prévu dans l’environnement Swarm.
5- Mise à l’échelle du service
Ce screen montre l'exécution de la commande docker service scale mon-nginx=3, qui a permis
d’augmenter le nombre de réplicas du service à 3. Les 3 instances sont actives et en cours
d’exécution, confirmant que le scaling fonctionne correctement dans Docker Swarm.

Ce screen confirme que les 3 réplicas du service mon-nginx sont bien en cours d'exécution
(Running) sur la machine mor-virtual-machine, chacun avec un ID distinct. Cela valide que la
montée en charge (scaling) a été correctement appliquée.

6- Teste Final
Ce screen prouve que le service nginx déployé via Docker Swarm fonctionne correctement. En
accédant à localhost:8080, la page d’accueil standard de Nginx s’affiche, confirmant que le
conteneur web est opérationnel et que le port 8080 est bien mappé.
Tache 6 : Portainer
1- Installation de Portainer
Cette capture montre l'exécution de la commande sudo docker volume create portainer_data,
qui crée un volume nommé portainer_data. Ce volume est utilisé pour stocker de façon
persistante les données de configuration de Portainer, même après l’arrêt ou la suppression du
conteneur.

2- Utilisation de Portainer
Ce screen capture la commande sudo docker run -d -p 9000:9000 --name portainer --
restart=always -v /var/run/[Link]:/var/run/[Link] -v portainer_data:/data
portainer/portainer-ce, qui permet de télécharger l’image portainer-ce et de lancer le conteneur.
Le port 9000 est exposé pour accéder à l’interface graphique, et le volume portainer_data est
monté pour conserver les données persistantes.
Ce screen montre l’ouverture de Portainer via localhost:9000, indiquant que l’interface web est
bien lancée et en cours de chargement.

Ce screen montre la page de démarrage de Portainer


Cette capture montre l’interface Container list de Portainer, où l’on visualise tous les
conteneurs existants avec leurs états. On y voit que plusieurs services sont en cours d’exécution,
notamment mon-nginx, portainer et les conteneurs liés à Docker Compose.

La deuxième capture, on prépare le déploiement manuel d’un nouveau conteneur via l’interface
graphique. Le nom demo-nginx est défini, et l’image Nginx est sélectionnée depuis Docker
Hub.

Enfin, la troisième capture détaille la configuration du port d’exposition : le port 8084 de la


machine hôte est mappé vers le port 80 du conteneur. On a active aussi un contrôle d’accès
restreint aux administrateurs. Le bouton de déploiement est enclenché et le conteneur est en
cours de création.
Conclusion

Ce projet nous a permis d’explorer concrètement Docker, Docker Compose, Swarm et Portainer
à travers des cas pratiques. Nous avons réussi à créer, gérer et superviser des conteneurs et
services de manière manuelle et graphique. Ces outils offrent une grande flexibilité pour le
déploiement d’applications en environnement isolé.

Vous aimerez peut-être aussi