docker volume prune 用于删除所有未被容器引用的孤立数据卷;先用 docker volume ls -f dangling=true 查看待删卷,再执行 prune(-f 跳过确认);仅影响 volume,不处理 bind mounts、tmpfs 或已关联容器的卷。

docker volume prune 是 Docker 自带的命令,用于一键删除所有未被任何容器引用的孤立数据卷(dangling volumes),无需额外脚本或工具。
确认哪些数据卷会被清理
执行前建议先查看将被删除的卷,避免误删:
- 运行
docker volume ls -f dangling=true,列出所有“悬挂状态”的数据卷(即没有容器在使用它们) - 注意:正常被容器使用的卷不会出现在该列表中,也不会被后续 prune 删除
- 如果看到重要卷名(如
mysql_data、redis_vol),请先检查是否真无容器在用:docker volume inspect 卷名查看挂载点和关联容器
执行一键清理
确认无误后,直接运行:
-
docker volume prune—— 交互式,会提示确认(输入y继续) -
docker volume prune -f或docker volume prune --force—— 跳过确认,适合脚本或自动化场景
清理后验证效果
清理完成后可快速验证是否生效:
- 再次运行
docker volume ls -f dangling=true,应返回空结果 - 用
docker system df -v查看卷占用空间变化,Volume 部分的 “Reclaimable” 值通常会显著下降
补充说明与注意事项
该命令只影响数据卷(volume),不影响:
- 绑定挂载(bind mounts)—— 它们由宿主机路径管理,Docker 不跟踪其使用状态
- 临时卷(tmpfs)—— 本身不持久化,不在 volume 管理范围内
- 正在运行或已停止但仍关联 volume 的容器 —— 只要容器配置里声明了 volume,该卷就不会被判定为 dangling











