之前的禅道安装在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 !!!