仅列出停止的Docker容器


190

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

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

$ docker ps # To list running containers

或通过

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

我们是否只能列出已停止的容器?

Answers:


309

只能使用以下命令列出停止的容器:

docker ps --filter "status=exited"

要么

docker ps -f "status=exited"

4
另外,您可以使用grep例如docker ps -a | grep Exited类似的东西过滤它们。
starikovs

23
docker rm $(docker ps --filter "status=exited" -q)
太好了

2
最好在您的bash配置文件中创建一个别名,并使用较短的关键字/命令来清理已停止的容器
Yogesh_D

21
从1.25开始,我可以使用“ docker container prune”,我相信它可以删除停止的容器
paul

38

典型的命令是:

docker container ls -f 'status=exited'

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

  • 被创造
  • 重新开始
  • 跑步
  • 去除
  • 已暂停
  • 退出

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

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

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

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.