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!
No hay comentarios.