docker service ls

描述列出服務
用法docker service ls [選項]
別名
docker service list

Swarm 此命令適用於 Swarm 編排器。

描述

此命令列出在 Swarm 中執行的服務。

注意

這是一個叢集管理命令,必須在 Swarm 管理器節點上執行。要了解管理器和工作器,請參閱文件中的Swarm 模式部分

選項

選項預設值描述
-f, --filter根據提供的條件篩選輸出
--format使用自定義模板格式化輸出
'table': 以帶列標題的表格格式列印輸出(預設)
'table TEMPLATE': 使用給定的 Go 模板以表格格式列印輸出
'json': 以 JSON 格式列印
'TEMPLATE': 使用給定的 Go 模板列印輸出。
有關使用模板格式化輸出的更多資訊,請參閱https://docs.docker.net.tw/go/formatting/
-q, --quiet僅顯示 ID

示例

在管理節點上

$ docker service ls

ID            NAME      MODE            REPLICAS             IMAGE
c8wgl7q4ndfd  frontend  replicated      5/5                  nginx:alpine
dmu1ept4cxcf  redis     replicated      3/3                  redis:7.4.1
iwe3278osahj  mongo     global          7/7                  mongo:3.3
hh08h9uu8uwr  job       replicated-job  1/1 (3/5 completed)  nginx:latest

“REPLICAS”列顯示服務的實際任務數和期望任務數。如果服務處於“replicated-job”或“global-job”模式,它還會顯示已完成任務數(與作業將執行的總任務數相比)的作業完成狀態。

過濾 (--filter)

過濾標誌(-f--filter)的格式為“key=value”。如果有多個過濾器,則傳遞多個標誌(例如,--filter "foo=bar" --filter "bif=baz")。

目前支援的過濾器有:

id

“id”過濾器匹配服務 ID 的全部或字首。

以下過濾器匹配 ID 以“0bcjw”開頭的服務

$ docker service ls -f "id=0bcjw"
ID            NAME   MODE        REPLICAS  IMAGE
0bcjwfh8ychr  redis  replicated  1/1       redis:7.4.1

標籤

“label”過濾器根據“label”的存在或“label”和值的存在來匹配服務。

以下過濾器匹配所有帶有“project”標籤的服務,無論其值如何

$ docker service ls --filter label=project
ID            NAME       MODE        REPLICAS  IMAGE
01sl1rp6nj5u  frontend2  replicated  1/1       nginx:alpine
36xvvwwauej0  frontend   replicated  5/5       nginx:alpine
74nzcxxjv6fq  backend    replicated  3/3       redis:7.4.1

以下過濾器僅匹配帶有 project 標籤且值為 project-a 的服務。

$ docker service ls --filter label=project=project-a
ID            NAME      MODE        REPLICAS  IMAGE
36xvvwwauej0  frontend  replicated  5/5       nginx:alpine
74nzcxxjv6fq  backend   replicated  3/3       redis:7.4.1

mode

“mode”過濾器匹配服務的模式(“replicated”或“global”)。

以下過濾器僅匹配“global”服務。

$ docker service ls --filter mode=global
ID                  NAME                MODE                REPLICAS            IMAGE
w7y0v2yrn620        top                 global              1/1                 busybox

name

“name”過濾器匹配服務名稱的全部或字首。

以下過濾器匹配名稱以“redis”開頭的服務。

$ docker service ls --filter name=redis
ID            NAME   MODE        REPLICAS  IMAGE
0bcjwfh8ychr  redis  replicated  1/1       redis:7.4.1

格式化輸出 (--format)

格式化選項(“--format”)使用 Go 模板美觀地列印服務輸出。

Go 模板的有效佔位符如下所示

佔位符描述
.ID服務 ID
.Name服務名稱
.模式服務模式(複製、全域性)
.副本服務副本
.Image服務映象
.Ports在入口模式下發布的服務埠

當使用“--format”選項時,“service ls”命令將按照模板宣告精確輸出資料,或者在使用“table”指令時,還包含列標題。

以下示例使用不帶標題的模板,並輸出所有服務的“ID”、“Mode”和“Replicas”條目,用冒號(“:”)分隔。

$ docker service ls --format "{{.ID}}: {{.Mode}} {{.Replicas}}"

0zmvwuiu3vue: replicated 10/10
fm6uf97exkul: global 5/5

要以 JSON 格式列出所有服務,請使用“json”指令。

$ docker service ls --format json
{"ID":"ssniordqolsi","Image":"hello-world:latest","Mode":"replicated","Name":"hello","Ports":"","Replicas":"0/1"}