温馨提示×

如何备份ubuntu overlay

小樊
39
2026-09-28 00:09:33
栏目: 智能运维

在 Ubuntu 中,overlay(通常指 overlayfs,或 Docker 的 overlay/overlay2 存储驱动)的“备份”方式取决于你指的是哪一种场景。下面我按常见情况分别说明。


一、备份 Ubuntu 的 overlayfs(系统层 overlay)

如果你是用 overlayfs 挂载根文件系统(例如 live CD、只读根 + 可写层),备份的核心是只备份 upperdir(可写层)。

典型结构

lowerdir=/ro
upperdir=/rw/upper
workdir=/rw/work
merged=/merged

备份方法

# 只备份可写层
tar -czpf overlay-backup.tar.gz -C /rw/upper .

或:

rsync -aHAX --delete /rw/upper/ /backup/overlay-upper/

⚠️ 注意:

  • 不要备份 workdir
  • 恢复时需同时恢复 lowerdir 原始内容

二、备份 Docker 的 overlay / overlay2(最常见)

Ubuntu 上 Docker 默认使用 overlay2。

1️⃣ 官方推荐方式(最安全)

不要直接复制 /var/lib/docker

✅ 正确做法:

  • 使用 docker commit 或 docker save
docker commit mycontainer myimage:backup
docker save myimage:backup -o myimage.tar

或备份 volumes:

docker run --rm -v myvolume:/data -v /backup:/backup busybox \
tar czf /backup/volume.tar.gz -C /data .

2️⃣ 冷备份(停机备份,可行但不推荐)

如果必须备份整个 Docker 存储:

systemctl stop docker
rsync -aHAX --delete /var/lib/docker/ /backup/docker/
systemctl start docker

⚠️ 风险:

  • 文件锁
  • inode / layer 依赖
  • 升级 Docker 后可能不兼容

三、备份 Kubernetes overlay(containerd)

如果是 containerd + overlayfs:

systemctl stop containerd
rsync -aHAX /var/lib/containerd/ /backup/containerd/

四、恢复示例(overlayfs)

rm -rf /rw/upper/*
tar -xzpf overlay-backup.tar.gz -C /rw/upper

五、总结建议

场景 推荐方式
Docker docker save / volume 备份
overlayfs 只备份 upperdir
系统级 镜像 / 快照(LVM、Btrfs)
生产环境 停服 + rsync

如果你能说明:

  • 是 Docker / 系统 overlay / K8s
  • 是否 生产环境
  • 是否允许 停机

我可以给你一套精确备份脚本。

0 踩