docker node ls¶
説明¶
swarm 内のノードを一覧表示します。
【API 1.24+】このコマンドを使うには、クライアントとデーモン API の両方が、少なくとも 1.24 の必要があります。クライアントとデーモン API のバージョンを調べるには、 docker version
コマンドを使います。
【Swarm】このコマンドは Swarm オーケストレータで動作します。
補足説明¶
Docker Swarm マネージャ自身が把握している全ノード一覧を表示します。 -f
か --filter
フラグを使い、フィルタできます。利用可能なフィルタの詳しいオプションについては、 フィルタリング のセクションをご覧ください。
注釈
これはクラスタ管理コマンドであり、 swarm manager ノードで実行する必要があります。manager と worker について学ぶには、ドキュメント内の Swarm モードのセクション を参照ください。
コマンドの使用例は、以下の 使用例のセクション をご覧ください。
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
指定した状況に基づき出力をフィルタ |
|
|
指定した Go テンプレートを使って出力を整形 |
|
|
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"
)。
現時点で次のフィルタをサポートしています:
node.label
name
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 のラベルとは node
のラベルでフィルタをするには、
以下のフィルタは、値にかかわらず 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
表示形式¶
フォーマット・オプション( --format
)は Go テンプレートを使いノードの出力を見やすくします。
Go テンプレートで有効なプレースホルダは以下の通りです。
プレースホルダ |
説明 |
---|---|
|
ノード ID |
|
デーモンのノード( |
|
ノードのホスト名 |
|
ノード状態 |
|
ノードの利用状況( |
|
ノードの manager 状態 |
|
ノードの TLS ステータス( |
|
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