Listar apenas contêineres do Docker interrompidos

191

O Docker oferece uma maneira de listar contêineres em execução ou todos os contêineres, incluindo os interrompidos.

Isso pode ser feito por:

$ docker ps # To list running containers

Ou pela

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

Temos uma maneira de listar apenas os contêineres que foram interrompidos?

Yogesh_D
fonte

Respostas:

310

Somente contêineres parados podem ser listados usando:

docker ps --filter "status=exited"

ou

docker ps -f "status=exited"
Yogesh_D
fonte
4
Além disso, você pode filtrá-los com, greppor exemplo, docker ps -a | grep Exitedou algo assim.
Starikovs
23
Cool, agora eu posso remover recipientes pararam comdocker rm $(docker ps --filter "status=exited" -q)
czerasz
2
melhor ainda criar um alias no seu perfil bash e usar uma palavra-chave / comando mais curto para a limpeza parou de contentores
Yogesh_D
21
"janela de encaixe recipiente ameixa" pode ser utilizado desde 1.25 Acredito para remover recipientes parados
paul
38

O comando típico é:

docker container ls -f 'status=exited'

No entanto, isso listará apenas um dos possíveis status de não execução. Aqui está uma lista de todos os status possíveis:

  • criada
  • reiniciando
  • corrida
  • removendo
  • pausado
  • saiu
  • morto

Você pode filtrar vários status passando vários filtros no status:

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

Se você estiver integrando isso a um script de limpeza automática, poderá encadear um comando para outro com alguma sintaxe bash, gerar apenas os IDs do contêiner -qe também pode limitar apenas os contêineres que saíram com êxito com um filtro de código de saída:

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

Para obter mais detalhes sobre os filtros que você pode usar, consulte a documentação do Docker: https://docs.docker.com/engine/reference/commandline/ps/#filtering

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

ou

docker container ls -f "status=exited"

ou

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