大致步骤
- 确定禅道的镜像
- 停止禅道,进行全部的备份压缩
- 将备份上传至新服务器,并解压
- 拉去镜像,并运行
- 测试(如果有做nginx代理需要处理这层)
1.确定禅道镜像
主要是针对使用了latest Tag的镜像,如果是指定的版本可直接记住他的镜像
docker ps -a
第二列就是他的镜像,我这里是latest所以会有点麻烦
前往docker官网找到对应的镜像
https://hub.docker.com/r/idoop/zentao/tags?page=1&name=11.6.5
复制这个命令可以先到新服务器上拉去镜像,毕竟100多m也要个几十秒
将备份上传至新服务器,并解压
2.停止禅道,进行全部的备份压缩
docker stop [zentao]
因为我旧环境在run的时候做了挂载所以可以直接在宿主机上操作;如果没有做挂载的话可以先从容器中拷贝出来
docker cp [zentao]:/opt/zbox/ /home/zentao
普通cp需要使用 -rf。r应该是递归,用于拷贝目录;f解释是说强制,是因为禅道bin目录下面有一些链接文件,不加f不会拷贝
我压缩后非常大,4个月有5g的大小;可能和备份有关,我是没有删除的大家可以考虑干掉在迁移
# 没有zip命令的自己安装吧,其他的压缩也是可以的,就是注意链接文件要压缩进去
zip -ry /home/back/zentao.back.zip /home/zentao/
-y是为了将链接文件压缩进去
3.将备份上传至新服务器,并解压
scp /home/back/zentao.back.zip root@192.168.100.4:/home/back/zentao.back.zip
root@192.168.100.4 这个是新服务器的用户和地址。上面命令完了会要你输入密码
切换至新服务器
找到刚刚传过来的备份文件/home/back/zentao.back.zip
# 解压
unzip /home/back/zentao.back.zip -d /home/zentao/
4.拉去镜像,并运行
上面已经拉取过镜像了,当然不拉取也可以直接运行,只是会托迁移的时间。
docker run -d \
-e USER="root" -e PASSWD="yxzt123" \
-e BIND_ADDRESS="false" \
-v /home/zentao/:/opt/zbox/ \
--name zentao \
idoop/zentao:11.6.5
注意你们自己对应的禅道镜像。我这里是 idoop/zentao:11.6.5
另外我是记得之前运行时候的设置,最好也加上,避免mysql无法启动
运行后可以先使用 curl方式确认已经跑起来了
[root@localhost ~]# curl 172.28.0.3
<meta http-equiv="refresh" content="0; url=/zentao/" />
这个命令可以查看你的ip docker inspect [zentao]
5.测试(如果有做nginx代理需要处理这层)
上面curl是一种测试;最好是自己登陆下。我就遇到了登陆不进去的问题;删掉目录重新加压后成功了(之前有文件在里边)。
注意防火墙,代理等等配置的修改。