1、docker node ps 简介
docker node ps
是是用来列出 Docker Swarm 集群中所有节点上正在运行的服务实例的命令。列出Docker所知道的节点上的所有任务。可以使用-f
或--filter
标记进行过滤。
参考文档:https://docs.docker.com/engine/reference/commandline/node_ps/
注意:这是一个集群管理命令,必须在集群管理器节点上执行。
2、docker node ps 语法
docker node ps [OPTIONS] [NODE...]
3、docker node ps 命令
1)查看其在各个节点上的运行情况
docker node ps swarm-manager1 NAME IMAGE NODE DESIRED STATE CURRENT STATE redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 swarm-manager1 Running Running 5 hours redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 29 seconds redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.9.dkkual96p4bb3s6b10r7coxxt redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.10.0tgctg8h8cech4w0k0gwrmr23 redis:3.0.6 swarm-manager1 Running Running 5 seconds
2)过滤 (--filter)
过滤标志 (-f 或 --filter) 的格式为“key=value”。如果有多个过滤条件,则传递多个标志 (例如,--filter "foo=bar" --filter "bif=baz")。
目前支持的过滤器有:
- name
- id
- label
- desired-state
3)name
过滤器匹配任务名称的全部或部分内容。以下过滤器将匹配所有名称包含 redis 字符串的任务。
docker node ps -f name=redis swarm-manager1 NAME IMAGE NODE DESIRED STATE CURRENT STATE redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 swarm-manager1 Running Running 5 hours redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 29 seconds redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.9.dkkual96p4bb3s6b10r7coxxt redis:3.0.6 swarm-manager1 Running Running 5 seconds redis.10.0tgctg8h8cech4w0k0gwrmr23 redis:3.0.6 swarm-manager1 Running Running 5 seconds
4)id
过滤器匹配任务的 ID。
docker node ps -f id=bg8c07zzg87di2mufeq51a2qp swarm-manager1 NAME IMAGE NODE DESIRED STATE CURRENT STATE redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 5 seconds
5)label
过滤器基于标签的存在或标签和值匹配任务。
以下过滤器将匹配具有 usage 标签的任务,无论其值如何。
docker node ps -f "label=usage" NAME IMAGE NODE DESIRED STATE CURRENT STATE redis.6.b465edgho06e318egmgjbqo4o redis:3.0.6 swarm-manager1 Running Running 10 minutes redis.7.bg8c07zzg87di2mufeq51a2qp redis:3.0.6 swarm-manager1 Running Running 9 minutes
6)desired-state
过滤器可以取 running、shutdown 或 accepted 的值。
格式化输出 (--format)
格式化选项 (--format) 使用 Go 模板对任务进行漂亮打印输出。
下面列出了 Go 模板的有效占位符:
点位符 | 描述 |
.ID | 任务 ID |
.Name | 任务名称 |
.Image | 任务镜像 |
.Node | 节点 ID |
.DesiredState | 任务所期望的状态 (running, shutdown 或 accepted) |
.CurrentState | 任务当前的状态 |
.Error | 错误信息 |
.Ports | 任务发布的端口 |
当使用 --format
选项时,node ps
命令将按照模板声明精确输出数据,或者在使用 table 指令时,还会包含列标题。
以下示例使用没有标题的模板,并为所有任务输出 Name 和 Image 条目,中间用冒号 (:
) 分隔:
docker node ps --format "{{.Name}}: {{.Image}}" top.1: busybox top.2: busybox top.3: busybox
4、命令选项
命令 | 描述 |
--filter,-f | 根据指定条件过滤输出结果 |
--format | 使用 Go 模板格式化输出任务 |
--no-resolve | 不将 ID 映射到名称 |
--no-trunc | 不截断输出结果 |
--quiet , -q | 仅显示任务 ID |
5、子命令
命令 | 描述 |
docker node demote | 将一个或多个节点从 Swarm 中的管理节点降级 |
docker node inspect | 显示一个或多个节点的详细信息 |
docker node ls | 列出Swarm中的节点 |
docker node promote | 将一个或多个节点提升为 Swarm 中的管理节点 |
docker node ps | 列出运行在一个或多个节点上的任务,默认为当前节点 |
docker node rm | 从 Swarm 中移除一个或多个节点 |
docker node update | 更新一个节点 |