Lista solo contenedores Docker detenidos

191

Docker le ofrece una forma de enumerar los contenedores en ejecución o todos los contenedores, incluidos los que están detenidos.

Esto puede hacerse por:

$ docker ps # To list running containers

O por

$ docker ps -a # To list running and stopped containers

¿Tenemos una manera de enumerar solo los contenedores que se han detenido?

Yogesh_D
fuente

Respuestas:

310

Solo los contenedores detenidos se pueden enumerar usando:

docker ps --filter "status=exited"

o

docker ps -f "status=exited"
Yogesh_D
fuente
44
Además, puede filtrarlos con, greppor ejemplo, docker ps -a | grep Exitedo algo así.
starikovs
23
Genial, ahora puedo eliminar contenedores detenidos condocker rm $(docker ps --filter "status=exited" -q)
czerasz
2
mejor aún, cree un alias en su perfil de bash y use una palabra clave / comando más corto para limpiar los contenedores detenidos
Yogesh_D
21
"podar contenedor de poda" se puede utilizar desde 1.25 creo que para eliminar los contenedores detenidos
Paul
38

El comando típico es:

docker container ls -f 'status=exited'

Sin embargo, esto solo enumerará uno de los posibles estados no ejecutables. Aquí hay una lista de todos los estados posibles:

  • creado
  • reiniciar
  • corriendo
  • quitando
  • pausado
  • salido
  • muerto

Puede filtrar en múltiples estados pasando múltiples filtros en el estado:

docker container ls -f 'status=exited' -f 'status=dead' -f 'status=created'

Si está integrando esto con un script de limpieza automática, puede encadenar un comando a otro con cierta sintaxis bash, generar solo la identificación del contenedor -qy también puede limitar solo los contenedores que salieron con éxito con un filtro de código de salida:

docker container rm $(docker container ls -q -f 'status=exited' -f 'exited=0')

Para obtener más detalles sobre los filtros que puede usar, consulte la documentación de Docker: https://docs.docker.com/engine/reference/commandline/ps/#filtering

BMitch
fuente
8
docker container list -f "status=exited"

o

docker container ls -f "status=exited"

o

 docker ps -f "status=exited"
Artur Karbone
fuente