docker compose ps

說明列出容器
用法docker compose ps [選項] [服務...]

說明

列出 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

預設情況下,只會顯示正在執行的容器。可以使用 `--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依屬性篩選服務(支援的篩選器:狀態)
--formattable使用自訂範本格式化輸出
'table':以表格格式列印輸出,包含欄位標題(預設)
'table TEMPLATE':使用指定的 Go 範本以表格格式列印輸出
'json':以 JSON 格式列印
'TEMPLATE':使用指定的 Go 範本列印輸出。
參考 https://docker-docs.dev.org.tw/go/formatting/--no-trunc
不要截斷輸出
--orphanstrue包含孤立的服務(未由專案宣告)
-q, --quiet僅顯示 ID
--services顯示服務
--status依狀態篩選服務。值:[paused | restarting | removing | running | dead | created | exited]

範例

格式化輸出 (--format)

預設情況下,`docker compose ps` 命令使用表格("pretty")格式來顯示容器。`--format` 旗標允許您指定輸出的替代呈現方式。目前支援的選項有 `pretty`(預設)和 `json`,它會將容器的資訊輸出為 JSON 陣列

$ 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` 工具程式

依狀態篩選容器 (--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> 選項,但未來可能會新增其他篩選選項。