Programme : Module 2 — Devenir familier avec le CLI
Cours 10/17 ▾
Démystifier les Images vs Conteneurs
$kernellab course demystifier-les-images-vs-conteneurs
Devenir familier avec le CLI

Démystifier les Images vs Conteneurs

Comprendre la différence entre une image et un conteneur Docker

Durée du cours
4 min
Durée Module
55 min
Progression
Cours 10 sur 17
Étapes
— sections

Faisons une pause rapide sur un sujet crucial. Ce point va mettre en lumière la différence — pas toujours très claire au début — entre un conteneur et une image Docker.

Pour faire simple :

  • L'image, c'est la recette (ou le moule). C'est une description inerte de votre application et de ses dépendances.
  • Le conteneur, c'est le gâteau. C'est l'application bien vivante qui s'exécute, créée à partir de la recette.

1. L'Image Docker : le plan de construction

Pour dockeriser une application, il faut écrire un fichier nommé Dockerfile. Ce fichier vient décrire toutes les étapes de packaging de votre application de manière extrêmement factuelle.

En soi, l'image n'est qu'une "facette non vivante" de votre application. C'est un assemblage de fichiers qui va donner à Docker toutes les informations nécessaires pour la faire tourner.

Prenons l'exemple d'un Dockerfile créé spécialement pour une API en Python avec FastAPI :

Dockerfile
1FROM python:3.14
2
3WORKDIR /code
4
5COPY ./requirements.txt /code/requirements.txt
6
7RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
8
9COPY ./app /code/app
10
11CMD ["fastapi", "run", "app/main.py", "--port", "80"]

On voit clairement que chaque ligne donne une instruction précise à Docker pour assembler notre future boîte.

2. De l'Image au Conteneur : la compilation

Une fois notre fichier prêt, nous allons demander à Docker de lire ces instructions et de générer l'image. On utilise pour cela la commande de build :

Terminal
docker build -t myimage .
Note

(Cette commande crée notre image et on lui donne le tag "myimage").

3. Le Conteneur : l'application en vie

Maintenant que notre image est prête, on peut enfin créer notre conteneur. Le conteneur, c'est l'environnement isolé (la "boîte") qui embarque tout ce qui a été demandé dans l'image et qui exécute le code.

On le lance avec les paramètres requis :

Terminal
docker run -d --name mycontainer -p 80:80 myimage
Note

(On reconnaît au passage les flags qu'on a vus précédemment : -d pour lancer en arrière-plan, --name pour nommer le conteneur, et -p pour rediriger les ports).

C'est à ce moment précis que notre application prend vie. On peut d'ailleurs voir notre nouveau conteneur en action grâce à notre fameux docker ps :

Terminal
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                NAMES
c9bbfccc565d   myimage   "fastapi run app/ma…"   10 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp   mycontainer
En résumé

L'image est une suite d'instructions données à Docker pour créer le conteneur. Et le conteneur, c'est votre application enfermée dans sa boîte, prête à servir vos utilisateurs !