删除Docker容器与镜像后如何清理剩余占用的主机磁盘空间?
Docker删除容器/镜像后磁盘仍满的清理方案
查看Docker空间占用详情
先运行docker system df,该命令会列出镜像、容器、卷、构建缓存各自的磁盘占用,帮你定位空间消耗来源。自动清理未使用资源
执行docker system prune -a,该命令会批量删除:- 所有停止运行的容器
- 未被任何容器引用的镜像(含悬空镜像和闲置镜像)
- 未使用的网络
- 全部构建缓存
若需同时清理未被使用的卷,添加--volumes参数(注意:卷可能存储数据库等重要数据,执行前务必确认无保留价值):
docker system prune -a --volumes手动清理无用卷
若不想自动清理所有未使用卷,可单独操作:- 列出所有卷:
docker volume ls - 查看卷的关联信息(确认是否被容器使用):
docker volume inspect <卷名称> - 删除指定无用卷:
docker volume rm <卷名称>
- 列出所有卷:
清理构建缓存
镜像构建产生的缓存可能占用大量空间,可单独清理:docker builder prune -a该命令会删除所有未被镜像引用的构建缓存层。
清理容器日志文件
容器运行时生成的日志文件可能体积巨大,即使容器已删除,日志仍可能残留:- 查看容器日志目录占用:
du -sh /var/lib/docker/containers/* - 删除无用日志文件(替换为实际路径):
rm -f /var/lib/docker/containers/<容器ID>/<容器ID>-json.log - 配置日志限制避免后续问题:编辑
/etc/docker/daemon.json(不存在则创建),添加日志大小限制:
保存后重启Docker服务:{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }systemctl restart docker(Linux系统)
- 查看容器日志目录占用:
检查Docker镜像层目录
若上述操作后仍有空间占用,可查看/var/lib/docker/overlay2目录(镜像层存储目录),确认是否有未清理的残留。请勿手动删除该目录文件,优先重启Docker后再次执行docker system prune -a。排查主机其他磁盘占用
最后确认是否是Docker以外的文件占用磁盘:- 用
df -h查看磁盘整体使用情况 - 用
du -sh /*定位主机大目录,逐一排查清理
- 用
内容的提问来源于stack exchange,提问作者JackFord
相关产品推荐
相关产品推荐

