在 CentOS 中,“Overlay”通常指 OverlayFS(Overlay 文件系统) 或 Docker 使用的 Overlay/Overlay2 存储驱动。备份方式取决于你具体指的是哪一种。下面分别说明常见场景。
如果你是指 Docker 的 Overlay2 存储目录,通常位于:
/var/lib/docker/overlay2
不要直接复制 overlay2 目录,而是使用 Docker 官方备份方式:
# 导出镜像
docker save -o docker_images.tar myimage:tag
# 备份容器数据卷
tar czvf volumes_backup.tar.gz /var/lib/docker/volumes
恢复:
docker load -i docker_images.tar
tar xzf volumes_backup.tar.gz -C /
如果必须备份 overlay2 本身:
systemctl stop docker
tar czvf docker_backup.tar.gz /var/lib/docker
systemctl stop docker
rm -rf /var/lib/docker
tar xzf docker_backup.tar.gz -C /
systemctl start docker
⚠️ 风险:
如果你是自己手动挂载的 OverlayFS,例如:
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/mnt/overlay
upperdir 包含所有修改内容:
tar czvf upper_backup.tar.gz /upper
lowerdir 通常是只读层,可单独备份:
tar czvf lower_backup.tar.gz /lower
tar xzf upper_backup.tar.gz -C /
然后重新挂载 OverlayFS。
如果是 整个系统备份(例如服务器迁移):
rsync -aAXv / /backup/rootfs/ \
--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}
tar czvf centos_backup.tar.gz \
--exclude=/proc --exclude=/sys --exclude=/dev \
--exclude=/tmp --exclude=/run /
| 场景 | 推荐方式 |
|---|---|
| Docker Overlay2 | docker save + 卷备份 |
| 手动 OverlayFS | 备份 upperdir |
| 系统级备份 | rsync / tar |
| 正在运行的 Docker | ❌ 不建议直接复制 overlay2 |
如果你愿意,可以告诉我:
我可以给你一套完全适合你环境的备份方案。