日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

基于docker容器的gitlab遷移與數據恢復

作者:萬物皆可愛33 更新時間: 2022-10-14 編程語言

將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.easycomputation.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.easycomputation.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/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 /data/gitlab11.10.1/data/backups    #如果這個目錄下沒有那個壓縮包,就吧外面的壓縮包復制進來
chmod 777 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博客

(3條消息) 基于docker的gitlab的遷移_kaen_w的博客-CSDN博客_docker gitlab 遷移

Backup | GitLab

原文鏈接:https://blog.csdn.net/weixin_43880061/article/details/127287150

欄目分類
最近更新