背景
这段时间兼职公司运维工作,多个私有云服务器快到期了,因此线上服务和数据需要迁移备份,但是如果在同一台机器上部署多个实例难免有端口冲突,为了做到相互隔离和维护方便,docker可能是最佳选择,于是开始了我的迁移之旅:
备份
服务器迁移过程中最重要的是数据,为了确保数据不丢失,最好是晚上停机备份
备份文件传输,可使用scp命令和xftp软件,推荐使用rsync同步整个项目目录
部署
服务器环境配置,如 git,nginx等,这里不多讲
docker安装
安装过程请自行搜索:Ubuntu安装docker
创建自定义网络(虚拟网桥),这样容器可以与同一网络中的其他容器通信,
数据库
redis
如有备份文件,请把rdb文件拷贝至data目录下
mysql
如需设置时区请加上 -e TZ="Asia/Shanghai"
数据恢复
用户角色配置
如果遇到容器无法启动的情况,可能是因为docker容器运行必须有一个前台进程,如果没有前台进程执行,容器认为空闲,就会自行退出。xiaochuang_3.0是项目主体,所以得去掉package.json 中启动命令start-prod
里的 --daemon
选项。
如果后端项目要连接宿主机的数据库,请把连接信息中的host改为该容器的网关ip,可使用docker inspect container
查看Gateway
设置,即为虚拟网卡ip
确保路径映射和ip无误后最后运行脚本:sh init.sh
,稍等几分钟,中途没有报错的话,容器自动运行,最后大功告成 ~_~