docker volume ls 仅列出 Docker 管理的命名卷和匿名卷,不显示绑定挂载或 tmpfs 卷;输出含 NAME 和 DRIVER 两列,支持 -q、--filter 等精简与筛选,并需配合 docker volume inspect 查看真实路径及元数据。

直接运行 docker volume ls 就能快速列出所有已创建的命名卷,这是最基础也最常用的盘点方式。它不显示绑定挂载(bind mount)或临时卷(tmpfs),只聚焦 Docker 自己管理的持久化卷,干净、准确、无干扰。
基础列表:看清有哪些卷
执行命令后,你会看到一个两列表格:
-
NAME:卷的名称,具名卷是自定义名(如
app-data),匿名卷是一串随机字符(如2f8a7b1e5c9d) -
DRIVER:驱动类型,绝大多数是
local,表示数据存放在本机/var/lib/docker/volumes/下
如果列表为空,说明当前没有通过 docker volume create 或容器自动创建的命名卷——注意,这不等于没在用持久化存储,可能你用的是 -v /host/path:/container/path 这类绑定挂载,而它不会出现在这里。
精简输出:只看名字或按需过滤
日常排查或脚本调用时,不需要表头和驱动信息:
- 只显示卷名:用
-q或--quiet,例如docker volume ls -q - 按名称模糊匹配:比如找所有含
db的卷,docker volume ls --filter name=db - 按标签筛选:若创建时加了
--label env=staging,可用docker volume ls --filter label=env=staging - 限定驱动类型:多数情况不用,但多驱动环境可加
--filter driver=local
确认真实路径:下一步该去哪儿查
docker volume ls 只给名字,真正要看数据存在哪、谁在用、有没有标签,得配合 inspect:
- 选中一个卷名,比如
my-app-data,运行docker volume inspect my-app-data - 关键字段是
Mountpoint,值类似/var/lib/docker/volumes/my-app-data/_data,这就是宿主机上实际存放文件的位置 - 同时还能看到创建时间、作用域(
Scope是local还是global)、是否带标签等元数据
区分命名卷和绑定挂载
很多人误以为 docker volume ls 能看到所有挂载,其实它只管“Docker 创建并管理”的卷:
- ✅ 出现在列表里:用
docker volume create创建的,或容器启动时指定-v vol-name:/path自动生成的具名/匿名卷 - ❌ 不会出现:用
-v /home/user/logs:/app/logs这种绝对路径挂载的,属于绑定挂载(bind mount),需用docker inspect 容器ID | jq '.Mounts'查看 - ⚠️ 提示:如果你在
ls结果里找不到某个“应该存在”的卷,先确认它是不是绑定挂载,而不是命令没生效


















