Explorer les couches des images Docker
Comprendre la structure des couches
Comme mentionné précédemment, les images Docker sont composées de plusieurs couches, chacune représentant un changement ou une modification spécifique de l'image. Ces couches sont empilées les unes sur les autres pour créer l'image finale.
Afficher les couches d'une image
Vous pouvez utiliser la commande docker image history
pour afficher les couches d'une image Docker. Cette commande fournit des informations sur chaque couche, notamment la taille, la date de création et la commande utilisée pour créer la couche.
$ docker image history nginx:latest
IMAGE CREATED CREATED BY SIZE COMMENT
e1b5bf1aa7e6 3 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon... 0B
<missing> 3 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 3 weeks ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
<missing> 3 weeks ago /bin/sh -c #(nop) VOLUME [/var/cache/nginx] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:0fd5f7c8b2cb9173... 133MB
Cette sortie montre les couches de l'image nginx:latest
, y compris la taille, la date de création et la commande utilisée pour créer chaque couche.
Inspecter les couches d'une image
Vous pouvez également utiliser la commande docker image inspect
pour afficher des informations détaillées sur une image Docker, y compris ses couches. La sortie de cette commande inclut une section RootFS
qui répertorie les couches de l'image.
$ docker image inspect nginx:latest
[
{
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5",
"sha256:e1b5bf1aa7e6a8e1a9e2d9a6d5a7f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5f6d7d5"
]
}
}
]
Cette sortie montre les couches de l'image nginx:latest
, identifiées par leurs identifiants de couche uniques.
Mise en cache des couches
L'un des principaux avantages de l'architecture en couches est la capacité à mettre en cache les couches individuelles. Lorsque vous construisez une image, Docker met en cache les couches qui n'ont pas changé, ce qui peut accélérer considérablement le processus de construction. Cela est particulièrement utile lorsque vous apportez des modifications incrémentielles à votre application et que vous devez reconstruire l'image.
En comprenant la structure des images Docker et le concept des couches, vous pouvez gérer et optimiser efficacement vos environnements conteneurisés.