大致步骤

  1. 确定禅道的镜像
  2. 停止禅道,进行全部的备份压缩
  3. 将备份上传至新服务器,并解压
  4. 拉去镜像,并运行
  5. 测试(如果有做nginx代理需要处理这层)

 

1.确定禅道镜像

主要是针对使用了latest Tag的镜像,如果是指定的版本可直接记住他的镜像

docker ps -a

第二列就是他的镜像,我这里是latest所以会有点麻烦

docker迁移 ubuntu docker迁移到新服务器_docker

docker迁移 ubuntu docker迁移到新服务器_docker_02

前往docker官网找到对应的镜像

https://hub.docker.com/r/idoop/zentao/tags?page=1&name=11.6.5

docker迁移 ubuntu docker迁移到新服务器_zentao_03

复制这个命令可以先到新服务器上拉去镜像,毕竟100多m也要个几十秒

 

将备份上传至新服务器,并解压

2.停止禅道,进行全部的备份压缩

docker stop [zentao]

因为我旧环境在run的时候做了挂载所以可以直接在宿主机上操作;如果没有做挂载的话可以先从容器中拷贝出来

docker cp [zentao]:/opt/zbox/ /home/zentao

普通cp需要使用 -rf。r应该是递归,用于拷贝目录;f解释是说强制,是因为禅道bin目录下面有一些链接文件,不加f不会拷贝

我压缩后非常大,4个月有5g的大小;可能和备份有关,我是没有删除的大家可以考虑干掉在迁移

docker迁移 ubuntu docker迁移到新服务器_服务器_04

 

# 没有zip命令的自己安装吧,其他的压缩也是可以的,就是注意链接文件要压缩进去
zip -ry /home/back/zentao.back.zip /home/zentao/

-y是为了将链接文件压缩进去

docker迁移 ubuntu docker迁移到新服务器_docker迁移 ubuntu_05

 

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是一种测试;最好是自己登陆下。我就遇到了登陆不进去的问题;删掉目录重新加压后成功了(之前有文件在里边)。

注意防火墙,代理等等配置的修改。