Docker数据在CentOS上的迁移步骤
迁移前必须停止Docker服务,确保数据一致性,避免迁移过程中容器或镜像被修改导致损坏。执行以下命令:
sudo systemctl stop docker
通过docker info命令查看当前Docker数据存储路径(关键信息为Docker Root Dir),默认通常是/var/lib/docker:
sudo docker info | grep "Docker Root Dir"
选择目标存储路径(如/new/docker-data,可根据磁盘空间情况选择,如/home或挂载的大容量分区),并创建目录:
sudo mkdir -p /new/docker-data
使用rsync命令同步数据(保留文件权限、属性及时间戳,避免数据损坏):
sudo rsync -avz /var/lib/docker/ /new/docker-data/
若数据量较小,也可用cp -a命令(-a参数保留所有属性):
sudo cp -a /var/lib/docker/. /new/docker-data/
编辑Docker配置文件/etc/docker/daemon.json(若文件不存在则创建),添加data-root字段指定新路径:
sudo vim /etc/docker/daemon.json
内容如下(仅保留data-root,避免与其他配置冲突):
{
"data-root": "/new/docker-data"
}
若系统启用了SELinux,需修改新目录的安全上下文,确保Docker能访问:
sudo chcon -R system_u:object_r:container_var_lib_t:s0 /new/docker-data
加载新配置并启动Docker:
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl start docker # 启动Docker服务
Docker Root Dir是否为新路径:docker info | grep "Docker Root Dir"
预期输出应显示新路径(如Docker Root Dir: /new/docker-data)。docker run --rm hello-world
确认新路径工作正常后,删除旧数据目录释放空间:
sudo rm -rf /var/lib/docker
tar打包/var/lib/docker),防止误操作导致数据丢失。755,且Docker用户(通常为root)有读写权限。df -h检查)。overlay2)与旧系统一致,避免兼容性问题。