Podman 常用命令与 --format 使用笔记

一、podman ps 与容器删除

1. 只显示容器 ID(第一列)

# 只显示运行中的容器 ID
podman ps --format "{{.ID}}"

# 显示所有容器(包括停止的)ID
podman ps -a --format "{{.ID}}"

2. 删除容器

# 删除所有容器(最简单)
podman rm -a

# 强制删除所有容器(包括运行中)
podman rm -af

# 通过管道配合 xargs 删除
podman ps --format "{{.ID}}" | xargs podman rm
podman ps -a --format "{{.ID}}" | xargs podman rm -f

# 使用命令替换
podman rm $(podman ps --format "{{.ID}}")
podman rm $(podman ps -a --format "{{.ID}}")

# 删除所有停止的容器
podman rm $(podman ps -a -q --filter "status=exited")

二、--format 常用模板字段

通用字段(适用于大多数命令)

字段说明
{{.ID}}容器/镜像/卷的 ID
{{.Name}}名称
{{.Created}}创建时间
{{.Size}}大小
{{.Status}}状态

podman ps 可用字段

podman ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}"
字段说明
{{.ID}}容器 ID
{{.Image}}使用的镜像
{{.Command}}启动命令
{{.CreatedAt}}创建时间(详细)
{{.RunningFor}}已运行时间
{{.Status}}容器状态
{{.Ports}}端口映射
{{.Names}}容器名称
{{.Labels}}标签
{{.Mounts}}挂载卷
{{.Networks}}网络

常用模板示例

# 表格形式输出
podman ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

# 自定义分隔符
podman ps --format "{{.ID}}|{{.Names}}|{{.Status}}"

# 只输出容器名
podman ps --format "{{.Names}}"

三、其他支持 --format 的 Podman 命令

1. podman images(镜像列表)

# 只显示镜像 ID
podman images --format "{{.ID}}"

# 显示仓库、标签、ID
podman images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}"

# 常用字段
# {{.Repository}} - 仓库名
# {{.Tag}} - 标签
# {{.ID}} - 镜像 ID
# {{.Created}} - 创建时间
# {{.Size}} - 大小

2. podman ps(容器列表)

# 自定义输出
podman ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}"

# 只输出容器名
podman ps -a --format "{{.Names}}"

3. podman volume ls(卷列表)

# 只显示卷名
podman volume ls --format "{{.Name}}"

# 显示卷名和驱动
podman volume ls --format "table {{.Name}}\t{{.Driver}}"

# 常用字段
# {{.Name}} - 卷名称
# {{.Driver}} - 驱动类型
# {{.Mountpoint}} - 挂载点
# {{.Labels}} - 标签
# {{.Scope}} - 作用域
# {{.Options}} - 选项

4. podman network ls(网络列表)

# 只显示网络名
podman network ls --format "{{.Name}}"

# 显示网络名和驱动
podman network ls --format "table {{.Name}}\t{{.Driver}}\t{{.Subnet}}"

# 常用字段
# {{.Name}} - 网络名称
# {{.Driver}} - 驱动类型
# {{.Subnet}} - 子网
# {{.Gateway}} - 网关
# {{.Interface}} - 接口
# {{.Labels}} - 标签

5. podman pod ls(Pod 列表)

# 只显示 Pod ID
podman pod ls --format "{{.ID}}"

# 显示 Pod 名称和状态
podman pod ls --format "table {{.Name}}\t{{.Status}}\t{{.ID}}"

# 常用字段
# {{.ID}} - Pod ID
# {{.Name}} - Pod 名称
# {{.Status}} - Pod 状态
# {{.Created}} - 创建时间
# {{.Cgroup}} - Cgroup 路径
# {{.Containers}} - 容器数量
# {{.InfraID}} - 基础设施容器 ID

6. podman container ls(同 podman ps)

# 命令别名,用法相同
podman container ls --format "{{.ID}}"
podman container ls -a --format "{{.Names}}"

7. podman secret ls(密钥列表)

# 只显示密钥名
podman secret ls --format "{{.Name}}"

# 显示密钥 ID 和名称
podman secret ls --format "table {{.ID}}\t{{.Name}}"

8. podman machine ls(虚拟机列表)

# 只显示虚拟机名
podman machine ls --format "{{.Name}}"

# 显示名称和 CPU
podman machine ls --format "table {{.Name}}\t{{.CPUs}}\t{{.Memory}}"

四、常用组合操作示例

批量删除

# 删除所有镜像
podman rmi -a

# 删除所有镜像(强制)
podman rmi -af

# 删除所有停止的容器
podman container prune

# 删除所有未使用的镜像
podman image prune -a

# 删除所有未使用的卷
podman volume prune

# 删除所有未使用的网络
podman network prune

批量操作配合 xargs

# 停止所有容器
podman ps --format "{{.ID}}" | xargs podman stop

# 删除所有停止的容器
podman ps -a --filter "status=exited" --format "{{.ID}}" | xargs podman rm

# 删除所有指定名称的镜像
podman images --format "{{.Repository}}:{{.Tag}}" | grep "none" | xargs podman rmi

统计信息

# 统计容器数量
podman ps -a --format "{{.ID}}" | wc -l

# 统计运行中的容器
podman ps --format "{{.ID}}" | wc -l

# 统计镜像数量
podman images --format "{{.ID}}" | wc -l

五、快速参考

用途命令
查看所有容器 IDpodman ps -a -q
查看所有容器名podman ps -a --format "{{.Names}}"
查看所有镜像 IDpodman images -q
查看所有卷名podman volume ls -q
查看所有网络名podman network ls --format "{{.Name}}"
删除所有容器podman rm -af
删除所有镜像podman rmi -af
删除所有卷podman volume rm -af
清理未使用资源podman system prune -a

六、注意事项

  1. -q--quiet 参数等同于 --format "{{.ID}}",但功能更简单
  2. table 关键字可使输出保持表格对齐
  3. 多个字段可用 \t(制表符)或自定义分隔符连接
  4. 删除运行中的容器需要 -f--force 参数
  5. prune 命令更安全,只会删除未使用的资源

标签: none

添加新评论