在 Linux 中,“overlay”通常指 OverlayFS(overlay filesystem),也可能指 Docker 的 overlay 存储驱动 / overlay 网络。下面我分别说明常见场景下的“备份方法”。
OverlayFS 结构通常如下:
lowerdir (只读层,多个)
upperdir (可读写层)
workdir (工作目录)
merged (挂载后的统一视图)
1. 备份 upperdir(最重要)
tar czf upper.tar.gz -C /path/to/upper .
或
rsync -aHAX /path/to/upper/ /backup/upper/
upperdir 包含了所有“修改、新增、删除”的内容
lowerdir 一般不需备份(通常是系统或镜像本身)
2. 记录挂载参数
mount | grep overlay
或
cat /proc/mounts | grep overlay
示例:
overlay on /mnt merged
lowerdir=/lower,upperdir=/upper,workdir=/work
3.(可选)备份 merged 视图
rsync -aHAX /mnt/merged/ /backup/merged/
适合做“整机一致性备份”,但会包含 lower 内容。
停止 Docker(推荐)
systemctl stop docker
备份数据目录
rsync -aHAX /var/lib/docker/ /backup/docker/
或
tar czf docker-backup.tar.gz -C /var/lib/docker .
只备份容器改动(轻量)
docker commit <container> backup-image
docker save backup-image > backup.tar
⚠️ 不建议直接 tar /var/lib/docker/overlay2 而不停 Docker
Overlay 网络本身无需备份,但可导出配置:
docker network inspect overlay_net > overlay.json
恢复:
docker network create \
--driver overlay \
--subnet 10.0.0.0/24 \
my_overlay
| 错误做法 | 原因 |
|---|---|
| 只备份 merged | 无法区分 lower / upper |
| 在线直接 tar overlay2 | 数据可能不一致 |
| 忽略 workdir | 恢复可能失败 |
mkdir -p /upper /work /merged
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
如果你能说明:
我可以给你更精确的备份脚本。