码头节点ls
描述
列出群中的节点
API 1.24+
客户端和守护程序API都必须至少为
1.24,
才能使用此命令。docker version
在客户端上使用命令检查客户端和守护程序API版本。
Swarm此命令与Swarm协调器一起使用。
用法
$ docker node ls [OPTIONS]
扩展说明
列出Docker Swarm管理器知道的所有节点。您可以使用-f
或--filter
标志进行过滤。有关可用过滤器选项的更多信息,请参阅过滤器部分。
笔记
这是集群管理命令,必须在集群管理器节点上执行。要了解管理人员和工作人员,请参阅文档中的“ 群集模式”部分。
有关此命令的示例用法,请参阅下面的示例部分。
选项
名称,简写 | 默认 | 描述 |
--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
笔记
在上面的示例输出中,存在一个隐藏列,
.Self
该隐藏列指示该节点是否与当前docker守护程序相同。甲*
(例如,e216jshn25ckzbvmwlnh5jr3g *
)指该节点是当前搬运工守护程序。
筛选
过滤标志(-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
单独或label
和值。引擎标签在守护程序配置中配置。要过滤Swarmnode
标签,请node.label
改用。
以下过滤器将节点与foo
标签匹配,而不管其值如何。
$ docker node ls -f "label=foo"
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0 swarm-worker2 Ready Active
节点标签
该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
和一个值
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
过滤器在节点主机名的全部或部分上匹配。
以下过滤器匹配名称等于swarm-master
字符串的节点。
$ docker node ls -f name=swarm-manager1
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
e216jshn25ckzbvmwlnh5jr3g * swarm-manager1 Ready Active Leader
角色
该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 |
节点编号 |
.Self |
守护程序的节点(true/false ,true 表示该节点与当前的docker守护程序相同) |
.Hostname |
节点主机名 |
.Status |
节点状态 |
.Availability |
节点可用性(“活动”,“暂停”或“耗尽”) |
.ManagerStatus |
节点的管理者状态 |
.TLSStatus |
节点的TLS状态(“就绪”或“需要轮换”具有由旧CA签名的TLS证书) |
.EngineVersion |
引擎版本 |
当使用该--format
选项时,该node ls
命令将完全按照模板声明的方式输出数据,或者在使用
table
指令时也包括列标题。
下面的示例使用的模板没有报头,并输出
ID
,Hostname
以及TLS Status
由冒号(分隔的条目:
)的所有节点:
$ docker node ls --format "{{.ID}}: {{.Hostname}} {{.TLSStatus}}"
e216jshn25ckzbvmwlnh5jr3g: swarm-manager1 Ready
35o6tiywb700jesrt3dmllaza: swarm-worker1 Needs Rotation
上级命令
命令 | 描述 |
---|---|
码头工人节点 | 管理Swarm节点 |
相关命令
命令 | 描述 |
码头节点降级 | 从群中的管理器降级一个或多个节点 |
码头节点检查 | 在一个或多个节点上显示详细信息 |
码头节点ls | 列出群中的节点 |
docker节点提升 | 将一个或多个节点提升为集群中的管理器 |
码头节点ps | 列出在一个或多个节点上运行的任务,默认为当前节点 |
码头节点rm | 从群中删除一个或多个节点 |
码头节点更新 | 更新节点 |