查看是否拉取成功
編寫內容
在該文件目錄下,授予 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.g.
查看上述配置文件,查找錯誤原因
[圖片上傳失敗...(image-e9789-1636370071222)]
雖然容器啟動成功,但是卻沒辦法根據 ip:port 訪問gitlab
拉取tomcat鏡像
為了測試8088端口是否可用,先把gitlab的容器暫停
啟動tomcat容器,並將tomcat容器的8080端口映射到宿主機的8088端口
壹切正常,訪問ip:8088,還是和以前壹樣訪問不了
因為之前系統的防火墻壹直是關閉的並且其它的服務能正常訪問,所以沒有懷疑是防火墻的問題
把防火墻打開
訪問之前能正常訪問的服務,果然沒法正常訪問。
把該服務的端口開發,正常訪問。
打開8088端口
再次訪問
返回tomcat的404頁面: HTTP Status 404 – Not Found
雖然是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-12aa369ee4a6 對應的是docker-compose啟動的服務,可以看到還是172的網段。
docker-compose up使用自定義的網段的兩種方式(從其根源指定)
根據該文使用方法2,即修改 daemon.json 。但並不能成功訪問,我的環境是: docker:20.10.7 , docker-compose:1.24.1
後面發現訪問不成功的原因在於 docker 與防火墻之間的關系,可以關掉防火墻,開啟 docker ,不能訪問則打開防火墻。在它們之間來回試探 = =。
後面嘗試過關閉 firewalld ,打開 iptables 。
在啟用 iptables 時,壹般關掉 iptables 可以正常訪問,打開則不能正常訪問。
在啟用 firewalld 時,按照 docker 和 firewalld 之間啟動關閉的順序不同,有時是開著防火墻能訪問,有時是關了防火墻能訪問。
但是容器內不能訪問外部網絡,該問題現在還未解決。 有壹種迂回的解決方法就是容器使用 host 網絡模式
問題 :懷疑是docker,firewalld與iptables之間的設置問題
Docker與IPtables
docker 端口映射 及外部無法訪問問題
Docker and IPtables
還有壹種訪問不了GitLab的情況是端口映射和配置文件有誤。
快速的解決方法:將宿主機端口號和容器號設置相同,可參考下面的博客。
利用GitLab Docker images安裝GitLab(填坑)
[圖片上傳失敗...(image-457ad3-1636370071221)]
如果系統環境正常,安裝會十分順利,壹般不會有奇怪的問題。
我在不同的服務器安裝過
阿裏雲 CentOS 7.6 : 訪問正常,但是因內存不夠出現502錯誤,容器內可正常連接外部網絡
阿裏雲 Alibaba Cloud Linux 2 : 可能不能正常訪問容器,容器內不能正常連接外部網絡。懷疑是防火墻與docker的問題。
修改密碼: