跳到主要内容
版本:1.0

应用程序迁移

应用程序的迁移没有一个完全适合所有应用的精准方案,但应用的迁移规律是普适性的。

应用的迁移主要是如下几个步骤:

Docker 应用迁移

对于 Docker 应用来说,环境与操作系统被打包到一个【虚拟盒子】中,很容易被迁移。下面介绍具体步骤:

  1. 列出当前应用所有的容器

    cd /data/wwwroot/appname
    docker-compose ps
  2. 为每一个相关的容器创建镜像以及导出为压缩文件

    # 创建镜像
    sudo docker commit appname image_name

    # 导出镜像到当前目录
    sudo docker save image_name > image_name.tar
  3. 将应用的根目录以及所有 .tar 文件拷贝到目标服务器

  4. 在目标服务器上逐个将 .tar 文件恢复为镜像

    sudo docker load < image-name.tar
  5. 将应用的持久化存储目录拷贝到目标服务器(保持路径一致)

  6. 检查 docker-compose.yml 和 .env 文件,保证 volume 和 image 符合真实情况

  7. 重新创建容器

    cd /path/appname
    docker-compose up -d

非 Docker 应用迁移

对于非 Docker 等应用来说,环境与应用是分离的,环境与操作系统是紧耦合的。意味着迁移环境难度很大,所以大部分时候用户会在目的地服务器上重新部署一致的环境。

具体的迁移步骤如下:

  1. 目标服务器准备好应用所需的环境(程序环境、数据库、中间件、Web Server),务必保证版本一致

  2. 将应用的源码(数据)拷贝到目标目录

  3. 数据库迁移

  4. 检查应用的配置文件,确保与真实环境一致

  5. 测试迁移的结果

迁移后续

完成应用迁移之后,可能还有一些后续的工作:

  • 域名重新解析和绑定
  • 文件(文件夹)权限修正