參考
Docker 搭建 Gitlab 服務器 (完整詳細版)_docker gitlab-CSDN博客
Docker 安裝 (完整詳細版)_docker安裝-CSDN博客
Docker 日常命令大全(完整詳細版)_docker命令-CSDN博客
1、Gitlab鏡像
# 查找Gitlab鏡像
docker search gitlab
# 拉取Gitlab鏡像
docker pull gitlab/gitlab-ce:latest
2、啟動Gitlab容器?
# 啟動容器
docker run \-itd ?\-p 9980:80 \-p 9922:22 \-v /home/gitlab/etc:/etc/gitlab ?\-v /home/gitlab/log:/var/log/gitlab \-v /home/gitlab/opt:/var/opt/gitlab \--restart always \--privileged=true \--name gitlab \gitlab/gitlab-ce
命令 | 描述 |
-i | 以交互模式運行容器,通常與 -t 同時使用命令解釋 |
-t | 為容器重新分配一個偽輸入終端,通常與 -i 同時使用 |
-d | ?后臺運行容器,并返回容器ID |
-p 9980:80 | 將容器內80端口映射至宿主機9980端口,這是訪問gitlab的端口 |
-p 9922:22?? | 將容器內22端口映射至宿主機9922端口,這是訪問ssh的端口 |
-v /home/gitlab/etc:/etc/gitlab? | 將容器/etc/gitlab目錄掛載到宿主機/usr/local/gitlab-test/etc目錄下,若宿主機內此目錄不存在將會自動創建,其他兩個掛載同這個一樣 |
--restart always? | 容器自啟動 |
--privileged=true? | 讓容器獲取宿主機root權限 |
--name gitlab? | 設置容器名稱為gitlab |
gitlab/gitlab-ce? | 鏡像的名稱,這里也可以寫鏡像ID |
接下來的配置請在容器內進行修改,不要在掛載到宿主機的文件上進行修改。否則可能出現配置更新不到容器內,或者是不能即時更新到容器內,導致gitlab啟動成功,但是無法訪問
?3、修改配置
#進容器內部
docker exec -it gitlab /bin/bash#修改gitlab.rb
vi /etc/gitlab/gitlab.rb#加入如下
#gitlab訪問地址,可以寫域名。如果端口不寫的話默認為80端口
external_url 'http://192.168.124.194'
#ssh主機ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh連接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922# 讓配置生效
gitlab-ctl reconfigure
?
### 注意不要重啟,/etc/gitlab/gitlab.rb文件的配置會映射到gitlab.yml這個文件,由于咱們在docker中運行,在gitlab上生成的http地址應該是http://192.168.124.194:9980,所以,要修改下面文件
# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.ymlgitlab:host: 192.168.124.194port: 9980 # 這里改為9980https: false
#重啟gitlab?
gitlab-ctl restart
#退出容器?
exit
4、瀏覽器訪問?
路徑訪問:http://192.168.124.194:9980/
# 機器配置要大于4g,否則很容易啟動不了,報502
# 第一次訪問,會讓修改root密碼
# 修改后以root用戶登錄即可?

5、 修改root密碼
# 進入容器內部
docker exec -it gitlab /bin/bash# 進入控制臺
gitlab-rails console -e production# 查詢id為1的用戶,id為1的用戶是超級管理員
user = User.where(id:1).first
# 修改密碼為lhx123456
user.password='lhx123456'
# 保存
user.save!
# 退出
exit

6、Gitlab操作
創建分組,創建項目
?
至此,Docker搭建Gitlab服務器完成!!!