Projet · Phase 3.3

Docker (3/9) — Cycle de vie & isolation en pratique

Tu sais ce qu'est un conteneur. Maintenant, on le pilote pour de vrai : le lancer en arrière-plan, entrer dedans pendant qu'il tourne, l'arrêter, le nettoyer.

⏱ ~1 hNiveau débutantPrérequis : Docker (2/9)Pratique · TP
L’idée reçue

« Un conteneur, soit il tourne, soit il n’existe pas. »

En réalité, un conteneur a plusieurs états, et tu peux interagir avec lui pendant qu’il tourne : ouvrir un shell dedans, regarder ses processus, l’arrêter proprement, le relancer. On va apprendre à le piloter — c’est ce que tu feras tous les jours en production.

À la fin de ce module, tu sauras…

  • Lancer un conteneur en arrière-plan (mode détaché)
  • Entrer dans un conteneur qui tourne, sans l’interrompre
  • Lister, arrêter, relancer et supprimer des conteneurs
  • Faire le ménage pour ne pas accumuler de conteneurs morts

01Lancer en arrière-plan

Expérience 1

Le mode détaché

Manipule
docker run -d --name veilleur debian sleep 300
Observe
a1b2c3d4e5f6   # Docker rend la main immédiatement, et affiche un ID
Le terminal est libre : le conteneur tourne en arrière-plan. Vérifie-le : docker ps le montre « Up ».
Comprends -d, c’est quoi ?

-d (detached) lance le conteneur en arrière-plan et te rend la main. C’est ainsi que tournent les services : ils ne monopolisent pas ton terminal. Sans -d, le conteneur occupe le terminal jusqu’à sa fin.

02Entrer dans un conteneur vivant

Expérience 2

exec : ouvrir un shell dans un conteneur qui tourne

Manipule
docker exec -it veilleur bash
Observe
Tu es à l’intérieur du conteneur veilleur, sans l’avoir interrompu. Lance ps aux : tu vois sleep 300 en PID 1, et ton bash à côté. Tape exit pour sortir — le conteneur, lui, continue de tourner.
Comprends run vs exec

docker run crée un nouveau conteneur. docker exec entre dans un conteneur déjà en marche pour y lancer une commande. C’est l’outil de diagnostic n°1 : inspecter un service vivant sans le redémarrer.

03Arrêter, relancer, inspecter

Expérience 3

Le cycle de vie complet

Manipule
docker stop veilleur
docker ps -a
docker start veilleur
docker logs veilleur
Observe
stop l’arrête (statut Exited), start le relance, ps -a montre tous les conteneurs (même arrêtés), logs affiche ce qu’il a écrit. Un conteneur arrêté n’est pas détruit : il reste là, prêt à repartir.
Comprends arrêté ≠ supprimé

Un conteneur arrêté existe toujours (avec son système de fichiers), il est juste en pause définitive. Il faut le supprimer explicitement pour le faire disparaître. D’où l’accumulation de conteneurs morts si on ne fait pas le ménage.

04Faire le ménage

Expérience 4

Supprimer, et nettoyer en masse

Manipule
docker stop veilleur
docker rm veilleur
docker ps -a
Le conteneur a disparu de la liste. Pour un nettoyage global des conteneurs arrêtés :
Manipule
docker container prune
Comprends l’hygiène, dès le début

Sur un serveur réel, les conteneurs de test s’accumulent et gaspillent de l’espace. docker rm en supprime un ; docker container prune supprime tous les conteneurs arrêtés d’un coup. Prends l’habitude tôt : un environnement propre évite bien des confusions.

Ce que tu retiens

Tu pilotes maintenant un conteneur de bout en bout : run -d (arrière-plan), exec (entrer sans interrompre), stop/start (cycle de vie), logs (voir ce qu’il fait), rm / prune (nettoyer). Ce sont les gestes quotidiens de l’exploitation.

Mini-projet

Maîtrise le cycle de vie

À faire

  1. Lance deux conteneurs détachés (web1, web2) avec sleep 600.
  2. Entre dans web1 avec exec, crée un fichier, ressors.
  3. Arrête web2, vérifie qu’il apparaît toujours dans docker ps -a.
  4. Supprime les deux, puis docker container prune, et prouve que la liste est vide.
Fil rouge — Tu as sûrement remarqué : le fichier créé dans web1 disparaît si tu recrées le conteneur. Au module suivant, on attaque ce problème de front — la persistance des données.

?Auto-évaluation

1. Quelle est la différence entre docker run et docker exec ?

run crée un nouveau conteneur ; exec entre dans un conteneur déjà en marche.

2. Un conteneur arrêté est-il supprimé ?

Non. Il existe toujours jusqu’à un docker rm (ou prune).

3. Que fait l’option -d ?

Elle lance le conteneur en arrière-plan (détaché) et rend la main au terminal.

Connecte-toi pour enregistrer ta progression.

Suite → Docker (4/9) — Persistance : volumes & données