【Docker】迁移docker版禅道到另一个容器

该博客详细记录了如何在Docker环境中将已有的禅道实例从一台服务器迁移到另一台,并保持数据完整。首先,通过备份数据库和禅道生产文件,然后在新的Docker容器中导入数据和文件,最终成功恢复禅道服务,确保原有数据可用。
摘要由CSDN通过智能技术生成

一、需求

之前的禅道安装在docker1中,已经用了一段时间产生了很多数据,由于其他原因现在需要删除这个容器,把已有的禅道容器实例迁移到另一台docker2中。

由于之前采用的docker快速安装禅道的方式,没有挂载文件到宿主机,容器映射出的mysql也无法连接。因此,需要先进容器把禅道的数据库备份,把备份sql文件和禅道的生产文件都导出来,拷贝到新的容器实例中。

二、环境

【docker1】

宿主机ip:192.168.16.25

禅道容器id:60b54b0fb09a

【docker2】

宿主机ip:192.168.16.26

三、迁移步骤

1、docker1宿主机新建备份文件夹

mkdir -p /home/zentao

2、进入docker1的禅道,备份数据库

docker exec -it 60b54b0fb09a /bin/bash

cd /home

/opt/zbox/run/mysql/mysqldump -u root -P 3306 -p zentao > zentao.sql

输入mysql数据库默认密码:123456

3、从容器拷贝数据到宿主机

cd /home/zentao

docker cp 60b54b0fb09a:/home/zentao.sql zentao.sql

docker cp 60b54b0fb09a:/opt/zbox/app/zentao/www/data data

4、在docker2的宿主机新建文件夹,拷贝刚刚备份的数据库sql文件和禅道文件

mkdir -p /home/zentao

5、docker2的宿主机创建禅道实例

docker run -d -p 8183:80 -p 8184:3306 -e ADMINER_USER="root" -e ADMINER_PASSWD="password" -e BIND_ADDRESS="false"  --name zentao idoop/zentao:latest

6、拷贝数据库sql文件到容器【858889445ecc】并导入数据库

docker cp zentao.sql 858889445ecc:/home/

/opt/zbox/bin/mysql -u root -P 3306 -p zentao < zentao.sql

输入默认密码:123456

7、拷贝禅道文件到容器【858889445ecc】覆盖

docker cp data/ 858889445ecc:/opt/zbox/app/zentao/www/

8、进入容器查看

docker exec -it 858889445ecc /bin/bash

此时data文件夹丢失了权限,赋权

chmod 777 data/

9、退出容器,重启禅道

docker restart 858889445ecc

10、访问禅道,登录原有账号

登录成功,所有数据都还在,Good Job !!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值