Docker · Images et containers

Images et containers

Maîtrisez le cycle de vie des images et containers sans recourir aux suppressions forcées.

Leçon disponible
20 min

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.

Récupérer nginx puis créer une instance
docker pull nginx
docker images
docker run -d --name nginx-demo nginx
docker ps

Arrê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.

Contrôler le même container
docker stop nginx-demo
docker start nginx-demo
docker restart nginx-demo

Aprè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.

Lire configuration et sorties du container
docker inspect nginx-demo
docker logs nginx-demo

docker 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.

Supprimer d’abord le container arrêté, puis l’image si elle n’est plus utile
docker stop nginx-demo
docker rm nginx-demo
docker rmi nginx

docker 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.

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.

1. Pourquoi plusieurs containers peuvent-ils réutiliser efficacement la même image ?
2. Un container nginx-demo est arrêté et doit repartir sans être recréé. Quelle commande choisir ?
3. Quelle commande cible une image locale plutôt qu’un container ?