当前位置:首页>Linux>Linux 服务器磁盘爆满排查与清理教程(以 containerd/Docker 场景为例)

Linux 服务器磁盘爆满排查与清理教程(以 containerd/Docker 场景为例)

  • 2026-10-11 07:32:58
Linux 服务器磁盘爆满排查与清理教程(以 containerd/Docker 场景为例)

1. 问题背景

在运行 Kubernetes + Docker 的 Linux 服务器中,/var/lib 目录下的 containerd 和 docker 目录容易因容器镜像、日志、存储卷堆积导致磁盘空间爆满。本教程以 Ubuntu 系统为例,完整演示从问题定位到清理优化的全流程。


2. 第一步:定位磁盘占用

2.1 查看整体磁盘使用率

df -h

重点关注使用率超过 80% 的分区,通常 / 根分区或 /var 分区会出现告警。

2.2 使用 ncdu 逐层定位大目录

  1. 安装 ncdu(如未安装)

    apt update && apt install ncdu -y
  1. 进入 /var 目录分析

    ncdu /var
  2. 进入 /var/lib 目录,定位核心占用:

    • 优先关注 /var/lib/containerd(Kubernetes 容器运行时)

    • 其次关注 /var/lib/docker(Docker 镜像 / 容器存储)


3. 第二步:针对性清理 containerd(Kubernetes 场景)

3.1 问题现象

/var/lib/containerd 占用高达 100GiB+,多为未清理的镜像层、快照层。

3.2 清理操作

  1. 查看 containerd 镜像列表

    crictl images
  2. 清理所有未被使用的镜像

    crictl rmi --prune


4. 第四步:验证清理成果

4.1 再次使用 ncdu 确认空间释放

ncdu /var/lib

清理后,/var/lib/containerd 和 /var/lib/docker 的占用应显著下降。

4.2 查看整体磁盘使用率

df -h

确认分区使用率已降至正常水平(低于 80%)。


5. 常见问题排查

问题原因解决方法
docker image prune 无法释放空间无悬空镜像,或空间被 containerd 占用使用 crictl 清理 containerd 镜像
containerd 清理后空间未释放快照层 / 容器日志未清理检查 /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs 目录
清理后磁盘使用率仍高其他目录(如 /var/log、/root)存在大文件使用 ncdu 逐层排查其他目录

6. 总结

通过 ncdu 定位大目录 → 针对性清理 containerd/Docker 资源 → 配置自动清理策略,可有效解决服务器磁盘爆满问题。建议定期(每周)执行磁盘健康检查,提前发现空间占用异常。

最新文章

随机文章