Filtrer les images par statut "dangling" (orphelines)
Dans cette étape, vous apprendrez à filtrer les images Docker selon leur statut "dangling" (orphelines). Les images orphelines sont des couches qui n'ont aucune relation avec des images taguées. Elles résultent souvent de la construction de nouvelles versions d'une image, laissant les anciennes couches sans tag. Ces images orphelines occupent de l'espace disque et peuvent être nettoyées.
Pour filtrer les images par leur statut "dangling", vous pouvez utiliser le flag --filter
avec la clé dangling
. La valeur peut être true
pour afficher uniquement les images orphelines ou false
pour afficher uniquement les images non orphelines.
Commençons par créer une image orpheline. Nous pouvons le faire en construisant une nouvelle image qui remplace une existante. Nous utiliserons un simple Dockerfile pour cela.
Créez un fichier nommé Dockerfile
dans votre répertoire ~/project
avec le contenu suivant :
FROM alpine
CMD ["echo", "Hello, world!"]
Ce Dockerfile est très simple. Il utilise l'image alpine
comme base et affiche simplement "Hello, world!" lorsqu'un conteneur est exécuté à partir de celle-ci.
Maintenant, construisons une image à partir de ce Dockerfile et taguons-la.
Exécutez la commande suivante pour construire l'image et la taguer comme my-image:latest
:
docker build -t my-image:latest .
Vous devriez voir un résultat indiquant le processus de construction :
[+] Building
...
Successfully built <image_id>
Successfully tagged my-image:latest
Modifions légèrement le Dockerfile et reconstruisons-le avec le même tag. Cela créera une nouvelle image avec le tag my-image:latest
, et l'image précédente qui avait ce tag deviendra orpheline.
Éditez le Dockerfile
dans votre répertoire ~/project
pour changer la commande :
FROM alpine
CMD ["echo", "Hello again!"]
Maintenant, reconstruisez l'image avec le même tag :
docker build -t my-image:latest .
Vous verrez un résultat similaire à la construction précédente, mais un nouvel ID d'image sera généré. L'image précédente avec le tag my-image:latest
est maintenant orpheline.
Listons toutes les images pour voir l'image orpheline.
Exécutez la commande :
docker images
Vous pourriez voir une image avec <none>
dans les colonnes REPOSITORY et TAG. C'est une image orpheline.
REPOSITORY TAG IMAGE ID CREATED SIZE
my-image latest <new_image_id> <created_time> <size>
<none> <none> <old_image_id> <created_time> <size>
hello-world latest <image_id> <created_time> <size>
Maintenant, filtrons pour afficher uniquement les images orphelines en utilisant le flag --filter dangling=true
.
Exécutez la commande :
docker images --filter dangling=true
Vous devriez voir uniquement l'image orpheline :
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> <old_image_id> <created_time> <size>
Pour voir uniquement les images non orphelines, vous pouvez utiliser --filter dangling=false
.
Exécutez la commande :
docker images --filter dangling=false
Cela listera toutes les images qui ne sont pas orphelines :
REPOSITORY TAG IMAGE ID CREATED SIZE
my-image latest <new_image_id> <created_time> <size>
hello-world latest <image_id> <created_time> <size>
Ceci démontre comment filtrer les images selon leur statut "dangling".