Compartir comentarios
Las respuestas se generan en base a la documentación.

Filtrar comandos

Puedes utilizar la bandera --filter para limitar el alcance de tus comandos. Al filtrar, los comandos solo incluyen entradas que coinciden con el patrón que especifiques.

Uso de filtros

La bandera --filter espera un par clave-valor separado por un operador.

$ docker COMMAND --filter "KEY=VALUE"

La clave representa el campo por el cual quieres filtrar. El valor es el patrón que debe coincidir con el campo especificado. El operador puede ser igual (=) o no igual (!=).

Por ejemplo, el comando docker images --filter reference=alpine filtra la salida del comando docker images para imprimir únicamente imágenes 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

Los campos disponibles (reference en este caso) dependen del comando que ejecutes. Algunos filtros esperan una coincidencia exacta. Otros manejan coincidencias parciales. Algunos filtros te permiten usar expresiones regulares.

Consulta la descripción de la referencia de la CLI para cada comando para conocer las capacidades de filtrado admitidas en cada uno de ellos.

Combinar filtros

Puedes combinar múltiples filtros pasando varias banderas --filter. El siguiente ejemplo muestra cómo imprimir todas las imágenes que coinciden con alpine:latest o busybox (un OR lógico).

$ 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

Múltiples filtros negados

Algunos comandos admiten filtros negados en las etiquetas (labels). Los filtros negados solo consideran los resultados que no coinciden con los patrones especificados. El siguiente comando elimina (prunes) todos los contenedores que no tienen la etiqueta foo.

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

Hay un detalle al combinar múltiples filtros de etiquetas negadas. Múltiples filtros negados crean una única restricción negativa: un AND lógico. El siguiente comando elimina todos los contenedores excepto aquellos que tienen tanto la etiqueta foo como bar. Los contenedores etiquetados con foo o bar, pero no con ambos, serán eliminados.

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

Referencia

Para obtener más información sobre el filtrado de comandos, consulta la descripción de la referencia de la CLI para los comandos que admiten la bandera --filter: