docker service ps
読む時間の目安: 4 分
説明
1 つまたは複数サービスのタスクを一覧表示します。
API 1.24 以上
このコマンドを利用するには、クライアントとデーモンの API はともに、最低でも
1.24
である必要があります。
クライアント上においてdocker version
コマンドを実行して、クライアントとデーモンの API バージョンを確認してください。
Swarm このコマンドは Swarm オーケストレーターにおいて動作します。
利用方法
$ docker service ps [オプション] SERVICE [SERVICE...]
追加説明
指定したサービスの一部として稼働しているタスクを一覧表示します。
メモ
これはクラスター管理コマンドです。 したがって Swarm 上のマネージャーノードにおいて実行する必要があります。 マネージャーノードやワーカーノードについては、Swarm モード を参照してください。
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
名前/省略形 | デフォルト | 説明 |
--filter , -f |
指定された条件に基づいてフィルター検索を行います。 | |
--format |
Go 言語テンプレートを使って出力をフォーマットします。 | |
--no-resolve |
ID から名前へのマッピングは行わないようにします。 | |
--no-trunc |
詳細出力を行います。 | |
--quiet , -q |
タスク ID のみを表示します。 |
利用例
1 つのサービスに属するタスクの一覧表示
以下のコマンドは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"
フィルター検索
フィルターフラグ(-f
または--filter
)の指定書式は「キー=値」というものです。
複数のフィルターが必要な場合は、フラグを複数指定します。
(たとえば--filter "foo=bar" --filter "bif=baz"
など。)
複数のフィルターフラグはOR
フィルターとして結合されます。
たとえば-f name=redis.1 -f name=redis.7
はredis.1
とredis.7
の 2 つのタスクを返します。
現在サポートされているフィルターは以下のとおりです。
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
)により Go 言語のテンプレートを利用して、タスクをわかりやすく出力することができます。
Go 言語テンプレートによるプレースホルダー(placeholder)は以下のとおりです。
プレースホルダー | 内容説明 |
---|---|
.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
上位コマンド
コマンド | 説明 |
---|---|
docker service | サービスを管理します。 |
関連コマンド
コマンド | 説明 |
docker service create | 新たなサービスを生成します。 |
docker service inspect | サービスの詳細情報を表示します。 |
docker service logs | サービスまたはタスクのログを取得します。 |
docker service ls | サービス一覧を表示します。 |
docker service ps | 1 つまたは複数サービスのタスクを一覧表示します。 |
docker service rm | 1 つまたは複数のサービスを削除します。 |
docker service rollback | サービス設定に対しての変更を元に戻します。 |
docker service scale | 1 つまたは複数のレプリカサービスをスケール変更します。 |
docker service update | サービスを更新します。 |