Objectifs
- Comprendre les couches immuables d’une image et la couche d’écriture d’un container.
- Récupérer une image et créer un container.
- Arrêter, démarrer et redémarrer un container existant.
- Distinguer la suppression d’un container de celle d’une image.
Manipuler images et containers
Une image est composée de couches en lecture seule. Plusieurs images ou containers peuvent partager ces couches, ce qui évite de dupliquer toutes les données.
Lorsqu’un container démarre, Docker ajoute une couche d’écriture propre à cette instance. Cette couche n’est pas un emplacement adapté aux données qui doivent survivre à la suppression du container.
Récupérer une image et lancer un container
docker pull télécharge l’image sans créer de container. docker run crée un nouveau container depuis l’image puis le démarre. docker images liste les images locales.
docker pull nginx
docker images
docker run -d --name nginx-demo nginx
docker psArrêter, démarrer et redémarrer
stop demande un arrêt propre au processus principal. start redémarre un container arrêté sans en créer un nouveau. restart enchaîne arrêt puis démarrage.
docker stop nginx-demo
docker start nginx-demo
docker restart nginx-demoAprès chaque commande, utilisez docker ps ou docker ps -a pour confirmer l’état observé au lieu de supposer que l’opération a réussi.
Inspecter avant de modifier
docker inspect affiche la configuration détaillée au format JSON. docker logs restitue les sorties standard et d’erreur capturées par Docker lorsque le driver de logs le permet.
docker inspect nginx-demo
docker logs nginx-demodocker rm et docker rmi
docker rm supprime un container, généralement après son arrêt. docker rmi supprime une image locale. Une image encore référencée par un container peut empêcher sa suppression.
docker stop nginx-demo
docker rm nginx-demo
docker rmi nginxdocker rm -f force l’arrêt puis la suppression. Ce n’est pas un premier réflexe : consultez l’état et les logs, puis tentez un arrêt propre.
Bonnes pratiques
Utilisez des noms explicites, conservez les données importantes dans des volumes et diagnostiquez les échecs avant de recréer les containers.
- Vérifier docker ps -a avant une suppression.
- Lire les logs avant de redémarrer un container en échec.
- Supprimer uniquement les objets identifiés comme inutiles.
Erreur fréquente : forcer la suppression d’un container sans diagnostic
Mini résumé
- Une image contient des couches immuables et partageables.
- run crée un container ; start relance une instance existante.
- inspect et logs fournissent les premiers éléments de diagnostic.
- docker rm supprime un container, tandis que docker rmi supprime une image.
Mini quiz
Trois questions pour vérifier les notions essentielles de la leçon.