docker volume prune 可安全删除所有无用数据卷,执行前需用 docker volume ls -f dangling=true 查看待删卷,确认无误后操作,并可通过 docker system df -v 验证回收效果。
直接用 docker volume prune 就能安全删除所有无用的数据卷(即“悬挂卷”)。
怎么判断哪些卷会被删
执行前先看一眼,避免误操作:
- 运行
docker volume ls -f dangling=true—— 只列出当前没被任何容器引用的卷 - 如果看到名字像
mysql_data或app-logs这类你认得的,别急着删,先查它是否真没人用:docker volume inspect 卷名 - 检查输出里的
Mountpoint和Labels,再确认docker ps -a --filter volume=卷名是否返回容器
一键清理无用卷
确认列表里都是可删的,就执行:
-
docker volume prune—— 交互式,会问你“Are you sure? [y/N]” -
docker volume prune -f—— 跳过确认,适合脚本或批量运维
删完怎么验证
清理不是黑盒操作,建议快速核对结果:
- 再跑一次
docker volume ls -f dangling=true,应该没输出了 - 用
docker system df -v查 Volume 部分,关注 Reclaimable 值是否明显下降 - 注意:该命令只动
volume,不影响bind mounts(宿主机路径挂载)、tmpfs或正在关联容器的卷
补充:手动删指定卷
如果只想删某一个,而不是全部无用卷:
- 先确保没容器在用:
docker ps -a --filter volume=卷名返回空才安全 - 再执行
docker volume rm 卷名 - 若提示“volume is in use”,说明有容器(哪怕已停止)还声明了它,需先删容器或改配置











