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 のラベルとは daemon 設定(daemon-configuration-file) で設定します。 Swarm node のラベルでフィルタをするには、 代わりに 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 に対してです。

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

$ 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

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

.Hostname

ノードのホスト名

.Status

ノード状態

.Availability

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

.ManagerStatus

ノードの manager 状態

.TLSStatus

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

.EngineVersion

Engine のバージョン

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

以下の例は IDHostnameTLS 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つまたは複数のノードを 降格(demote)

docker node inspect

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

docker node ls

swarm 内のノードを一覧表示

docker node promote

swarm 内の1つまたは複数のノードを manager に 昇格(promote)

docker node ps

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

docker node rm

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

docker node update

ノードを更新