⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Filtrer les commandes

Vous pouvez utiliser le drapeau --filter pour délimiter vos commandes. Lors du filtrage, les commandes n'incluent que les entrées qui correspondent au modèle que vous spécifiez.

Utilisation des filtres

Le drapeau --filter attend une paire clé-valeur séparée par un opérateur.

$ docker COMMANDE --filter "CLÉ=VALEUR"

La clé représente le champ sur lequel vous voulez filtrer. La valeur est le modèle que le champ spécifié doit correspondre. L'opérateur peut être soit égal (=) soit non égal (!=).

Par exemple, la commande docker images --filter reference=alpine filtre la sortie de la commande docker images pour n'afficher que les images alpine.

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
ubuntu       24.04     33a5cc25d22c   36 minutes ago   101MB
ubuntu       22.04     152dc042452c   36 minutes ago   88.1MB
alpine       3.21      a8cbb8c69ee7   40 minutes ago   8.67MB
alpine       latest    7144f7bab3d4   40 minutes ago   11.7MB
busybox      uclibc    3e516f71d880   48 minutes ago   2.4MB
busybox      glibc     7338d0c72c65   48 minutes ago   6.09MB
$ docker images --filter reference=alpine
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
alpine       3.21      a8cbb8c69ee7   40 minutes ago   8.67MB
alpine       latest    7144f7bab3d4   40 minutes ago   11.7MB

Les champs disponibles (reference dans ce cas) dépendent de la commande que vous exécutez. Certains filtres attendent une correspondance exacte. D'autres gèrent les correspondances partielles. Certains filtres vous permettent d'utiliser des expressions régulières.

Référez-vous à la description de référence CLI pour chaque commande pour apprendre les capacités de filtrage supportées pour chaque commande.

Combiner les filtres

Vous pouvez combiner plusieurs filtres en passant plusieurs drapeaux --filter. L' exemple suivant montre comment afficher toutes les images qui correspondent à alpine:latest ou busybox - un OR logique.

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       24.04     33a5cc25d22c   2 hours ago   101MB
ubuntu       22.04     152dc042452c   2 hours ago   88.1MB
alpine       3.21      a8cbb8c69ee7   2 hours ago   8.67MB
alpine       latest    7144f7bab3d4   2 hours ago   11.7MB
busybox      uclibc    3e516f71d880   2 hours ago   2.4MB
busybox      glibc     7338d0c72c65   2 hours ago   6.09MB
$ docker images --filter reference=alpine:latest --filter=reference=busybox
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    7144f7bab3d4   2 hours ago   11.7MB
busybox      uclibc    3e516f71d880   2 hours ago   2.4MB
busybox      glibc     7338d0c72c65   2 hours ago   6.09MB

Filtres négatifs multiples

Certaines commandes supportent les filtres négatifs sur les étiquettes. Les filtres négatifs ne considèrent que les résultats qui ne correspondent pas aux modèles spécifiés. La commande suivante nettoie tous les conteneurs qui ne sont pas étiquetés foo.

$ docker container prune --filter "label!=foo"

Il y a un piège dans la combinaison de multiples filtres d'étiquettes négatifs. Plusieurs filtres négatifs créent une contrainte négative unique - un AND logique. La commande suivante nettoie tous les conteneurs sauf ceux étiquetés à la fois foo et bar. Les conteneurs étiquetés soit foo soit bar, mais pas les deux, seront nettoyés.

$ docker container prune --filter "label!=foo" --filter "label!=bar"

Référence

Pour plus d'informations sur le filtrage des commandes, référez-vous à la description de référence CLI pour les commandes qui supportent le drapeau --filter :