【问题标题】:List only stopped Docker containers仅列出停止的 Docker 容器
【发布时间】:2015-07-25 16:57:42
【问题描述】:

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

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

$ docker ps # To list running containers

或者通过

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

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

【问题讨论】:

    标签: docker containers


    【解决方案1】:

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

    docker ps --filter "status=exited"
    

    docker ps -f "status=exited"
    

    【讨论】:

    • 另外,您可以使用grep 过滤它们,例如docker ps -a | grep Exited 或类似的东西。
    • 酷,现在我可以使用 docker rm $(docker ps --filter "status=exited" -q) 删除停止的容器
    • 最好在你的 bash 配置文件中创建一个别名并使用更短的关键字/命令来清理停止的容器
    • "docker container prune" 可以从 1.25 开始使用,我相信可以删除停止的容器
    【解决方案2】:

    典型的命令是:

    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

    【讨论】:

      【解决方案3】:
      docker container list -f "status=exited"
      

      docker container ls -f "status=exited"
      

       docker ps -f "status=exited"
      

      【讨论】:

        猜你喜欢
        • 2018-07-27
        • 2016-11-22
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        • 2018-11-23
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        相关资源
        最近更新 更多