温馨提示×

Linux overlay如何删除

小樊
34
2026-08-20 12:12:30
栏目: 智能运维

在 Linux 中 overlay(OverlayFS) 通常是以 挂载方式 存在的,删除它并不是“删除一个目录”,而是 卸载(umount)并清理相关资源。下面分几种常见情况说明。


一、如果是 OverlayFS 挂载(最常见)

1️⃣ 查看当前 overlay 挂载

mount | grep overlay
# 或
cat /proc/mounts | grep overlay

示例输出:

overlay on /mnt/overlay type overlay (rw,lowerdir=/lower,upperdir=/upper,workdir=/work)

2️⃣ 卸载 overlay(删除挂载)

umount /mnt/overlay

如果提示 device is busy

umount -l /mnt/overlay   # 延迟卸载

或查看占用进程:

lsof +D /mnt/overlay
fuser -vm /mnt/overlay

3️⃣ 删除 overlay 相关目录(可选)

如果你不再需要:

rm -rf /lower /upper /work /mnt/overlay

⚠️ 注意:

  • upperdir 中的数据是你写入的数据
  • lowerdir 通常是只读层(如 rootfs、镜像层)
  • workdir 是 overlay 内部使用,不能单独删

二、如果是 Docker / Kubernetes 使用的 overlay

情况 1:Docker overlay2(推荐不要手动删)

docker system df
docker system prune -a

不要直接删除

/var/lib/docker/overlay2/*

否则 Docker 会损坏。


情况 2:K8s / containerd

crictl ps
crictl rmi

清理无用镜像:

kubectl get pods
ctr images prune

三、如果是 systemd 或 initramfs 中的 overlay

查看是否有 systemd mount 单元

systemctl list-units --type=mount

禁用挂载:

systemctl disable mnt-overlay.mount
systemctl daemon-reload

四、特殊情况:overlay 变成只读 / 无法卸载

强制卸载(极端)

umount -f /mnt/overlay

或重启系统(最稳妥)。


五、总结(快速操作)

# 1. 查看
mount | grep overlay

# 2. 卸载
umount /mount/point

# 3. 确认
ls /mount/point

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

  1. mount | grep overlay 输出
  2. Docker / K8s / 手工挂载 / 系统启动 overlay?
  3. 你所谓的“删除”是指 卸载 还是 释放磁盘空间

0