仅列出停止的 Docker 个容器

List only stopped Docker containers

Docker 为您提供了一种列出 运行 容器或所有容器(包括已停止的容器)的方法。

这可以通过以下方式完成:

$ docker ps # To list running containers

或通过

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

我们有办法只列出已停止的容器吗?

只能使用已停止的容器列出:

docker ps --filter "status=exited"

docker ps -f "status=exited"

典型的命令是:

docker container ls -f 'status=exited'

但是,这只会列出一种可能的非 运行 状态。以下是所有可能状态的列表:

  • 已创建
  • 正在重启
  • 运行
  • 删除
  • 暂停
  • 退出
  • 死了

您可以通过对状态传递多个过滤器来过滤多个状态:

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

如果您将其与自动清理脚本集成,您可以使用一些 bash 语法将一个命令链接到另一个命令,使用 -q 仅输出容器 ID,您还可以限制为仅使用退出代码过滤器成功退出的容器:

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

有关您可以使用的过滤器的更多详细信息,请参阅 Docker 的文档:https://docs.docker.com/engine/reference/commandline/ps/#filtering

docker container list -f "status=exited"

docker container ls -f "status=exited"

 docker ps -f "status=exited"