Podman Pod PS 命令详解
简介
podman pod ps
命令用于打印系统上 Pod 的相关信息。默认情况下,它会列出 Pod 的 ID、名称、创建时间、附加到 Pod 的容器数量、Pod 基础架构容器的容器 ID,以及 Pod 的状态。
语法
podman pod ps [选项]
输出信息
默认情况下,podman pod ps
命令会列出以下信息:
- Pod ID:Pod 的唯一标识符。
- Pod Name:Pod 的名称。
- 创建时间:Pod 创建的日期和时间。
- 容器数量:附加到 Pod 的容器数量。
- Pod 基础架构容器 ID:Pod 内部使用的容器 ID,用于管理 Pod 的网络和其他资源。
- Pod 状态:Pod 的当前状态,可以是以下之一:
- Created:没有运行或停止的容器。
- Running:至少有一个容器正在运行。
- Stopped:至少有一个容器已停止,并且没有容器正在运行。
- Exited:Pod 中的所有容器都已停止。
- Dead:获取状态时发生错误。
选项
选项 | 说明 |
---|---|
--help, -h | 打印使用说明 |
--latest, -l | 显示最新创建的 pod(包括所有状态)(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(除 WSL2 外的)机器) |
--namespace, --ns | 显示 pod 的命名空间信息 |
--no-trunc | 不截断输出(默认为 false) |
--noheading | 不打印输出标题 |
--quiet, -q | 仅打印 pod 的数字 ID |
--sort | 根据创建时间、ID、名称、状态或容器数量排序 |
默认:created | 默认按创建时间排序 |
--ctr-ids
使用这个选项,可以在输出中显示每个 Pod 中的容器 ID。
--ctr-names
使用这个选项,可以在输出中显示每个 Pod 中的容器名称。
--ctr-status
使用这个选项,可以在输出中显示每个 Pod 中的容器状态。
示例
示例 1:列出所有 Pod 的基本信息
podman pod ps
示例 2:列出所有 Pod 的基本信息,包括容器 ID
podman pod ps --ctr-ids
示例 3:列出所有 Pod 的基本信息,包括容器名称和状态
podman pod ps --ctr-names --ctr-status
注意事项
- 使用
podman pod ps
命令时,可以组合使用不同的选项来获取所需的详细信息。 - Podman 的输出格式可能会根据版本或配置有所不同,但基本的 Pod 信息和状态应该是一致的。
通过 podman pod ps
命令,你可以方便地查看系统上 Pod 的状态和相关信息,以便进行进一步的管理和调试。
--filter, -f=filter
提供过滤值。
filter 参数的格式为 key=value
。如果需要多个过滤器,则通过传递多个选项来实现:--filter foo=bar --filter bif=baz。
支持的过滤器:
过滤器 | 描述 |
---|---|
ctr-ids | 根据 Pod 内的容器 ID 进行过滤。(默认是前缀匹配;接受正则表达式) |
ctr-names | 根据 Pod 内的容器名称进行过滤。 |
ctr-number | 根据 Pod 中的容器数量进行过滤。 |
ctr-status | 根据 Pod 内的容器状态进行过滤。 |
id | 根据 Pod ID 进行过滤。(默认是前缀匹配;接受正则表达式) |
label | 根据具有(或不具有,如果使用了 label!=[...])指定标签的容器进行过滤。 |
name | 根据 Pod 名称进行过滤。 |
network | 根据网络名称或网络的完整 ID 进行过滤。 |
status | 根据 Pod 状态进行过滤。 |
until | 根据在给定时间戳之前创建的 Pod 进行过滤。这个选项通常用于过滤出在特定时间之前创建的 Pod。 |
使用 --filter
选项时,你可以指定一个或多个过滤器,以缩小 podman pod ps
命令的输出范围,只显示符合特定条件的 Pod。这对于在拥有大量 Pod 的系统中快速查找特定 Pod 非常有用。
确实,这些过滤器具有更具体的格式和接受值。以下是对您提到的过滤器的详细解释:
ctr-ids, ctr-names, id, name 过滤器
这些过滤器接受正则表达式(regex)格式,允许用户根据复杂的模式匹配来过滤 Pod。例如,如果你想找到所有以 "mypod" 开头的 Pod,你可以使用正则表达式 "mypod.*"。
ctr-status 过滤器
过滤器值 | 描述 |
---|---|
created | 容器已创建但尚未启动 |
running | 容器正在运行 |
paused | 容器已暂停 |
stopped | 容器已停止 |
exited | 容器运行完毕并已退出 |
unknown | 容器状态未知 |
label 过滤器
过滤器格式 | 描述 |
---|---|
label=<key> | 过滤出具有指定键的标签的容器所在的 Pod |
label=<key>=<value> | 过滤出具有指定键和值的标签的容器所在的 Pod |
label!=<key> | 过滤出没有指定键的标签的容器所在的 Pod |
label!=<key>=<value> | 过滤出没有指定键和值的标签的容器所在的 Pod |
until 过滤器
时间戳格式 | 描述 |
---|---|
Unix 时间戳 | 自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数 |
日期格式化时间戳 | 符合 RFC 3339 格式的日期字符串,例如 "2023-04-01T12:34:56Z" |
Go 持续时间字符串 | 表示相对于机器当前时间的相对时间的字符串,例如 "10m" 表示 10 分钟前,"1h30m" 表示 1 小时 30 分钟前 |
status 过滤器
过滤器值 | 描述 |
---|---|
stopped | Pod 中的所有容器都已停止 |
running | Pod 中至少有一个容器正在运行 |
paused | Pod 中至少有一个容器已暂停 |
exited | Pod 中的所有容器都已运行完毕并已退出 |
dead | Pod 中的所有容器都已停止,并且可能遇到了错误 |
created | Pod 已创建但尚未启动任何容器 |
degraded | Pod 中的一些容器可能运行不正常或缺失 |
--format
参数允许你定制输出的内容和格式。你可以使用 JSON 格式或 Go 模板来美化输出容器的信息,以满足你的具体需求。通过精心构造查询和选择合适的输出格式,你可以从 podman pod ps
命令中获取清晰、有用的 Pod 和容器信息。
Go 模板中的有效占位符如下:
占位符 | 描述 |
---|---|
.Cgroup | Pod 的 Cgroup 路径 |
.ContainerIds | Pod 中容器的 ID 列表,以逗号分隔 |
.ContainerNames | Pod 中容器的名称列表,以逗号分隔 |
.ContainerStatuses | Pod 中容器的状态列表,以逗号分隔 |
.Created | Pod 的创建时间 |
.ID | Pod 的容器 ID(通常指的是基础设施容器 ID) |
.InfraID | Pod 的基础设施容器的 ID |
.Label *string* | Pod 的指定标签的值 |
.Labels | Pod 的所有标签 |
.Name | Pod 的名称 |
.Networks | 与基础设施容器连接的所有网络的信息 |
.NumberOfContainers | 附加到 Pod 的容器数量 |
.Restarts | Pod 中容器的总重启次数 |
.Status | Pod 的状态 |
使用这些占位符,你可以创建自定义的 Go 模板字符串,以生成满足你需求的输出。例如,如果你只想输出 Pod 的名称和状态,你可以使用如下模板:
podman pod ps --format '{{.Name}}\t{{.Status}}'
这个命令会输出 Pod 的名称和状态,它们之间用制表符(\t
)分隔。你可以根据自己的需要调整模板字符串,以满足特定的输出格式要求。如果你想要更复杂的输出,你可以查阅 Go 模板的文档来了解更多关于模板语法的信息。
此外,如果你选择 JSON 格式输出,你可以直接使用 --format json
选项,这将输出一个结构化的 JSON 对象,其中包含 Pod 和其容器的详细信息。
*示例
列出所有正在运行的 pod。
$ podman pod ps
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
00dfd6fa02c0 jolly_goldstine Running 31 hours ago ba465ab0a3a4 1
f4df8692e116 nifty_torvalds Created 10 minutes ago 331693bff40a 2
列出所有正在运行的 pod 以及每个 pod 中的容器名称。
$ podman pod ps --ctr-names
POD ID NAME STATUS CREATED INFRA ID NAMES
00dfd6fa02c0 jolly_goldstine Running 31 hours ago ba465ab0a3a4 loving_archimedes
f4df8692e116 nifty_torvalds Created 10 minutes ago 331693bff40a thirsty_hawking,wizardly_golick
列出所有正在运行的 pod 以及状态、名称和 ID,包括容器状态和名称。
$ podman pod ps --ctr-status --ctr-names --ctr-ids
POD ID NAME STATUS CREATED INFRA ID IDS NAMES STATUS
00dfd6fa02c0 jolly_goldstine Running 31 hours ago ba465ab0a3a4 ba465ab0a3a4 loving_archimedes running
f4df8692e116 nifty_torvalds Created 10 minutes ago 331693bff40a 331693bff40a,8e428daeb89e thirsty_hawking,wizardly_golick configured,configured
列出所有正在运行的 pod,并以特定格式打印 ID、容器名称和 cgroups。
$ podman pod ps --format "{{.ID}} {{.ContainerNames}} {{.Cgroup}}"
00dfd6fa02c0 loving_archimedes /libpod_parent
f4df8692e116 thirsty_hawking,wizardly_golick /libpod_parent
列出所有正在运行的包含两个容器的 pod,并按 pod ID 排序。
$ podman pod ps --sort id --filter ctr-number=2
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
f4df8692e116 nifty_torvalds Created 10 minutes ago 331693bff40a 2
**示例
列出所有正在运行的 pod 以及它们包含的容器 ID。
$ podman pod ps --ctr-ids
POD ID NAME STATUS CREATED INFRA ID IDS
00dfd6fa02c0 jolly_goldstine Running 31 hours ago ba465ab0a3a4 ba465ab0a3a4
f4df8692e116 nifty_torvalds Created 10 minutes ago 331693bff40a 331693bff40a,8e428daeb89e
列出所有正在运行的 pod 以及容器 ID,且不截断 ID。
$ podman pod ps --no-trunc --ctr-ids
POD ID NAME STATUS CREATED INFRA ID IDS
00dfd6fa02c0a2daaedfdf8fcecd06f22ad114d46d167d71777224735f701866 jolly_goldstine Running 31 hours ago ba465ab0a3a4e15e3539a1e79c32d1213a02b0989371e274f98e0f1ae9de7050 ba465ab0a3a4e15e3539a1e79c32d1213a02b0989371e274f98e0f1ae9de7050
f4df8692e116a3e6d1d62572644ed36ca475d933808cc3c93435c45aa139314b nifty_torvalds Created 10 minutes ago 331693bff40a926b6d52b184e116afd15497610c378d5d4c42945dd6e33b75b0 331693bff40a926b6d52b184e116afd15497610c378d5d4c42945dd6e33b75b0,8e428daeb89e69b71e7916a13accfb87d122889442b5c05c2d99cf94a3230e9d
列出所有正在运行的 pod 以及它们包含的容器名称。
$ podman pod ps --ctr-names
POD ID NAME STATUS CREATED INFRA ID NAMES
00dfd6fa02c0 jolly_goldstine Running 31 hours ago ba465ab0a3a4 loving_archimedes
f4df8692e116 nifty_torvalds Created 10 minutes ago 331693bff40a thirsty_hawking,wizardly_golick
pod ps
打印出 pod 列表。
另请参阅
历史
2018年7月,最初由 Peter Hunt 整理。