Images
Pour créer un conteneur, Docker a besoin d'une image.
Une image est un modèle contenant des instructions pour créer un conteneur Docker.
Récupérer une image
On peut utiliser des images publiées dans un registre ou créer ses propres images. Sans indication précise, les images sont récupérées à partir du registre communautaire Docker hub.
Une image se récupère par la commande :
docker image pull nginx:1.24
docker image pull busybox
Ici, on récupère l'image de Nginx (logiciel de serveur web) avec le tag 1.24
qui correspond à une version spécifique, puis l'image de Busybox (boîte à outil pour la ligne de commande Shell) en version "latest", c'est-à-dire la dernière version stable.
Inspecter une image
On peut inspecter une image avec la commande :
docker image inspect busybox:latest
Le système de couches dans Docker
Chaque image Docker est constituée de plusieurs couches empilées dans une seule entité. Une nouvelle couche est générée à chaque modification de l'image ou lors de l'exécution de commandes comme RUN
ou COPY
. Docker réutilise ensuite ces couches pour créer de nouveaux conteneurs, ce qui accélère le processus de construction. Les couches intermédiaires sont partagées entre les images, optimisant ainsi la vitesse, la taille et l'efficacité.
Dive
Dive est un outil créé par Alex Goodman qui analyse les images Docker pour optimiser leur taille. Il permet de visualiser les couches de l’image, d’identifier les fichiers inutiles et d’améliorer l’efficacité du cache, aidant ainsi les développeurs à réduire la taille et améliorer la performance de leurs images Docker.
Supprimer une image
Pour supprimer une image, on peut utiliser la commande :
docker image rm <image>
Attention
Si l'image est utilisée par un conteneur, il faut d'abord supprimer le conteneur.
Supprimer des images
# Suppression des images anonymes
# non utilisées par au moins un conteneur
docker image prune
# Suppression de toutes les images
# non utilisées par au moins un conteneur
docker image prune -a
Info
Une image anonyme est une image sans tag (un tag est créé par un conteneur avec l'option -t
).