Retour au cours

Leçon 6 : Comprendre les Images Docker et les Couches

Docker, de zéro à héros : Le cours complet sur la conteneurisation pour débutants

Leçon 6 : Comprendre les Images Docker et les Couches

Les conteneurs sont éphémères, mais les images sont les plans qui les rendent reproductibles. Examinons comment les images sont construites.

Qu'est-ce qu'une Image Docker ?

Une image Docker est un modèle en lecture seule qui contient les dépendances du système d'exploitation, les bibliothèques et le code d'application nécessaires pour exécuter un logiciel. Les images sont construites à partir d'un ensemble d'instructions définies dans un Dockerfile.

Le Système de Fichiers en Couches

Les images Docker sont construites à l'aide d'une pile de couches en lecture seule. Chaque instruction dans un Dockerfile crée une nouvelle couche.

Principes Clés des Couches :

  1. Immuabilité : Une fois qu'une couche est créée, elle ne peut pas être modifiée.
  2. Partage : Si plusieurs images utilisent les mêmes couches de base (par exemple, la même version d'Ubuntu), elles ne stockent cette couche de base qu'une seule fois sur le disque, économisant de l'espace.
  3. Efficacité : Lorsque vous mettez à jour une image, Docker ne transfère que les couches nouvelles ou modifiées, pas l'image entière.

Les Conteneurs comme Couches

Lorsqu'un conteneur est lancé à partir d'une image, Docker ajoute une seule couche mince et inscriptible au-dessus des couches de l'image. C'est ce qu'on appelle la Couche Conteneur.

  • Toutes les modifications apportées à l'intérieur du conteneur en cours d'exécution (écriture de logs, enregistrement de fichiers) se produisent dans cette couche inscriptible.
  • Lorsque le conteneur est supprimé, cette couche inscriptible est détruite, ce qui signifie que toutes les modifications sont perdues (sauf si elles sont explicitement sauvegardées ou stockées dans des volumes, ce que nous aborderons plus tard).

Lister et Inspecter les Images

Pour voir toutes les images stockées localement sur votre machine :

bash docker images

Pour obtenir des informations détaillées sur une image spécifique, y compris son historique et ses couches :

bash docker inspect nginx

Pour voir l'historique détaillé (montrant les commandes qui ont construit les couches) :

bash docker history nginx

Comprendre les couches est la première étape vers l'optimisation de vos images en termes de vitesse et de taille.