docker compose ps

描述列出容器
用法docker compose ps [OPTIONS] [SERVICE...]

描述

列出 Compose 项目的容器,以及当前状态和公开的端口。

$ docker compose ps
NAME            IMAGE     COMMAND           SERVICE    CREATED         STATUS          PORTS
example-foo-1   alpine    "/entrypoint.…"   foo        4 seconds ago   Up 2 seconds    0.0.0.0:8080->80/tcp

默认情况下,仅显示正在运行的容器。 flag 可用于包含已停止的容器。--all

$ docker compose ps --all
NAME            IMAGE     COMMAND           SERVICE    CREATED         STATUS          PORTS
example-foo-1   alpine    "/entrypoint.…"   foo        4 seconds ago   Up 2 seconds    0.0.0.0:8080->80/tcp
example-bar-1   alpine    "/entrypoint.…"   bar        4 seconds ago   exited (0)

选项

选择违约描述
-a, --all显示所有已停止的容器(包括由 run 命令创建的容器)
--filter按属性筛选服务(支持的筛选条件:status)
--formattable使用自定义模板格式化输出:
'table':以带有列标题的表格格式打印输出(默认)
'table TEMPLATE':使用给定的 Go 模板
以表格格式打印输出'json':以 JSON 格式
打印'TEMPLATE':使用给定的 Go 模板打印输出。
有关使用模板设置输出格式的更多信息,请参阅 https://docs.docker.com/go/formatting/
--no-trunc不截断输出
--orphanstrue包含孤立的服务(未由项目声明)
-q, --quiet仅显示 ID
--services展示服务
--status按状态筛选服务。值: [paused | restarting | removing | running | dead | created | exited]

例子

设置输出格式 (--format)

默认情况下,该命令使用表格 (“pretty”) 格式来 显示容器。该标志允许您指定 alternative presentations 的 presentations 进行输出。目前,支持的选项包括 (default)、 和 ,它将有关容器的信息输出为 JSON 数组:docker compose ps--formatprettyjson

$ docker compose ps --format json
[{"ID":"1553b0236cf4d2715845f053a4ee97042c4f9a2ef655731ee34f1f7940eaa41a","Name":"example-bar-1","Command":"/docker-entrypoint.sh nginx -g 'daemon off;'","Project":"example","Service":"bar","State":"exited","Health":"","ExitCode":0,"Publishers":null},{"ID":"f02a4efaabb67416e1ff127d51c4b5578634a0ad5743bd65225ff7d1909a3fa0","Name":"example-foo-1","Command":"/docker-entrypoint.sh nginx -g 'daemon off;'","Project":"example","Service":"foo","State":"running","Health":"","ExitCode":0,"Publishers":[{"URL":"0.0.0.0","TargetPort":80,"PublishedPort":8080,"Protocol":"tcp"}]}]

JSON 输出允许您进一步使用其他工具中的信息 处理,例如,使用 jq 实用程序漂亮地打印 JSON:

$ docker compose ps --format json | jq .
[
  {
    "ID": "1553b0236cf4d2715845f053a4ee97042c4f9a2ef655731ee34f1f7940eaa41a",
    "Name": "example-bar-1",
    "Command": "/docker-entrypoint.sh nginx -g 'daemon off;'",
    "Project": "example",
    "Service": "bar",
    "State": "exited",
    "Health": "",
    "ExitCode": 0,
    "Publishers": null
  },
  {
    "ID": "f02a4efaabb67416e1ff127d51c4b5578634a0ad5743bd65225ff7d1909a3fa0",
    "Name": "example-foo-1",
    "Command": "/docker-entrypoint.sh nginx -g 'daemon off;'",
    "Project": "example",
    "Service": "foo",
    "State": "running",
    "Health": "",
    "ExitCode": 0,
    "Publishers": [
      {
        "URL": "0.0.0.0",
        "TargetPort": 80,
        "PublishedPort": 8080,
        "Protocol": "tcp"
      }
    ]
  }
]

按状态筛选容器 (--status)

使用该标志按状态筛选容器列表。例如 要仅显示正在运行的容器或已退出的容器,请执行以下操作:--status

$ docker compose ps --status=running
NAME            IMAGE     COMMAND           SERVICE    CREATED         STATUS          PORTS
example-foo-1   alpine    "/entrypoint.…"   foo        4 seconds ago   Up 2 seconds    0.0.0.0:8080->80/tcp

$ docker compose ps --status=exited
NAME            IMAGE     COMMAND           SERVICE    CREATED         STATUS          PORTS
example-bar-1   alpine    "/entrypoint.…"   bar        4 seconds ago   exited (0)

按状态筛选容器 (--filter)

--status 标志是该标志的便捷简写。下面的示例等效于上一节中的示例 这次使用标志:--filter status=<status>--filter

$ docker compose ps --filter status=running
NAME            IMAGE     COMMAND           SERVICE    CREATED         STATUS          PORTS
example-foo-1   alpine    "/entrypoint.…"   foo        4 seconds ago   Up 2 seconds    0.0.0.0:8080->80/tcp

该命令目前仅支持该选项,但将来可能会添加其他过滤器选项。docker compose ps--filter status=<status>