在 CentOS 上,“overlay 数据”通常出现在两种场景里:
下面分别说明备份方法。
Docker 默认数据目录:
/var/lib/docker
其中容器和镜像数据主要在:
/var/lib/docker/overlay2
不要直接 cp overlay2,应使用 Docker 自身机制:
docker save -o images.tar $(docker images -q)
docker export 容器名 > 容器名.tar
或提交为镜像:
docker commit 容器名 备份镜像名
docker save -o 备份镜像名.tar 备份镜像名
overlay 不含卷数据:
docker run --rm -v 卷名:/data -v $(pwd):/backup busybox \
tar czf /backup/volume.tar.gz -C /data .
先停止 Docker:
systemctl stop docker
再备份:
tar czf docker-overlay2.tar.gz -C /var/lib/docker overlay2
恢复:
systemctl stop docker
tar xzf docker-overlay2.tar.gz -C /var/lib/docker
systemctl start docker
⚠️ 风险:版本不一致、容器运行中会导致数据损坏
如果你是自己用 mount -t overlay:
mount | grep overlay
示例:
overlay on /mnt/merged type overlay
通常只备份 upperdir:
tar czf overlay-upper.tar.gz /path/to/upperdir
重新挂载 overlay 即可,无需备份 lowerdir(只读层)
| 场景 | 推荐备份方式 |
|---|---|
| Docker | docker save + 卷备份 |
| OverlayFS | 只备份 upperdir |
| 整机 | /var/lib/docker 停服后备份 |
如果你是 Docker 还是 Kubernetes / Podman / 自建 overlay,可以告诉我具体环境,我可以给你更精确的命令。