docker ps -a --filter es muy útil para filtrar la lista de contenedores de Docker según ciertos criterios. Es una herramienta potente para encontrar rápidamente el contenedor deseado en entornos con muchos contenedores.

A continuación, explicaré las principales opciones de filtro junto con ejemplos prácticos.


Formato básico



docker ps -a --filter <nombre_del_filtro>=<valor_del_filtro>

Se pueden usar múltiples filtros simultáneamente, en cuyo caso se utilizan varias opciones --filter.


🔍 Principales opciones de filtro y ejemplos prácticos

1. Filtrar por estado (status)

Se utiliza para filtrar según el estado del contenedor.

Opción de estado Descripción
created Contenedor creado pero aún no iniciado
restarting Contenedor que se reinicia repetidamente
running Contenedor que está actualmente en ejecución
paused Contenedor en pausa
exited Contenedor cerrado

Ejemplo: Ver solo los contenedores en ejecución

docker ps -a --filter status=running

Ejemplo: Ver solo los contenedores cerrados

docker ps -a --filter status=exited

2. Filtrar por nombre (name)

Se utiliza para encontrar contenedores que contengan un nombre específico.

Ejemplo: Ver solo contenedores cuyo nombre contenga "web"

docker ps -a --filter name=web
  • Ejemplo de resultado:
CONTAINER ID   IMAGE           COMMAND     CREATED         STATUS         NAMES 
f1c2d3e4f5     nginx:latest    "/start"    2 days ago      Up 2 days      my-web-container

3. Filtrar por imagen (image)

Se utiliza para encontrar fácilmente contenedores que utilicen una imagen específica.

Ejemplo: Ver contenedores que utilizan la imagen de nginx

docker ps -a --filter ancestor=nginx
  • Ejemplo de resultado:
CONTAINER ID   IMAGE          COMMAND          STATUS        NAMES
a1b2c3d4e5     nginx:latest   "/start"         Up 3 hours    nginx-server-1
f6g7h8i9j0     nginx:alpine   "/start"         Exited        nginx-temp

4. Filtrar por volumen (volume)

Es útil para encontrar contenedores que hayan montado un volumen específico.

Ejemplo: Ver contenedores que utilizan el volumen my_volume

docker ps -a --filter volume=my_volume
  • Ejemplo de resultado:
CONTAINER ID   IMAGE          COMMAND           STATUS         NAMES
1a2b3c4d5e     postgres       "docker-entry"    Up 2 days      postgres_db

5. Filtrar por etiqueta (label)

Es útil cuando se gestionan contenedores con etiquetas en Docker Compose o Kubernetes.

Ejemplo: Ver contenedores con la etiqueta "env=production"

docker ps -a --filter label=env=production

  • Ejemplo de resultado:
CONTAINER ID   IMAGE           COMMAND         STATUS          NAMES 
abcdef12345    myapp:latest    "/run-app"      Up 3 days       myapp-production

6. Filtrar por red (network)

Es útil para comprobar la lista de contenedores conectados a una red específica.

Ejemplo: Ver contenedores conectados a una red específica

docker ps -a --filter network=my_network

  • Ejemplo de resultado:
CONTAINER ID   IMAGE          COMMAND          STATUS         NAMES 
123abc456de    redis          "/start"         Up 1 day       redis-cache 
456def789gh    postgres       "/start"         Up 1 day       postgres-db

7. Filtrar por ID

Se utiliza para buscar rápidamente un ID de contenedor específico. (Normalmente es suficiente con ingresar solo el comienzo del ID.)

Ejemplo: Ver contenedores cuyo ID comience con 1234

docker ps -a --filter id=1234

💡 Usar combinaciones de múltiples filtros



Se pueden combinar múltiples filtros.

Ejemplo: Encontrar contenedores que contengan "web" en su nombre, que estén en estado "running" y que usen la imagen "nginx"

docker ps -a --filter name=web --filter status=running --filter ancestor=nginx

🛠️ Ejemplos prácticos

  • Para detener todos los contenedores de un proyecto específico:
docker stop $(docker ps -a -q --filter name=my_project)****
  • Eliminar contenedores cerrados antiguos:
docker rm $(docker ps -a -q --filter status=exited)
  • Limpiar contenedores temporales innecesarios:
docker rm $(docker ps -a -q --filter ancestor=temp_image)

De esta manera, el comando docker ps -a --filter es muy práctico y potente para filtrar y gestionar rápidamente según las condiciones deseadas cuando hay muchos contenedores. ¡Aprovéchalo!