在 CentOS 里提到 overlay,通常有三种常见场景,下面分别说明迁移方法,你可以对号入座。
如果你是说 Docker 的 overlay2 数据目录(/var/lib/docker)迁移:
systemctl stop docker
mv /var/lib/docker /data/docker
# 或
rsync -avzP /var/lib/docker/ /data/docker/
编辑 /etc/docker/daemon.json:
{
"data-root": "/data/docker"
}
如果没有该文件就新建。
systemctl start docker
docker info | grep "Docker Root Dir"
✅ 显示 /data/docker 即成功
如果你自己用 mount -t overlay 挂载的目录:
lowerdir=/mnt/lower
upperdir=/mnt/upper
workdir=/mnt/work
merged=/mnt/merged
umount /mnt/merged
rsync -avzP /mnt/upper /newpath/
rsync -avzP /mnt/work /newpath/
mount -t overlay overlay \
-o lowerdir=/mnt/lower,upperdir=/newpath/upper,workdir=/newpath/work \
/newpath/merged
⚠️ lowerdir 通常只读,可不迁移
如果是 containerd:
systemctl stop containerd kubelet
mv /var/lib/containerd /data/containerd
修改 /etc/containerd/config.toml:
root = "/data/containerd"
重启:
systemctl start containerd kubelet
rsync 而不是 cp(保留权限)restorecon -R)screen 或 nohup如果你能补充一句:
“我是 Docker / K8s / 手动 overlay?CentOS 几?”
我可以给你精准的一步到位命令。