docker node ps

描述列出在一个或多个节点上运行的任务,默认为当前节点
用法docker node ps [OPTIONS] [NODE...]

Swarm 此命令适用于 Swarm 编排器。

描述

列出 Docker 已知的所有节点上的任务。您可以使用 -f--filter 标志进行过滤。有关可用过滤选项的更多信息,请参阅过滤部分。

注意

这是一个集群管理命令,必须在 swarm 管理器节点上执行。要了解有关管理器和工作节点的更多信息,请参阅文档中的 Swarm mode 部分。

选项

选项默认值描述
-f, --filter根据提供的条件过滤输出
--format使用 Go 模板美观地打印任务输出
--no-resolve不将 ID 映射到名称
--no-trunc不截断输出
-q, --quiet仅显示任务 ID

示例

$ docker node ps swarm-manager1

NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
redis.1.7q92v0nr1hcgts2amcjyqg3pq   redis:7.4.1  swarm-manager1  Running        Running 5 hours
redis.6.b465edgho06e318egmgjbqo4o   redis:7.4.1  swarm-manager1  Running        Running 29 seconds
redis.7.bg8c07zzg87di2mufeq51a2qp   redis:7.4.1  swarm-manager1  Running        Running 5 seconds
redis.9.dkkual96p4bb3s6b10r7coxxt   redis:7.4.1  swarm-manager1  Running        Running 5 seconds
redis.10.0tgctg8h8cech4w0k0gwrmr23  redis:7.4.1  swarm-manager1  Running        Running 5 seconds

过滤 (--filter)

过滤标志(-f--filter)的格式为 "key=value"。如果存在多个过滤器,则传递多个标志(例如,--filter "foo=bar" --filter "bif=baz")。

当前支持的过滤器有

name

name 过滤器匹配任务名称的全部或部分。

以下过滤器匹配名称包含 redis 字符串的所有任务。

$ docker node ps -f name=redis swarm-manager1

NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
redis.1.7q92v0nr1hcgts2amcjyqg3pq   redis:7.4.1  swarm-manager1  Running        Running 5 hours
redis.6.b465edgho06e318egmgjbqo4o   redis:7.4.1  swarm-manager1  Running        Running 29 seconds
redis.7.bg8c07zzg87di2mufeq51a2qp   redis:7.4.1  swarm-manager1  Running        Running 5 seconds
redis.9.dkkual96p4bb3s6b10r7coxxt   redis:7.4.1  swarm-manager1  Running        Running 5 seconds
redis.10.0tgctg8h8cech4w0k0gwrmr23  redis:7.4.1  swarm-manager1  Running        Running 5 seconds

id

id 过滤器匹配任务的 ID。

$ docker node ps -f id=bg8c07zzg87di2mufeq51a2qp swarm-manager1

NAME                                IMAGE        NODE            DESIRED STATE  CURRENT STATE
redis.7.bg8c07zzg87di2mufeq51a2qp   redis:7.4.1  swarm-manager1  Running        Running 5 seconds

label

label 过滤器根据是否存在 label 本身或 label 及其值来匹配任务。

以下过滤器匹配带有 usage label 的任务,无论其值如何。

$ docker node ps -f "label=usage"

NAME                               IMAGE        NODE            DESIRED STATE  CURRENT STATE
redis.6.b465edgho06e318egmgjbqo4o  redis:7.4.1  swarm-manager1  Running        Running 10 minutes
redis.7.bg8c07zzg87di2mufeq51a2qp  redis:7.4.1  swarm-manager1  Running        Running 9 minutes

desired-state

desired-state 过滤器可以接受 runningshutdownaccepted 等值。

格式化输出 (--format)

格式化选项(--format)使用 Go 模板美观地打印任务输出。

Go 模板的有效占位符如下所示

占位符描述
.ID任务 ID
.Name任务名称
.Image任务镜像
.Node节点 ID
.DesiredState任务的期望状态(runningshutdownaccepted
.CurrentState任务的当前状态
.Error错误
.Ports任务发布的端口

使用 --format 选项时,node ps 命令将按照模板声明的方式精确输出数据,或者在使用 table 指令时,还会包含列标题。

以下示例使用不带标题的模板,并输出所有任务的 NameImage 条目,它们之间用冒号(:)分隔

$ docker node ps --format "{{.Name}}: {{.Image}}"

top.1: busybox
top.2: busybox
top.3: busybox