docker node ls

説明

swarm 内のノードを一覧表示します。

【API 1.24+】このコマンドを使うには、クライアントとデーモン API の両方が、少なくとも 1.24 の必要があります。クライアントとデーモン API のバージョンを調べるには、 docker version コマンドを使います。

【Swarm】このコマンドは Swarm オーケストレータで動作します。

使い方

$ docker node ls [OPTIONS]

補足説明

Docker Swarm マネージャ自身が把握している全ノード一覧を表示します。 -f か --filter フラグを使い、フィルタできます。利用可能なフィルタの詳しいオプションについては、 フィルタリング のセクションをご覧ください。

注釈

これはクラスタ管理コマンドであり、 swarm manager ノードで実行する必要があります。manager と worker について学ぶには、ドキュメント内の Swarm モードのセクション を参照ください。

コマンドの使用例は、以下の 使用例のセクション をご覧ください。

オプション

名前, 省略形

デフォルト

説明

--filter , -f

指定した状況に基づき出力をフィルタ

--format

指定した Go テンプレートを使って出力を整形

--quiet , -q

ID のみ表示

使用例

$ docker node ls

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0    swarm-worker2   Ready   Active
38ciaotwjuritcdtn9npbnkuz    swarm-worker1   Ready   Active
e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader

注釈

上の出力例には、ノードが現在の docker デーモンと同じノードかどうかを示す、表示されていない .Self 列があります。 * (例 e216jshn25ckzbvmwlnh5jr3g * )は、このノードが現在の docker デーモンだと示します。

フィルタリング

フィルタリング・フラグ( -f か --filter )の書式は「キー=値」です。複数のフィルタを指定するには、複数回フラグを指定します(例: --filter "foo=bar" --filter "bif=baz" )。

現時点で次のフィルタをサポートしています:

id

id フィルタは、ノード ID の全てもしくは一部と一致します。

$ docker node ls -f id=1

ID                         HOSTNAME       STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active

label

label フィルタで一致するのは、 engine 上のラベルと、 label 単体か label の値に対してです。 engine のラベルとは :ruby:`daemon 設定 <daemon-configuration-file>` で設定します。 Swarm node のラベルでフィルタをするには、 :ruby:`代わりに node.label <node_ls_nodelabel>` を使います。

以下のフィルタは、値にかかわらず foo のラベルを持つノードに一致します。

$ docker node ls -f "label=foo"

ID                         HOSTNAME       STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active

node.label

node.label フィルタで一致するのは、ノード上のラベルと、 node.label 単体か node.label の値に対してです。

以下のフィルタは、 region ノード・ラベルを持つノードを更新します。

$ docker node update --label-add region=region-a swarm-test-01
$ docker node update --label-add region=region-a swarm-test-02
$ docker node update --label-add region=region-b swarm-test-03
$ docker node update --label-add region=region-b swarm-test-04

region ノード・ラベルが設定されている全てのノードを表示します。

$ docker node ls --filter node.label=region

ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
yg550ettvsjn6g6t840iaiwgb *   swarm-test-01   Ready     Active         Leader           20.10.2
2lm9w9kbepgvkzkkeyku40e65     swarm-test-02   Ready     Active         Reachable        20.10.2
hc0pu7ntc7s4uvj4pv7z7pz15     swarm-test-03   Ready     Active         Reachable        20.10.2
n41b2cijmhifxxvz56vwrs12q     swarm-test-04   Ready     Active                          20.10.2

region ノード・ラベルの値が region-a に設定されている全てのノードを表示します。

$ docker node ls --filter node.label=region=region-a

ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
yg550ettvsjn6g6t840iaiwgb *   swarm-test-01   Ready     Active         Leader           20.10.2
2lm9w9kbepgvkzkkeyku40e65     swarm-test-02   Ready     Active         Reachable        20.10.2

membership

membership フィルタで一致するのは、ノード上のラベルに membership があり、値が accepted もしくは pending に対してです。

以下のフィルタは、 membership が accepted に一致するノードです。

$ docker node ls -f "membership=accepted"

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0    swarm-worker2   Ready   Active
38ciaotwjuritcdtn9npbnkuz    swarm-worker1   Ready   Active

name

name フィルタは、タスク名の全てもしくは一部に一致します。

以下は swarm-master 文字列に一致するノードでフィルタします。

$ docker node ls -f name=swarm-manager1

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader

role

role フィルタで一致するのは、ノード上のラベルに role があり、値が worker もしくは manager に対してです。

以下のフィルタは、 manager ロールに一致するノードです。

$ docker node ls -f "role=manager"

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader

表示形式

フォーマット・オプション( --format )は Go テンプレートを使いノードの出力を見やすくします。

Go テンプレートで有効なプレースホルダは以下の通りです。

プレースホルダ

説明

.ID

ノード ID

.Self

デーモンのノード( true か false 、 true は現在の docker デーモンと対象ノードが位置しているのを示す)

.Hostname

ノードのホスト名

.Status

ノード状態

.Availability

ノードの利用状況( active , pause , drain )

.ManagerStatus

ノードの manager 状態

.TLSStatus

ノードの TLS ステータス( Ready か、古い CA で TLS 証明書に署名している場合は Needs Rotation )

.EngineVersion

Engine のバージョン

--format オプションの使用時、 node ls コマンドはテンプレートで宣言した通りにデータを出力します。あるいは、 table ディレクティブがあれば列のヘッダも表示するかのどちらかです。

以下の例は ID と Hostname と TLS Status のエントリをテンプレートで指定します。そして、コロン( : )区切りで全てのイメージを表示します。

$ docker node ls --format "{{.ID}}: {{.Hostname}} {{.TLSStatus}}"

e216jshn25ckzbvmwlnh5jr3g: swarm-manager1 Ready
35o6tiywb700jesrt3dmllaza: swarm-worker1 Needs Rotation

親コマンド

コマンド

説明

docker node

Swarm ノードを管理

関連コマンド

コマンド

説明

docker node demote

swarm 内の manager から1つまたは複数のノードを :ruby:`降格 <demote>`

docker node inspect

1つまたは複数ノードの詳細情報を表示

docker node ls

swarm 内のノードを一覧表示

docker node promote

swarm 内の1つまたは複数のノードを manager に :ruby:`昇格 <promote>`

docker node ps

1つまたは複数のノード上で実行しているタスク一覧を表示。デフォルトは現在のノード上

docker node rm

swarm 内の1つまたは複数のノードを削除

docker node update

ノードを更新