Docker 存储空间回收指南
本文聚焦于 Docker 存储空间回收的常见问题与解决方案,旨在帮助用户有效管理和优化 Docker 存储资源。
存储空间回收的必要性
Docker 存储空间占用过高通常由以下原因引起:
- 未使用的镜像:构建或拉取的镜像未被使用,占用大量存储空间。
- 停止的容器:已停止但未删除的容器仍然占用存储资源。
- 悬空的卷:未挂载到任何容器的数据卷。
- 缓存和临时文件:Docker 在运行过程中生成的缓存和临时文件。
定期回收存储空间对系统性能至关重要,可以有效避免存储资源浪费,提升系统运行效率。
存储空间回收方法
镜像清理
使用 docker image prune 命令删除未使用的镜像:
# 删除所有未使用的镜像
docker image prune -a
# 删除未使用的镜像,但保留最近使用的镜像
docker image prune
容器清理
通过 docker container prune 清理已停止的容器:
# 删除所有已停止的容器
docker container prune
卷清理
使用 docker volume prune 删除未使用的数据卷:
# 删除所有未使用的数据卷
docker volume prune
系统级清理
结合 docker system prune 一键清理镜像、容器、卷和网络:
# 清理所有未使用的资源(镜像、容器、卷、网络)
docker system prune -a
注意事项与最佳实践
避免误删重要数据
- 在执行清理操作前,确认数据已备份。
- 使用
docker ps -a和docker images检查容器和镜像的状态。
自动化清理
- 通过脚本或定时任务定期执行存储空间回收:
# 每天凌晨 2 点执行清理 0 2 * * * docker system prune -f
监控存储使用情况
- 使用
docker system df实时监控存储资源:输出示例:docker system dfTYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 10 5 2.5GB 1.2GB (48%) Containers 8 3 500MB 300MB (60%) Local Volumes 5 2 1GB 700MB (70%) Build Cache 0 0 0B 0B