Docker 清理
docker在使用的过程中会越来越臃肿,可以用下面的命令瘦身
Volume 用于持久化和共享容器数据,清理不再使用的 Volume 可以释放磁盘空间。常用的清理方法有:
- 查看现有 Volume
# 列出所有 Volume
docker volume ls
# 只列出“悬空”(dangling,即未被任何容器使用)的 Volume
docker volume ls -f dangling=true
- 删除单个 Volume
# 删除指定名字的 Volume
docker volume rm VOLUME_NAME
- 一键清理所有“悬空”Volume
# 交互式确认
docker volume prune
# 或者跳过确认
docker volume prune -f
此命令会删除所有未被任何容器使用的 Volume。
- 清理所有未使用的 Docker 资源(网络、镜像、容器、Volume)
如果想一并清理所有未使用的资源,可以用:
docker system prune --volumes
它会:
- 删除所有停止的容器
- 删除所有未用的网络
- 删除所有 dangling 镜像(中间层)
- 删除所有未使用的 Volume
加上 -a
可以连同未被容器直接引用但不是 dangling 的镜像一并清理:
docker system prune -a --volumes
- 谨慎操作:清理 Volume 会永久丢失其中的数据,务必确认不再需要或已做好备份。
- 定期检查:在开发环境中频繁创建/删除容器,很容易积累大量悬空 Volume,可考虑配置 CI/CD 或定时任务自动执行
docker volume prune -f
。 - 脚本化清理:如果想针对名称模式或创建日期做更精细的清理,可以结合
docker volume ls --format '{{.Name}} {{.CreatedAt}}'
输出,再用 shell 脚本过滤并依次docker volume rm
。
这样,你就可以根据需要,按容器级别或全局一次性地清理 Docker Volume,释放磁盘空间。
0