docker 服務 ps
說明 | 列出一或多個服務的任務 |
---|---|
用法 | docker service ps [選項] 服務 [服務...] |
Swarm 此命令適用於 Swarm 編排器。
說明
列出作為指定服務一部分執行的任務。
注意事項
這是一個叢集管理命令,必須在 swarm 管理節點上執行。要了解管理節點和工作節點,請參閱文件中Swarm 模式部分。
選項
選項 | 預設值 | 說明 |
---|---|---|
-f, --filter | 根據提供的條件篩選輸出 | |
--format | 使用 Go 範本格式化任務 | |
--no-resolve | 不要將 ID 映射到名稱 | |
--no-trunc | 不截斷輸出 | |
-q, --quiet | 僅顯示任務 ID |
範例
列出屬於服務一部分的任務
以下命令顯示屬於 `redis` 服務的所有任務
$ docker service ps redis
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
0qihejybwf1x redis.1 redis:3.0.5 manager1 Running Running 8 seconds
bk658fpbex0d redis.2 redis:3.0.5 worker2 Running Running 9 seconds
5ls5s5fldaqg redis.3 redis:3.0.5 worker1 Running Running 9 seconds
8ryt076polmc redis.4 redis:3.0.5 worker1 Running Running 9 seconds
1x0v8yomsncd redis.5 redis:3.0.5 manager1 Running Running 8 seconds
71v7je3el7rr redis.6 redis:3.0.5 worker2 Running Running 9 seconds
4l3zm9b7tfr7 redis.7 redis:3.0.5 worker2 Running Running 9 seconds
9tfpyixiy2i7 redis.8 redis:3.0.5 worker1 Running Running 9 seconds
3w1wu13yupln redis.9 redis:3.0.5 manager1 Running Running 8 seconds
8eaxrb2fqpbn redis.10 redis:3.0.5 manager1 Running Running 8 seconds
除了正在執行的任務外,輸出還會顯示任務歷程記錄。例如,在將服務更新為使用 `redis:3.0.6` 映像檔後,輸出可能如下所示
$ docker service ps redis
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
50qe8lfnxaxk redis.1 redis:3.0.6 manager1 Running Running 6 seconds ago
ky2re9oz86r9 \_ redis.1 redis:3.0.5 manager1 Shutdown Shutdown 8 seconds ago
3s46te2nzl4i redis.2 redis:3.0.6 worker2 Running Running less than a second ago
nvjljf7rmor4 \_ redis.2 redis:3.0.6 worker2 Shutdown Rejected 23 seconds ago "No such image: redis@sha256:6…"
vtiuz2fpc0yb \_ redis.2 redis:3.0.5 worker2 Shutdown Shutdown 1 second ago
jnarweeha8x4 redis.3 redis:3.0.6 worker1 Running Running 3 seconds ago
vs448yca2nz4 \_ redis.3 redis:3.0.5 worker1 Shutdown Shutdown 4 seconds ago
jf1i992619ir redis.4 redis:3.0.6 worker1 Running Running 10 seconds ago
blkttv7zs8ee \_ redis.4 redis:3.0.5 worker1 Shutdown Shutdown 11 seconds ago
工作歷程記錄中的項目數量取決於初始化 swarm 時設定的 --task-history-limit
選項。您可以使用 docker swarm update
命令更改工作歷程記錄的保留限制。
部署服務時,Docker 會解析服務映像的摘要,並將服務固定到該摘要。預設情況下不會顯示摘要,但如果使用 --no-trunc
則會顯示。 --no-trunc
選項還會顯示未截斷的工作 ID 和錯誤訊息,如下例所示
$ docker service ps --no-trunc redis
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
50qe8lfnxaxksi9w2a704wkp7 redis.1 redis:3.0.6@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842 manager1 Running Running 5 minutes ago
ky2re9oz86r9556i2szb8a8af \_ redis.1 redis:3.0.5@sha256:f8829e00d95672c48c60f468329d6693c4bdd28d1f057e755f8ba8b40008682e worker2 Shutdown Shutdown 5 minutes ago
bk658fpbex0d57cqcwoe3jthu redis.2 redis:3.0.6@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842 worker2 Running Running 5 seconds
nvjljf7rmor4htv7l8rwcx7i7 \_ redis.2 redis:3.0.6@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842 worker2 Shutdown Rejected 5 minutes ago "No such image: redis@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842"
篩選 (--filter)
篩選旗標 (-f
或 --filter
) 的格式為 key=value
鍵值對。如果有多個篩選器,則傳遞多個旗標(例如 --filter "foo=bar" --filter "bif=baz"
)。多個篩選旗標會組合成一個 OR
篩選器。例如,-f name=redis.1 -f name=redis.7
會返回 redis.1
和 redis.7
工作。
目前支援的篩選器如下
id
id
篩選器會比對工作 ID 的全部或前綴。
$ docker service ps -f "id=8" redis
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
8ryt076polmc redis.4 redis:3.0.6 worker1 Running Running 9 seconds
8eaxrb2fqpbn redis.10 redis:3.0.6 manager1 Running Running 8 seconds
name
name
篩選器會比對工作名稱。
$ docker service ps -f "name=redis.1" redis
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
qihejybwf1x5 redis.1 redis:3.0.6 manager1 Running Running 8 seconds
node
node
篩選器會比對節點名稱或節點 ID。
$ docker service ps -f "node=manager1" redis
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
0qihejybwf1x redis.1 redis:3.0.6 manager1 Running Running 8 seconds
1x0v8yomsncd redis.5 redis:3.0.6 manager1 Running Running 8 seconds
3w1wu13yupln redis.9 redis:3.0.6 manager1 Running Running 8 seconds
8eaxrb2fqpbn redis.10 redis:3.0.6 manager1 Running Running 8 seconds
desired-state
desired-state
篩選器可以接受 running
、shutdown
或 accepted
值。
格式化輸出 (--format)
格式化選項 (--format
) 使用 Go 範本漂亮地印出工作輸出。
Go 範本的有效佔位符如下所示
佔位符 | 說明 |
---|---|
.ID | 工作 ID |
.Name | 工作名稱 |
.Image | 工作映像 |
.Node | 節點 ID |
.DesiredState | 工作的期望狀態 (running 、shutdown 或 accepted ) |
.CurrentState | 工作的目前狀態 |
.Error | 錯誤 |
.Ports | 工作發佈的埠 |
使用 --format
選項時,service ps
命令將會完全按照範本宣告的內容輸出數據,或者在使用 table
指令時,也會包含欄位標題。
以下範例使用不含標題的範本,並以冒號 (:
) 分隔所有工作的 Name
和 Image
項目輸出
$ docker service ps --format "{{.Name}}: {{.Image}}" top
top.1: busybox
top.2: busybox
top.3: busybox