docker service ls

読む時間の目安: 3 分

説明

サービス一覧を表示します。

API 1.24 以上  このコマンドを利用するには、クライアントとデーモンの API はともに、最低でも 1.24 である必要があります。 クライアント上においてdocker versionコマンドを実行して、クライアントとデーモンの API バージョンを確認してください。

Swarm このコマンドは Swarm オーケストレーターにおいて動作します。

利用方法

$ docker service ls [オプション]

追加説明

Swarm 内で稼動しているサービスの一覧を表示します。

メモ

これはクラスター管理コマンドであるため、Swarm のマネージャーノード上で実行する必要があります。 マネージャーノードとワーカーノードについては、本ドキュメントの Swarm モード を参照してください。

本コマンドの利用例については、以下に示す 利用例の節 を参照してください。

オプション

名前/省略形 デフォルト 説明
--filter , -f 指定された条件に基づいてフィルター検索を行います。
--format Go 言語テンプレートを使って出力をフォーマットします。
--quiet , -q ID のみを表示します。

利用例

マネージャーノードで以下を実行します。

$ docker service ls

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

REPLICAS欄には、サービスに対するタスク数に関しての 現実の数期待されている数 が示されています。 そのサービスがreplicated-jobまたはglobal-jobである場合、ジョブ状態に関する追加情報が示されます。 そこではジョブによる実行予定のタスク総数に対しての、実行済タスク数が示されます。

フィルタリング

フィルターフラグ(-fまたは--filter)の指定書式は「キー=値」というものです。 複数のフィルターが必要な場合は、フラグを複数指定します。 (たとえば--filter "foo=bar" --filter "bif=baz"など。)

現在サポートされているフィルターは以下のとおりです。

id フィルター

idフィルターはサービス ID の全部または一部を検索します。

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

label フィルター

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:3.0.6

以下のフィルター指定は、ラベル名が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:3.0.6

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:3.0.6

フォーマット設定

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

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

プレースホルダー 内容説明
.ID サービス ID。
.Name サービス名。
.Mode サービスモード(replicated、global)。
.Replicas サービスレプリカ数。
.Image サービスイメージ名。
.Ports ingress モードにおいて公開されているサービスポート番号。

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

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

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

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

上位コマンド

コマンド 説明
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 サービスを更新します。