寫內容
在這個文件目錄中,授予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的問題。
修改密碼: