Aller au contenu

Observer Docker une première fois

Voir réellement une image, un container et leur cycle de vie.

Dans ce chapitre : 5 étapes et 15 preuves de validation.

Étape 14 — Lancer le container de démonstration

Section intitulée « Étape 14 — Lancer le container de démonstration »

Objectif. Tu observeras tout le trajet Docker avec une image sans rapport avec Inception.

État du projet avant cette étape. Engine, Buildx et Compose fonctionnent. Aucun objet de projet n’existe.

docker run demande une image nommée hello-world. Si elle manque, le daemon la télécharge, crée un container, lance son processus puis garde le container arrêté pour inspection.

Lance ce test unique. L’image hello-world sert seulement à apprendre Docker ; elle ne fera jamais partie des services Inception.

À EXÉCUTER DANSDans la VM · n’importe quel dossier
docker run --name hello-lab hello-world
Ce que fait chaque partie
  1. docker run crée puis démarre un container.
  2. --name hello-lab lui donne un nom facile à retrouver.
  3. hello-world est le nom de l’image de diagnostic.
Résultat attendu

Le terminal affiche Hello from Docker! puis rend la main.

Si cela échoue

Un conflit de nom signifie que le test existe déjà : inspecte-le au lieu de multiplier les containers.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Pourquoi une image reste-t-elle après la suppression d’un container ?

L’image est le modèle ; le container n’est qu’une instance créée depuis ce modèle.

Étape 15 — Voir séparément l’image et le container

Section intitulée « Étape 15 — Voir séparément l’image et le container »

Objectif. Tu rendras la différence image/container visible dans deux commandes.

État du projet avant cette étape. hello-lab a terminé, mais Docker conserve son image et son container arrêté.

docker image ls liste les modèles disponibles. docker container ls -a liste les instances, y compris celles qui sont arrêtées. Un même nom d’image et un nom de container ne désignent pas le même objet.

Affiche les deux listes et retrouve hello-world dans la première, hello-lab dans la seconde.

À EXÉCUTER DANSDans la VM · n’importe quel dossier
docker image ls hello-world
docker container ls -a --filter name=hello-lab
Ce que fait chaque partie
  1. docker image ls filtre les images par nom.
  2. docker container ls -a inclut les containers arrêtés.
  3. --filter limite la sortie au test.
Résultat attendu

Une ligne IMAGE hello-world et une ligne CONTAINER hello-lab avec le statut Exited apparaissent.

Si cela échoue

Sans -a, le container terminé est invisible : ce n’est pas une suppression.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Pourquoi une image reste-t-elle après la suppression d’un container ?

L’image est le modèle ; le container n’est qu’une instance créée depuis ce modèle.

Étape 16 — Créer une deuxième instance de la même image

Section intitulée « Étape 16 — Créer une deuxième instance de la même image »

Objectif. Tu prouveras qu’une image peut produire plusieurs containers.

État du projet avant cette étape. Une image et un container existent.

Relancer la même image ne la reconstruit pas. Docker crée une nouvelle instance indépendante avec un autre identifiant et un autre nom.

Crée hello-lab-2 puis liste les deux containers. Observe qu’une seule image suffit.

À EXÉCUTER DANSDans la VM · n’importe quel dossier
docker run --name hello-lab-2 hello-world
docker container ls -a --filter ancestor=hello-world
docker image ls hello-world
Ce que fait chaque partie
  1. Le deuxième run crée une autre instance.
  2. --filter ancestor sélectionne les containers issus de l’image.
  3. image ls confirme que l’image n’a pas été dupliquée.
Résultat attendu

Deux containers arrêtés sont listés, mais une seule image hello-world.

Si cela échoue

Si hello-lab-2 existe déjà, ne le recrée pas ; passe directement aux listes.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Pourquoi une image reste-t-elle après la suppression d’un container ?

L’image est le modèle ; le container n’est qu’une instance créée depuis ce modèle.

Étape 17 — Supprimer les instances, conserver le modèle

Section intitulée « Étape 17 — Supprimer les instances, conserver le modèle »

Objectif. Tu vérifieras qu’effacer un container n’efface pas automatiquement son image.

État du projet avant cette étape. Deux containers arrêtés utilisent une même image.

docker rm supprime les instances indiquées. L’image reste disponible jusqu’à une suppression explicite avec docker image rm.

Supprime les deux containers puis compare de nouveau les listes.

À EXÉCUTER DANSDans la VM · n’importe quel dossier
docker rm hello-lab hello-lab-2
docker container ls -a --filter ancestor=hello-world
docker image ls hello-world
Ce que fait chaque partie
  1. docker rm supprime uniquement les deux containers arrêtés.
  2. La liste container doit devenir vide pour ce filtre.
  3. La dernière commande prouve que l’image reste.
Résultat attendu

Aucun container hello-world n’est listé, tandis que l’image existe encore.

Si cela échoue

Un container Running doit être arrêté avant rm ; ici les deux diagnostics sont déjà Exited.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Pourquoi une image reste-t-elle après la suppression d’un container ?

L’image est le modèle ; le container n’est qu’une instance créée depuis ce modèle.

Étape 18 — Comprendre ce que le Dockerfile va changer

Section intitulée « Étape 18 — Comprendre ce que le Dockerfile va changer »

Objectif. Tu passeras d’une image téléchargée à une image construite par toi.

État du projet avant cette étape. Tu as utilisé une image existante uniquement pour observer Docker.

Inception interdit les images de service prêtes. Pour MariaDB, WordPress et NGINX, un Dockerfile partira d’une base Debian ou Alpine autorisée puis installera et configurera le service.

Formule la différence : docker pull récupère une image ; docker build exécute une recette locale. La prochaine image sera construite, pas téléchargée prête.

Preuves de validation 0 / 3

Une case correspond à une preuve observée ou expliquée, pas simplement à une commande copiée.

Question de soutenance — Pourquoi une image reste-t-elle après la suppression d’un container ?

L’image est le modèle ; le container n’est qu’une instance créée depuis ce modèle.