docker stack services

読む時間の目安: 3 分

説明

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

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

利用方法

$ docker stack services [OPTIONS] STACK

追加説明

指定された Stack の一部として起動しているサービスを一覧表示します。

メモ

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

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

オプション

名前/省略形 デフォルト 説明
--filter , -f 指定された条件に基づいてフィルター検索を行います。
--format Go 言語テンプレートを使って出力をフォーマットします。
--namespace deprecatedKubernetes
Kubernetes 名前空間を指定します。
--quiet , -q ID のみを表示します。
--kubeconfig deprecatedKubernetes
Kubernetes 設定ファイルを指定します。
--orchestrator deprecated
オーケストレーターを指定します。(swarm|kubernetes|all)

利用例

以下のコマンドはmyappStack におけるサービスを一覧表示します。

$ docker stack services myapp

ID            NAME            REPLICAS  IMAGE                                                                          COMMAND
7be5ei6sqeye  myapp_web       1/1       nginx@sha256:23f809e7fd5952e7d5be065b4d3643fbbceccd349d537b62a123ef2201bc886f
dn7m7nhhfb9y  myapp_db        1/1       mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539

フィルター検索

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

以下のコマンドはwebdbという 2 つのサービスを表示します。

$ docker stack services --filter name=myapp_web --filter name=myapp_db myapp

ID            NAME            REPLICAS  IMAGE                                                                          COMMAND
7be5ei6sqeye  myapp_web       1/1       nginx@sha256:23f809e7fd5952e7d5be065b4d3643fbbceccd349d537b62a123ef2201bc886f
dn7m7nhhfb9y  myapp_db        1/1       mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539

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

  • id / ID (--filter id=7be5ei6sqeyeまたは--filter ID=7be5ei6sqeye)
    • Swarm: 対応済み。
    • Kubernetes: 未対応。
  • label (--filter label=key=value)
    • Swarm: 対応済み。
    • Kubernetes: 対応済み。
  • mode (--filter mode=replicatedまたは--filter mode=global)
    • Swarm: 未対応。
    • Kubernetes: 対応済み。
  • name (--filter name=myapp_web)
    • Swarm: 対応済み。
    • Kubernetes: 対応済み。
  • node (--filter node=mynode)
    • Swarm: 未対応。
    • Kubernetes: 対応済み。
  • service (--filter service=web)
    • Swarm: 未対応。
    • Kubernetes: 対応済み。

フォーマット設定

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

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

プレースホルダー 内容説明
.ID サービス ID
.Name サービス名
.Mode サービスモード(replicated、global)
.Replicas サービスレプリカ
.Image サービスイメージ

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

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

$ docker stack services --format "{{.ID}}: {{.Mode}} {{.Replicas}}"

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

上位コマンド

コマンド 説明
docker stack Docker Stack を管理します。
コマンド 説明
docker stack deploy 新規 Stack のデプロイ、または既存 Stack の更新を行います。
docker stack ls Stack の一覧を表示します。
docker stack ps Stack 内のタスク一覧を表示します。
docker stack rm Stack を削除します。
docker stack services Stack 内のサービスを一覧表示します。