基于docker容器的gitlab迁移与数据恢复
将在docker容器里里面的/var/opt/gitlab/backups/目录下产生一个1665386470_2022_10_10_13.9.2_gitlab_backup.tar的压缩包。101上的gitlab容器是通过docker-compose.yml启动的,所以直接将101上的docker-compose.yml文件拷贝到132上再起容器。第三步:在101上打包数据,并且将压缩包传递到1
将192.168.0.101上面的gitlab迁移到192.168.0.132上去,都使用的容器
第一步.在132机器上起一个gitlab的容器(版本需要跟101一致)
101上的gitlab容器是通过docker-compose.yml启动的,所以直接将101上的docker-compose.yml文件拷贝到132上再起容器
101机器上:
xieshan@dell:/data/gitlab$ cat docker-compose.yml
version: '3'
services:
web:
image: 'gitlab/gitlab-ce:13.9.2-ce.0'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.xxx.com:8060'
ports:
- '8060:8060'
- '2222:22'
- '5005:5005'
volumes:
- '/data/gitlab/config:/etc/gitlab'
- '/data/gitlab/logs:/var/log/gitlab'
- '/data/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
xieshan@dell:/data/gitlab$ scp ./docker-compose.yml docker@192.168.0.132:/home/docker/gitlab/ #手动复制过去也行
132机器上:
docker@132:~/gitlab$ cd /home/docker/gitlab/
docker@132:~/gitlab$ mkdir config data logs
docker@132:~/gitlab$ ls
backups config data docker-compose.yml logs
docker@132:~/gitlab$ cat docker-compose.yml
version: '3'
services:
web:
image: 'gitlab/gitlab-ce: 13.9.2-ce.0'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.xxx.com:8060'
ports:
- '8060:8060'
- '2222:22'
- '5005:5005'
volumes:
- '/home/docker/gitlab/config:/etc/gitlab'
- '/home/docker/gitlab/logs:/var/log/gitlab'
- '/home/docker/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
docker@132:~/gitlab$ docker-compose up -d
第二步:在web界面上,通过192.168.0.132:8090访问进去,随便设置一个密码(后期会被覆盖)登录进去(这一步不可以省略)
第三步:在101上打包数据,并且将压缩包传递到132的/home/docker/gitlab/backups里面去
101机器上:
docker exec -t docker_web_1 gitlab-backup create #在容器外执行
将在docker容器里里面的/var/opt/gitlab/backups/目录下产生一个1665386470_2022_10_10_13.9.2_gitlab_backup.tar的压缩包
传递压缩包(在101的容器内部)
root@ed414f9cc6e7:/var/opt/gitlab/backups# pwd
/var/opt/gitlab/backups
root@ed414f9cc6e7:/var/opt/gitlab/backups# ls
1665386470_2022_10_10_13.9.2_gitlab_backup.tar
root@ed414f9cc6e7:/var/opt/gitlab/backups# scp 1665386470_2022_10_10_13.9.2_gitlab_backup.tar docker@192.168.0.132:/home/docker/gitlab/data/backups
第四步:传递配置文件
在101机器上:
xieshan@dell:/var/opt/gitlab$ cd /data/gitlab/
xieshan@dell:/data/gitlab$ ls
config data docker-compose.yml logs
xieshan@dell:/data/gitlab$ sudo scp -r ./config/* root@192.168.0.132:/home/docker/gitlab/config
第五步:恢复数据跟文件
在132的容器内部:
docker exec -it gitlab_web_1 /bin/bash #进入132的容器里面
cd /var/opt/gitlab/data/backups #如果这个目录下没有那个压缩包,就吧外面的压缩包复制进来
chmod 777 1665386470_2022_10_10_13.9.2_gitlab_backup.tar
chown git.git 1665386470_2022_10_10_13.9.2_gitlab_backup.tar
gitlab-ctl stop unicorn #关闭相关服务
gitlab-ctl stop sidekiq
gitlab-backup restore BACKUP=1665386470_2022_10_10_13.9.2 #开始恢复,一直yes就可以了,中间一些警告可以忽视(这个压缩包的名字不用写全,会自动补齐)
gitlab-ctl reconfigure #重新加载配置
gitlab-ctl start unicorn #重新启动相关服务
gitlab-ctl start sidekiq
gitlab-ctl restart #重新启动gitlab服务
exit #退出容器
然后可以在web界面上登录,看看数据是否都恢复了
参考博客:(3条消息) 【非常详细】docker中gitlab的数据迁移_seniorhui666的博客-CSDN博客
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)