温馨提示×

Linux overlay如何清理

小樊
61
2026-07-21 19:46:46
栏目: 智能运维

在 Linux 中,“overlay”通常指 OverlayFS(常用于 Docker、容器、Live CD 等)。清理 overlay 需要根据使用场景来判断,否则容易误删数据。下面按常见场景说明。


一、确认你用的是哪种 overlay

先确认来源:

mount | grep overlay

常见情况:

  • /var/lib/docker/overlay2Docker 使用
  • /run/docker → Docker 运行时
  • Live CD / initramfs
  • 手动 mount -t overlay

二、Docker overlay 清理(最常见 ✅)

1️⃣ 正确方式:用 Docker 命令清理(推荐)

查看磁盘占用

docker system df

清理未使用的资源

docker system prune

只删除未使用的数据(安全):

docker system prune -f

包括未使用的镜像、容器、网络、build cache:

docker system prune -a -f

⚠️ 注意-a 会删除所有未被容器使用的镜像。


2️⃣ 清理 Docker overlay2 目录(不推荐手动)

路径:

/var/lib/docker/overlay2

不要直接 rm -rf

如果一定要手动(仅限 Docker 已停止):

systemctl stop docker
rm -rf /var/lib/docker/overlay2/*
systemctl start docker

否则可能导致:

  • Docker 启动失败
  • 容器数据损坏

三、清理 Docker 日志(常被误认为是 overlay)

overlay 变大,很多时候是 容器日志 导致:

du -sh /var/lib/docker/containers/*/*-json.log

限制日志大小(推荐)✅
编辑 /etc/docker/daemon.json

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

然后重启 Docker:

systemctl restart docker

四、非 Docker 的 OverlayFS 清理

1️⃣ 查看挂载点

mount | grep overlay

2️⃣ 卸载 overlay

umount /mnt/overlay

3️⃣ 清理底层目录

OverlayFS 通常是:

  • lowerdir(只读)
  • upperdir(可写)
  • workdir

清理 upperdir 即可(确认无重要数据):

rm -rf upperdir/*
rm -rf workdir/*

五、清理 /run/overlay 或 initramfs overlay

常见于 Live 系统:

du -sh /run/overlay

如果是临时文件系统(tmpfs):

reboot

即可自动清理。


六、排查 overlay 占用过大的常用命令

# 查看 overlay 占用
du -sh /var/lib/docker/overlay2

# 查看哪个容器占用最多
docker ps -s

# 查看挂载
mount | grep overlay

七、总结(速查表)

场景 推荐做法
Docker overlay docker system prune
overlay2 目录 不要手动删
容器日志大 限制日志大小
手动 overlay umount + 清 upperdir
Live CD 重启

如果你愿意,可以把下面信息发我,我可以给你精确命令

  • mount | grep overlay
  • du -sh /var/lib/docker
  • 是否是 Docker / Kubernetes / 容器环境

0