docker volume ls 是什么
volume ls 列出本机上的数据卷及其驱动,是巡检容器数据的起点。输出里既有你显式创建的具名卷,也有容器自动生成的匿名卷;两者混在一起,仅靠名字不容易分辨来源。配合过滤条件与格式化输出,可以快速定位遗忘的卷、统计占用,并把清理动作限定在确定范围内。
基本信息
| 语法 | docker volume ls [--filter 条件] [--format 模板] [-q] |
|---|---|
| 常用过滤 | dangling=true 未被使用的卷、label=键=值、driver=local |
| 格式字段 | Name、Driver、Scope、Label、Mountpoint(部分字段需在 inspect 中查看) |
| 相关命令 | docker volume inspect 卷名、docker volume prune 清理未使用卷 |
| 区分方式 | 具名卷由人命名;匿名卷是长串随机哈希 |
| 作用范围 | 仅当前 Docker 守护进程管理的卷 |
典型使用场景
- 巡检遗留卷:找出没有容器再使用的卷,评估是否清理
- 按标签筛选:批量定位某个项目或环境的数据卷
- 反查使用方:从卷名找到正在使用它的容器
- 清理前确认范围:先用列命令核对,再执行删除
- 迁移前盘点:确认需要一并带走的数据卷清单
列出与筛选
列出与筛选
# 基本列出
docker volume ls
# 只要名字,便于脚本处理
docker volume ls -q
# 只看未被任何容器使用的卷(dangling 卷)
docker volume ls --filter dangling=true
# 按标签筛选(配合编排文件里声明的 labels)
docker volume ls --filter label=env=prod --format 'table {{.Name}}\t{{.Driver}}'
# 反查某个卷的使用方:列出挂载了该卷的所有容器
docker ps -a --filter volume=myproj_dbdata
# 查看卷的宿主实际路径与创建时间
docker volume inspect myproj_dbdata输出逐列读法
| 列/字段 | 含义 | 异常信号 |
|---|---|---|
| DRIVER | 卷驱动,通常为 local | 出现非预期驱动说明环境有共享存储插件 |
| VOLUME NAME | 卷名 | 随机哈希多为匿名卷,来源难追溯 |
| SCOPE | 作用范围 | local 表示仅本机可用 |
| Mountpoint | 宿主上的实际目录(inspect 查看) | 路径异常说明卷被手工改动过 |
| Labels | 附加标签 | 缺失标签会让批量筛选失效 |
匿名卷由容器创建时自动生成,容器删除后通常残留,是磁盘被悄悄占满的常见原因;删除容器时加 -v 可一并删除其匿名卷。
清理卷属于破坏性操作:prune 会删除所有未被容器使用的卷,其中可能包含暂时停用的服务数据。执行前先用 -q 列出将被命中的卷并留备份。