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.7redis.1redis.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フィルターにはrunningshutdownacceptedのいずれかを指定します。

フォーマット設定

フォーマット設定オプション(--format)により Go 言語のテンプレートを利用して、タスクをわかりやすく出力することができます。

Go 言語テンプレートによるプレースホルダー(placeholder)は以下のとおりです。

プレースホルダー 内容説明
.ID タスク ID
.Name タスク名
.Image タスクイメージ
.Node ノード ID
.DesiredState 期待されるタスク状態(runningshutdownaccepted
.CurrentState タスクの現在の状態
.Error エラー
.Ports タスクの公開ポート

--formatオプションを利用するとservice psコマンドは、テンプレートが定めるデータを直接出力します。 またtableディレクティブを利用すると、カラムヘッダーも同時に出力されます。

以下は、ヘッダーを含めずにテンプレートを利用する例であり、すべてのタスクにおけるNameImageの各項目がコロン(:)で区切って表示されます。

$ 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 サービスを更新します。