【非常詳細】docker中gitlab的數據遷移

  1. 下載鏡像
docker pull gitlab/gitlab-ce:latest         # 拉取最新鏡像
docker pull gitlab/gitlab-ce:11.10.1-ce.0   # 拉取指定版本鏡像(注意要在11.10.1後加上-ce.0纔是完整的tag)
  1. 查看鏡像
docker images
  1. 創建容器掛載目錄
cd /data
mkdir gitlab11.10.1

cd gitlab11.10.1
mkdir config
mkdir data
mkdir logs
  1. 停止正在運行的gitlab容器,以防衝突
docker stop [container_id]
  1. 使用容器
docker run 
--detach 
--hostname gitlab11.swufefic.org 
--publish 443:443 
--publish 80:80 
--publish 2222:22 
--name gitlab11 
--restart always 
--volume /data/gitlab11.10.1/config:/etc/gitlab 
--volume /data/gitlab11.10.1/logs:/var/log/gitlab 
--volume /data/gitlab11.10.1/data:/var/opt/gitlab 
gitlab/gitlab-ce:11.10.1-ce.
  1. 查看容器運行狀態
docker ps
  1. 訪問Web UI地址,設置root用戶密碼
  • 如何獲取/修改超級管理員root的密碼?

    需要進入容器docker exec -it <容器名> /bin/bash

    a、切換目錄:cd /opt/gitlab/bin

    b、執行:sudo gitlab-rails console production 命令 開始初始化密碼

    c、在irb(main):001:0> 後面通過 u=User.where(id:1).first 來查找與切換賬號(User.all 可以查看所有用戶)

    d、通過u.password='12345678'設置密碼爲12345678

    e、通過u.password_confirmation='12345678' 再次確認密碼

    f、通過u.save!進行保存(切記切記 後面的!

    g、如果看到的true ,恭喜你已經成功了,執行 exit 退出當前設置流程即可。

    h、回到gitlab ,可以通過 root/12345678 這一超級管理員賬號登錄了
  1. 數據遷移(兩個docker中的gitlab版本必須一

    查看gitlab版本需要進入容器內,執行如下命令:

    root@gitlab11:/var/opt/gitlab# gitlab-rake gitlab:env:info
    
  • 原有的服務器操作(建議與開發約定時間,停止使用的情況下備份

    1. 進入舊容器
    docker exec -it [container_id] /bin/bash
    
    1. 查看備份設定的備份路徑
    root@gitlab11:/var/opt/gitlab# cat /etc/gitlab/gitlab.rb | grep 'backup_path'
    
    # gitlab_rails['manage_backup_path'] = true
    # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
    
    1. 備份源數據到/var/opt/gitlab/backups目錄下
    root@gitlab11:/var/opt/gitlab# gitlab-rake gitlab:backup:create /var/opt/gitlab/backups/
    
  • 新的服務器操作

    1. 將備份的源數據包(tar格式)上傳至新的服務器的 /data/gitlab11.10.1/data/backups目錄下
    2. 修改文件權限
    chown git.git xxx_gitlab_backup.tar
    
    1. 進入新容器
    docker exec -it [container_id] /bin/bash
    
    1. 關閉相關服務
    root@gitlab11:/var/opt/gitlab# gitlab-ctl stop unicorn
    ok: down: unicorn: 1s, normally up
    root@gitlab11:/var/opt/gitlab# gitlab-ctl stop sidekiq
    ok: down: sidekiq: 0s, normally up
    
    1. 開始恢復(這裏不要寫全名,他會自動拼接
    root@gitlab11:/var/opt/gitlab# gitlab-rake gitlab:backup:restore BACKUP=1553072122_2019_12_10_11.10.1
    
    # 按照提示,都輸入yes即可
    
    1. 刷新配置文件
    root@gitlab11:/var/opt/gitlab#  gitlab-ctl reconfigure
    
    1. 重新啓動相關服務
    root@gitlab11:/var/opt/gitlab# gitlab-ctl start unicorn
    ok: run: unicorn: (pid2711)0s
    root@gitlab11:/var/opt/gitlab# gitlab-ctl start sidekiq
    ok: run: sidekiq: (pid2803)0s
    
    1. 重啓gitlab服務
    root@gitlab11:/var/opt/gitlab# gitlab-ctl restart
    ok: run: alertmanager: (pid4983)1s
    ok: run: crond: (pid4993)0s
    ok: run: gitaly: (pid5001)1s
    ok: run: gitlab-monitor: (pid5014)0s
    ......
    
    ok: run: gitlab-workhorse: (pid5027)0sok: run: unicorn: (pid5188)0s
    登陸WEB頁面查看代碼是否存在
    

相關資源鏈接地址:

  1. https://www.jianshu.com/p/08b13806c382
  2. https://www.cnblogs.com/nulige/articles/9323828.html
  3. https://blog.csdn.net/gc889900/article/details/88694148
  4. https://blog.csdn.net/hnmpf/article/details/80518460
  5. https://www.cnblogs.com/hei-ma/p/9284202.html
發佈了8 篇原創文章 · 獲贊 1 · 訪問量 552
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章