e43

🐳 Guide AvancĂ© Docker sous Linux — Partie 1/2

📘 BasĂ© sur Debian 11.x, compatible Debian 12.5


📌 Sommaire

  1. 🎯 Objectifs du TP
  2. 🐋 1. Installation de Docker
  3. 📩 2. Lancer un conteneur Ubuntu interactif
  4. đŸ§± 3Ăšme Partie : CrĂ©ation d’une image personnalisĂ©e)
  5. 🔐 4Ăšme Partie : Rendre un service accessible depuis l’extĂ©rieur

🎯 Objectifs du TP

Ce TP vise Ă  te rendre autonome sur :


🐋 1. Installation de Docker

Docker n’est pas prĂ©sent par dĂ©faut dans les dĂ©pĂŽts de base de Debian. Voici comment l’ajouter proprement :

a) PrĂ©paration de l’environnement

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

b) Ajout de la clé GPG officielle de Docker

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -

La variable â‰Ș $(. /etc/os-release; echo “$ID”) ≫ renvoie la distribution. Attention Ă  l’espace entre â‰Ș / ≫ et le â‰Ș . ≫ et de meme entre â‰Ș add ≫ et â‰Ș - ≫.

c) Ajout du dépÎt Docker

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"

d) Mise à jour des dépÎts et installation

sudo apt update
sudo apt install docker-ce

e) Activer Docker au démarrage

sudo systemctl enable docker

f) VĂ©rifier l’installation

docker version

g) Tester Docker avec le conteneur de test officiel

docker run hello-world

🟱 Si tout se passe bien, Docker affiche un message de bienvenue.


📩 2. Lancer un conteneur Ubuntu interactif

Tu peux maintenant lancer un conteneur Ubuntu pour y exécuter des commandes :

🔄 a) Commande de lancement :

docker run --name serveurUbuntu -it ubuntu

Explication des options :

Option Description
--name Nomme le conteneur pour le retrouver facilement
-i Active l’entrĂ©e standard interactive (stdin)
-t Fournit un pseudo-terminal (tty)

đŸ§‘â€đŸ’» Tu te retrouves dans un shell Ubuntu dans le conteneur.


🔄 b) Mettre à jour le systùme et y installer le service ssh :

apt update
apt install openssh-server

On va créer également un utilisateur pour pouvoir se connecter au service ultérieurement.

  adduser « votre nom de user »

🔄 c) ArrĂȘter un conteneur

Pour arrĂȘter un conteneur en cours d’exĂ©cution de maniĂšre interactive, il suffit de taper :

exit

Cela termine la session interactive et arrĂȘte le conteneur.


🔁 d) Relancer un conteneur existant

Pour redĂ©marrer le conteneur prĂ©cĂ©demment arrĂȘtĂ© et y accĂ©der de nouveau en mode interactif :

docker start serveurUbuntu
docker attach serveurUbuntu

đŸ’» Il faut lancer un PuTTY pour utiliser l’image Docker ET pouvoir faire un commande docker top.


đŸ§Ÿ e) Visualiser les modifications apportĂ©es au conteneur

Pour inspecter les diffĂ©rences entre l’image d’origine et les modifications rĂ©alisĂ©es dans le conteneur :

docker diff serveurUbuntu

Cette commande affiche les fichiers modifiĂ©s, ajoutĂ©s ou supprimĂ©s Ă  l’intĂ©rieur du conteneur.


📊 f) Lister les processus actifs dans le conteneur

Pour voir tous les processus en cours d’exĂ©cution Ă  l’intĂ©rieur du conteneur :

docker top serveurUbuntu

💡 Si le service SSH est activĂ© dans le conteneur, vous le verrez listĂ© dans les processus.


đŸ§± 3Ăšme Partie : CrĂ©ation d’une image personnalisĂ©e

📩 a) CrĂ©er une nouvelle image Ă  partir du conteneur actif

docker commit serveurUbuntu ubuntu:ssh

Cela crĂ©e une nouvelle image basĂ©e sur l’état actuel du conteneur.

Pour vĂ©rifier que l’image a bien Ă©tĂ© créée :

docker images

🔐 4Ăšme Partie : Rendre un service accessible depuis l’extĂ©rieur

🚀 a) Lancer un conteneur SSH en arriùre-plan avec mappage de port

CrĂ©e un nouveau conteneur basĂ© sur l’image personnalisĂ©e ubuntu:ssh avec SSH actif, et mappe le port 22222 de l’hĂŽte vers le port 22 du conteneur :

docker run -d -p @IPMachineHĂŽte:22222:22 --name serveurssh ubuntu:ssh /usr/sbin/sshd -D

đŸ§© Explication des options :

📌 Remarque :

🔍 VĂ©rifier que tout fonctionne :

docker ps

Regarde la colonne PORTS pour t’assurer que le mappage @IPMachineHîte:22222->22/tcp est bien en place.


🔗 b) Se connecter au conteneur en SSH

Une fois que le conteneur serveurssh tourne, tu peux te connecter depuis n’importe quelle machine sur le rĂ©seau.

✅ Exemple sous Linux :

ssh user@@IPMachineHĂŽte -p 22222

🔁 Remplace user par un utilisateur valide dans le conteneur, user a Ă©tĂ© crĂ©er ici. 🔁 Remplace @IPMachineHĂŽte par l’IP de la machine qui hĂ©berge Docker

❌ DĂ©connexion :

exit

đŸȘŸ Exemple sous Windows :

Sous Windows, utilise un client SSH comme PuTTY :

Clique sur “Open” pour Ă©tablir la connexion.


📜 c) Afficher les logs du conteneur

Pour consulter les journaux du conteneur serveurssh :

docker logs serveurssh

📭 Si tout fonctionne normalement, cette commande ne renverra aucune sortie.