當前位置:成語大全網 - 書法字典 - 使用Docker部署GitLab

使用Docker部署GitLab

檢查拉取是否成功。

寫內容

在這個文件目錄中,授予gitlab_start.sh執行權限。

註意端口是否被占用。

修改gitlab_start.sh文件,將映射到主機的端口更改為8088或其他未占用的端口。

重新運行。/gitlab_start.sh文件,並顯示以下錯誤。

這是因為先前的容器已經創建,盡管它沒有運行。刪除它。

重新運行gitlab_start.sh文件。

您可以看到容器成功啟動。

創建docker-compose.yml文件,在文件所在的文件夾目錄下運行docker-compose up -d。

Docker-compose需要提前安裝。

安裝docker-compose

註意:可以根據需要修改端口和映射目錄。

如果開放的訪問端口是80,則external_url可以默認設置為80,而無需添加端口號。

如果是3.1方法創建的,需要修改相關的配置文件。

當Gitlab容器運行時,重啟服務並遠程訪問網站進行測試。

*如果在訪問Gitlab時出現錯誤,如502,請使用命令檢查錯誤原因。

例如

檢查上面的配置文件,找出錯誤的原因。

[圖像上傳失敗...(圖片-e 9789-1636370071222)]

雖然容器啟動成功,但是沒有辦法根據ip:port訪問gitlab。

拉tomcat圖像

要測試端口8088是否可用,首先暫停gitlab的容器。

啟動tomcat容器,並將tomcat容器的端口8080映射到主機的端口8088。

壹切正常,訪問ip:8088,還是不能像以前壹樣訪問。

因為之前系統的防火墻已經關閉,其他服務可以正常訪問,所以毫無疑問是防火墻問題。

打開防火墻

就診前可以正常訪問的服務無法正常訪問。

開發服務的端口並正常訪問。

打開端口8088。

再次訪問

返回tomcat的頁面404: http狀態404–未找到。

雖然是404頁面,但說明此時端口可以正常訪問。

停止tomcat的容器,再次運行gitlab容器。

雖然沒有成功起步,但是離成功又近了壹步:)

嘗試刪除此容器並重新創建,仍然會出現此錯誤。

我還是無法訪問它。檢查GitLab內部是否有問題。

壹切順利嗎

我切換到tomcat容器再次測試,發現端口8088無法訪問。

但是在主機中ping這臺機器是可以的。

但是,切換到ip:8088就不行了。

根據以上兩篇文章,提出阿裏雲內網的eth0號段正好和Docker的虛擬網卡壹樣,都是172號段,是沖突的。

觀察到我用的雲服務器也是阿裏雲,通過ifconfig查了壹下。

而且看阿裏雲的內網ip,真的是172開頭的。

編輯配置文件/etc/docker/daemon.json,如果daemon.json文件不存在,則創建它。

重新啟動docker服務。

可以看到docker0的地址變了。

但是請註意,默認情況下,用docker啟動的服務將使用docker0,而用docker-compose啟動的服務則不會。上面的BR-12AA369E4A6對應的是docker-compose啟動的服務,可以看到網段還是172。

Docker-compose up使用了兩種用戶定義網段的方式(從它們的根指定)。

根據這篇文章,使用方法2,即修改daemon.json .但是我無法成功訪問。我的環境是Docker: 20.10.7,Docker-compose:1.24 . 1。

後來發現訪問不成功的原因是docker和防火墻的關系。可以關閉防火墻,打開docker,如果不能訪問就打開防火墻。在它們之間來回測試= =

後來我試著關閉firewalld,打開iptables。

當您啟用iptables時,在關閉時可以正常訪問它們,但在打開時不能正常訪問它們。

firewalld啟用時,docker和firewalld的啟動和關閉順序不同,有時可以在防火墻打開的情況下訪問,有時可以在防火墻關閉的情況下訪問。

但是容器內無法訪問外網,這個問題至今沒有解決。壹個迂回的解決方案是容器使用主機網絡模式。

問題:懷疑docker、firewalld和iptables之間存在設置問題。

Docker和IPtables

Docker端口映射和外部不可訪問問題

Docker和IPtables

另壹種無法訪問GitLab的情況是端口映射和配置文件錯誤。

快速解決方法:設置主機端口號和容器號相同,請參考以下博客。

使用GitLab Docker鏡像安裝GitLab (pit filling)

[圖像上傳失敗...(image-457 ad3-1636370071221)]

如果系統環境正常,安裝會很流暢,壹般不會出現奇怪的問題。

我把它安裝在不同的服務器上。

阿裏雲CentOS 7.6:訪問正常,內存不足出現502錯誤,容器內可以正常連接外網。

阿裏雲阿裏雲Linux 2:容器可能無法正常訪問,容器內無法正常連接外部網絡。懷疑是防火墻和docker的問題。

修改密碼: