đ BasĂ© sur Debian 11.x, compatible Debian 12.5
Ce TP vise Ă te rendre autonome sur :
Docker nâest pas prĂ©sent par dĂ©faut dans les dĂ©pĂŽts de base de Debian. Voici comment lâajouter proprement :
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
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 âȘ - â«.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl enable docker
docker version
docker run hello-world
đą Si tout se passe bien, Docker affiche un message de bienvenue.
Tu peux maintenant lancer un conteneur Ubuntu pour y exécuter des commandes :
docker run --name serveurUbuntu -it ubuntu
| 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.
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 »
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.
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.
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.
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.
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
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
-d : exĂ©cute le conteneur en mode dĂ©tachĂ© (arriĂšre-plan).-p : rĂ©alise le mappage de ports hĂŽte:conteneur.@IPMachineHĂŽte : adresse IP de lâhĂŽte (Ă remplacer).22222 : port ouvert sur lâhĂŽte.22 : port SSH dans le conteneur./usr/sbin/sshd -D : lance le service SSH en premier plan (Docker arrĂȘte un conteneur si le processus principal se termine).đ Remarque :
- Si tu omets lâadresse IP de lâhĂŽte, Docker nâĂ©coutera que sur
localhost.- Si tu omets le port de lâhĂŽte, Docker choisira un port alĂ©atoire disponible.
docker ps
Regarde la colonne PORTS pour tâassurer que le mappage @IPMachineHĂŽte:22222->22/tcp est bien en place.
Une fois que le conteneur serveurssh tourne, tu peux te connecter depuis nâimporte quelle machine sur le rĂ©seau.
ssh user@@IPMachineHĂŽte -p 22222
đ Remplace
userpar un utilisateur valide dans le conteneur, user a Ă©tĂ© crĂ©er ici. đ Remplace@IPMachineHĂŽtepar lâIP de la machine qui hĂ©berge Docker
exit
Sous Windows, utilise un client SSH comme PuTTY :
@IPMachineHĂŽte22222SSHClique sur âOpenâ pour Ă©tablir la connexion.
Pour consulter les journaux du conteneur serveurssh :
docker logs serveurssh
đ Si tout fonctionne normalement, cette commande ne renverra aucune sortie.