docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker空间占用过大清理

Docker系统空间占用过大的清理方法详解

作者:gs80140

在日常使用 Docker 的过程中,我们经常会发现服务器磁盘空间莫名其妙地被占满,特别是 /var/lib/docker/overlay2 目录动辄几十个 G,下面我们就来看看如何清理吧

在日常使用 Docker 的过程中,我们经常会发现服务器磁盘空间莫名其妙地被占满。特别是 /var/lib/docker/overlay2 目录动辄几十个 G,让人怀疑是不是有人用 Docker 挖矿了……

其实,大部分情况下问题并不复杂:很多 Docker 镜像层、构建缓存、停止的容器,仍然占用大量空间却没有被清理。解决方案也非常简单,一条命令就能完成清理!

问题现象

使用 df -h 查看磁盘使用情况:

df -h

发现根目录 / 使用率接近 100%:

/dev/vda1   99%  /var/lib/docker/overlay2  占用非常大

进一步查看是 Docker 的 overlay2 目录占用了大量空间:

du -h --max-depth=1 /var/lib/docker/overlay2 | sort -hr | head

结果显示几十 GB 的无效目录,甚至根本不是正在使用容器的层:

20G  /var/lib/docker/overlay2/abc123...
18G  /var/lib/docker/overlay2/9dd...
...

但是这些目录又不敢直接 rm -rf 删除,担心删错了导致容器启动失败。

判断哪些目录不能删

我们可以用 docker inspect 判断某个 overlay2 层是否属于正在运行的容器:

docker inspect <CONTAINER_ID> --format '{{.GraphDriver.Data.UpperDir}}'

如果匹配到 /var/lib/docker/overlay2/<id>/diff 说明是正在使用,不能动。

但是手动检查太费时间!有没有一条命令能自动清理?

解决方案:一条命令,自动清理

docker system prune

默认清理内容:

清理内容说明
停止的容器Exited 状态
无用的网络bridge 等临时网络
dangling images<none> 类型的镜像层
build cacheDocker 构建缓存

执行时会提示确认:

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all build cache
Are you sure you want to continue? [y/N] y

效果立竿见影:清理后 overlay2 目录明显缩小,磁盘恢复正常!

如果想清理更多空间

docker system prune -a

这会额外清理 所有未使用的镜像(包括没有运行容器引用的)

更彻底的版本(连 volumes 一起清)

docker system prune -a --volumes

注意:执行前一定要确认 volume 是否还在使用!

清理前后对比

状态磁盘使用率
清理前98%
执行 docker system prune 后降到 65%
再执行 -a --volumes 后仅 40%

建议定期维护

可以写成定时任务,每周清理一次:

# /etc/crontab
0 3 * * SUN root docker system prune -a -f

总结

问题解决方法
overlay2 占空间大docker system prune
停止的容器太多docker ps -a → docker rm
镜像太多docker image prune -a
卷占空间docker volume prune

实战经验

千万不要手动 rm -rf /var/lib/docker/overlay2/...

最安全的清理方式永远是 Docker 官方命令!

这样不仅避免误删容器层,也让 Docker 内部的元数据保持一致,系统更稳定。

结语

如果你也遇到系统空间被 Docker 吃光的问题,不妨试试这一条命令:

docker system prune

到此这篇关于Docker系统空间占用过大的清理方法详解的文章就介绍到这了,更多相关Docker空间占用过大清理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文