应用程序迁移
应用程序的迁移没有一个完全适合所有应用的精准方案,但应用的迁移规律是普适性的。
应用的迁移主要是如下几个步骤:
Docker 应用迁移
对于 Docker 应用来说,环境与操作系统被打包到一个【虚拟盒子】中,很容易被迁移。下面介绍具体步骤:
-
列出当前应用所有的容器
cd /data/wwwroot/appname
docker-compose ps -
为每一个相关的容器创建镜像以及导出为压缩文件
# 创建镜像
sudo docker commit appname image_name
# 导出镜像到当前目录
sudo docker save image_name > image_name.tar -
将应用的根目录以及所有 .tar 文件拷贝到目标服务器
-
在目标服务器上逐个将 .tar 文件恢复为镜像
sudo docker load < image-name.tar
-
将应用的持久化存储目录拷贝到目标服务器(保持路径一致)
-
检查 docker-compose.yml 和 .env 文件,保证 volume 和 image 符合真实情况
-
重新创建容器
cd /path/appname
docker-compose up -d
非 Docker 应用迁移
对于非 Docker 等应用来说,环境与应用是分离的,环境与操作系统是紧耦合的。意味着迁移环境难度很大,所以大部分时候用户会在目的地服务器上重新部署一致的环境。
具体的迁移步骤如下:
-
目标服务器准备好应用所需的环境(程序环境、数据库、中间件、Web Server),务必保证版本一致
-
将应用的源码(数据)拷贝到目标目录
-
数据库迁移
-
检查应用的配置文件,确保与真实环境一致
-
测试迁移的结果