温馨提示×

如何从CentOS镜像中迁移数据

小樊
59
2025-09-08 01:04:50
栏目: 智能运维

从CentOS镜像迁移数据需结合具体场景选择方法,以下是常见方案及操作要点:

一、系统级数据迁移(跨系统/平台)

1. 使用镜像导出/导入工具

  • 离线迁移
    • 源环境执行 docker save -o centos-image.tar centos:latest 导出镜像为压缩包。
    • 通过U盘等传输至目标环境,执行 docker load -i centos-image.tar 导入镜像。
  • 在线迁移
    • 源环境为镜像打标签:docker tag centos:latest 私有仓库地址/命名空间/centos:latest
    • 推送至私有仓库:docker push 私有仓库地址/命名空间/centos:latest
    • 目标环境拉取镜像:docker pull 私有仓库地址/命名空间/centos:latest

2. 文件系统级迁移(保留配置/数据)

  • rsync工具
    • 迁移系统文件(排除特殊目录):
      rsync -avz --exclude=/proc --exclude=/sys --exclude=/dev /源路径/ /目标路径/
    • 同步用户数据:rsync -avz /home/ /目标路径/home/
  • tar打包迁移
    • 打包系统文件(排除临时文件):
      tar -czvf centos-backup.tar.gz --exclude=/proc --exclude=/sys /
    • 解压至目标系统:tar -xzvf centos-backup.tar.gz -C /

二、应用数据迁移(如Docker容器数据)

1. 容器数据卷迁移

  • 停止容器:docker stop 容器名
  • 备份数据卷:docker cp 容器名:/数据路径 /本地备份路径
  • 迁移至新容器:docker run -v /本地备份路径:/容器数据路径 新镜像

2. 数据库数据迁移

  • 使用工具导出:
    • MySQL:mysqldump -u 用户名 -p 数据库名 > backup.sql
    • PostgreSQL:pg_dump -U 用户名 数据库名 > backup.sql
  • 导入至新环境:
    • MySQL:mysql -u 用户名 -p 数据库名 < backup.sql

三、注意事项

  • 权限与一致性:确保目标路径权限正确,迁移前停止服务避免数据损坏。
  • 网络与存储:离线迁移需准备足够存储空间,在线迁移需保证网络稳定。
  • 兼容性检查:跨系统迁移时,确认目标环境支持源镜像的配置(如内核版本、软件依赖)。

参考来源:

0