前面章节介绍了如何使用 podman volume create 命令创建数据卷,数据卷创建后,我们可以使用podman volume list(简写:podman volume ls)命令查看本地所有的数据卷,用于快速检索已创建的卷、筛选特定卷、查看卷的关键元数据,是数据卷管理的基础操作。
运行 podman volume list --help 命令,查看详细命令手册:
C:\Users\Administrator> podman volume list --help
列出数据卷
说明:
podman volume ls
列出所有可用的数据卷。可对数据卷的输出结果进行筛选,
也可将输出格式改为 JSON 格式或用户指定的 Go 模板格式。
用法:
podman volume ls [选项]
别名:
ls, list
选项:
-f, --filter stringArray 筛选数据卷输出结果
--format string 使用 Go 模板格式化数据卷输出结果
(默认值为 "{{range .}}{{.Driver}}\t{{.Name}}\n{{end -}}")
-n, --noheading 不打印表头
-q, --quiet 以精简模式打印数据卷输出结果后续将逐步介绍该命令的用法。
如果执行无参数的 podman volume ls命令将列出本地所有的数据卷,默认输出两列核心信息,如下:
C:\Users\Administrator> podman volume ls
DRIVER VOLUME NAME
local 55721eeb6f6f208acdea7cd3cd2d464945ad3fd5367263685c158dc61bea7171
local 6233bc6b7031724a212b0ce80956619313c74c2d0ca01474ed349d4b6a5e0465
local 75ea3e45783042a8333d94838ff4bb38001411d065f0cde73ff775465ae67853
local redis-data
local nginx-conf
local nginx-html
local 79c3da55755c8c60fccc9a75c9dc682eabfddaf35df21fda244d46c395f8a270
local mydata
local 324a6d248cda8803d130aa2917bc6fe31c1ba35121420fbfdc523d18c41fbb9b
local my_volume
local 1cbe65f784c4bb2f774e63c612f62e99d1316b27975ebda62f7040d46b964d1a
local nfs_volume
local db_volume
local user_volume列说明:
DRIVER:卷使用的驱动(99% 场景为 local,即本地驱动;也可显示 NFS/CSI 等第三方驱动)
VOLUME NAME:卷的名称(自定义名称或 Podman 自动生成的随机 UUID 名称)
卷筛选时最常用的功能,支持按标签、驱动、名称、状态等维度筛选卷,解决 “卷太多难以定位” 的问题。
基本语法格式:
podman volume ls --filter "键=值" # 单条件筛选
podman volume ls --filter "键1=值1" --filter "键2=值2" # 多条件叠加(且关系)常用筛选条件:
label:按标签筛选(支持 key=value),如 podman volume ls -f label=app=database
driver:按驱动筛选,如 podman volume ls -f driver=local
name:按名称筛选(支持模糊匹配),如 podman volume ls -f name=db_
dangling:筛选未被使用的 “僵尸卷”,如 podman volume ls -f dangling=true
什么是“僵尸卷”?
僵尸卷(也叫“悬空卷 / 未引用卷”) 是指:已创建但未被任何容器(包括已停止的容器)引用的 Podman 数据卷—— 这类卷仅占用主机磁盘空间,无任何运行 / 停止的容器关联,相当于 “无主” 的冗余数据卷,是 Podman 中磁盘空间浪费的常见原因。
示例:
# 筛选标签 version=1.0 且 app=database 的卷
C:\Users\Administrator> podman volume ls -f label=version=1.0 -f label=app=database
DRIVER VOLUME NAME
local db_volume
# 根据数据卷名称进行筛选,筛选所有包含 nginx 字符的数据卷
C:\Users\Administrator> podman volume ls -f name=nginx
DRIVER VOLUME NAME
local nginx-conf
local nginx-html自定义输出内容,支持 Go 模板语法,适合脚本化处理或提取特定字段。
常用格式化模板:
{{.Name}} 仅显示卷名,如 db_volume
{{.Driver}} 仅显示驱动,如 local
{{.Mountpoint}} 显示卷的本地挂载路径,如 /var/lib/containers/storage/volumes/db_volume/_data
{{.Labels}} 显示卷的所有标签,如 map[app:database environment:production]
json 输出 JSON 格式(易解析),如 [{"Name":"db_volume","Driver":"local",...}]
示例:提取卷名和挂载路径(表格格式)
C:\Users\Administrator> podman volume ls --format "table {{.Name}}\t{{.Mountpoint}}"
VOLUME NAME MOUNTPOINT
55721eeb6f6f208acdea7cd3cd2d464945ad3fd5367263685c158dc61bea7171 /home/user/.local/share/containers/storage/volumes/55721eeb6f6f208acdea7cd3cd2d464945ad3fd5367263685c158dc61bea7171/_data
6233bc6b7031724a212b0ce80956619313c74c2d0ca01474ed349d4b6a5e0465 /home/user/.local/share/containers/storage/volumes/6233bc6b7031724a212b0ce80956619313c74c2d0ca01474ed349d4b6a5e0465/_data
75ea3e45783042a8333d94838ff4bb38001411d065f0cde73ff775465ae67853 /home/user/.local/share/containers/storage/volumes/75ea3e45783042a8333d94838ff4bb38001411d065f0cde73ff775465ae67853/_data
redis-data /home/user/.local/share/containers/storage/volumes/redis-data/_data
....示例:JSON 格式输出(脚本解析用)
C:\Users\Administrator> podman volume ls --format json
[
{
"Name": "55721eeb6f6f208acdea7cd3cd2d464945ad3fd5367263685c158dc61bea7171",
"Driver": "local",
"Mountpoint": "/home/user/.local/share/containers/storage/volumes/55721eeb6f6f208acdea7cd3cd2d464945ad3fd5367263685c158dc61bea7171/_data",
"CreatedAt": "2025-11-20T16:56:55.939217946+08:00",
"Labels": {
},
"Scope": "local",
"Options": {
},
"Anonymous": true,
"MountCount": 0,
"NeedsCopyUp": true,
"NeedsChown": true,
"LockNumber": 2
},...
]root/rootless 模式隔离:podman volume ls 仅显示当前模式下的卷(root 模式看不到 rootless 卷,反之亦然)。
切换模式查看:podman --user root volume ls(root 模式)、podman --user $(id -u) volume ls(rootless 模式)。
远程卷显示:若使用 CSI/NFS 等远程驱动,Mountpoint 字段可能显示远程路径或本地挂载点,需结合 podman volume inspect 确认详情。
筛选 “僵尸卷”:dangling=true 仅筛选 “未被任何容器引用” 的卷,若卷被已停止的容器引用,仍会被判定为 “非僵尸卷”,需先删除无用容器再筛选。