« 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
Le mode détaché
Manipuledocker run -d --name veilleur debian sleep 300Observea1b2c3d4e5f6 # Docker rend la main immédiatement, et affiche un IDdocker 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
exec : ouvrir un shell dans un conteneur qui tourne
Manipuledocker exec -it veilleur bashObserveps 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
Le cycle de vie complet
Manipuledocker stop veilleur
docker ps -a
docker start veilleur
docker logs veilleurObservestop 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
Supprimer, et nettoyer en masse
Manipuledocker stop veilleur
docker rm veilleur
docker ps -adocker container pruneComprends 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.
Maîtrise le cycle de vie
À faire
- Lance deux conteneurs détachés (
web1,web2) avecsleep 600. - Entre dans
web1avecexec, crée un fichier, ressors. - Arrête
web2, vérifie qu’il apparaît toujours dansdocker ps -a. - Supprime les deux, puis
docker container prune, et prouve que la liste est vide.
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.