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:
docker config lsdocker container prunedocker image prunedocker image lsdocker network lsdocker network prunedocker node lsdocker node psdocker plugin lsdocker container lsdocker searchdocker secret lsdocker service lsdocker service psdocker stack psdocker system prunedocker volume lsdocker volume prune