Docker啟動(dòng)gitlab后22端口被占用如何解決
前言
這兩天一直在研究Docker啟動(dòng)gitlab的問(wèn)題,郵件問(wèn)題暫時(shí)告一段落,當(dāng)真正開始使用gitlab克隆的時(shí)候發(fā)現(xiàn),之前22端口被占用無(wú)法啟動(dòng),我就用2022端口做了一個(gè)映射,但是在gitab界面上提供的克隆地址類似這樣 git@gitlab.gameup.com:games/xxx.git
,絲毫沒(méi)有端口 2022 的影子,執(zhí)行 git clone git@gitlab.gameup.com:games/xxx.git
果然不可下載,所以搜索了一圈解決方案總結(jié)在此,方便日后查找。
Docker啟動(dòng)參數(shù)
docker run --detach \ --hostname gitlab.gameup.com \ --publish 443:443 --publish 80:80 --publish 2022:22 \ --name gitlab \ --restart always \ --volume /export/docker/gitlab/config:/etc/gitlab \ --volume /export/docker/gitlab/logs:/var/log/gitlab \ --volume /export/docker/gitlab/data:/var/opt/gitlab \ registry.cn-hangzhou.aliyuncs.com/z5z/gitlab-ce:latest
這個(gè)在之前的文章中提到過(guò),因?yàn)?80 和 443端口正??捎茫胁捎肏TTP方式的下載 git clone http://gitlab.gameup.com/games/xxx.git
是正常的,而 SSH下載的這種方式,因?yàn)樾薷牧四J(rèn)端口,導(dǎo)致提供的鏈接無(wú)法下載,即使我像這樣 git clone git@gitlab.gameup.com:2022/games/xxx.git
加上了端口也無(wú)法正??寺?。
用一種比較笨的方法就是,關(guān)閉SSH服務(wù)或者將宿主機(jī)的SSH服務(wù)改個(gè)端口,但這是一臺(tái)遠(yuǎn)程服務(wù)器,一般都通過(guò)SSH協(xié)議訪問(wèn),關(guān)閉不太現(xiàn)實(shí),修改端口的話倒是可行,可是之前這臺(tái)機(jī)器上運(yùn)行著多個(gè)任務(wù),這意味著很多服務(wù)腳本都得修改,所以也不是很好的辦法,不能因?yàn)榧恿藗€(gè)新服務(wù)就把原來(lái)的老腳本統(tǒng)統(tǒng)改一遍吧,嘗試多次終于找到一個(gè)可以接收的方法。
解決方案
進(jìn)入gitlab容器
docker exec -it gitlab
修改配置文件
/etc/gitlab/gitlab.rb
中的內(nèi)容gitlab_rails['gitlab_shell_ssh_port'] = 2022
注意這個(gè)設(shè)置只是修改了 GitLab 的顯示信息,不會(huì)更改 GitLab 容器內(nèi)的 SSH 服務(wù)端口
執(zhí)行
gitlab-ctl reconfigure
即可修改執(zhí)行之后,再次查看gitlab下載地址發(fā)現(xiàn)改成了
ssh://git@gitlab.gameup.com:2022/games/xxx.git
,不僅加了端口號(hào),還在前面加上了ssh://
,怪不得我自己加端口號(hào)不能能用呢,關(guān)于這一點(diǎn)我也查到了相關(guān)解釋:
GitLab 提供的 SSH 克隆地址(如 git@gitlab.gameup.com:2022/games/xxx.git)是一種簡(jiǎn)化格式,它沒(méi)有指定協(xié)議前綴 ssh:// 和端口號(hào)。這是因?yàn)槟J(rèn)情況下,Git 使用 SSH 協(xié)議連接,并默認(rèn)通過(guò)端口 22 來(lái)克隆和操作倉(cāng)庫(kù)。因此,這種簡(jiǎn)化格式省略了 ssh:// 前綴和端口號(hào)
對(duì)于標(biāo)準(zhǔn)端口(22),簡(jiǎn)化格式的地址是有效的,因?yàn)?Git 客戶端會(huì)默認(rèn)使用 SSH 協(xié)議并連接到 22 端口,但是,當(dāng)你的 SSH 端口不同于 22(如使用 2022 時(shí)),Git 默認(rèn)的簡(jiǎn)化格式就不適用了,需要顯式指定端口號(hào)或配置 SSH,也就是寫成 ssh://git@gitlab.gameup.com:2022/games/xxx.git 的形式
總結(jié)
- 使用docker啟動(dòng)gitlab遭遇22端口占用時(shí)可以選擇其他端口映射
--publish 2022:22
- 修改映射端口后為了讓下載地址顯示正確,需要修改gitlab配置文件
gitlab_rails['gitlab_shell_ssh_port'] = 2022
git@gitlab.gameup.com:games/xxx.git
是一種ssh協(xié)議的簡(jiǎn)化形式,完整的地址應(yīng)該為ssh://git@gitlab.gameup.com:22/games/xxx.git
到此這篇關(guān)于Docker啟動(dòng)gitlab后22端口被占用如何解決的文章就介紹到這了,更多相關(guān)Docker 22端口被占用 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker系列compose?ymal文件解析學(xué)習(xí)
這篇文章主要介紹了Docker系列之compose?ymal文件解析學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Docker拉取鏡像過(guò)慢或卡死的解決方法(親測(cè)有效)
本文主要介紹了Docker拉取鏡像過(guò)慢或卡死的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項(xiàng)目
本文主要介紹了jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05docker 容器自定義 hosts 網(wǎng)絡(luò)訪問(wèn)操作
這篇文章主要介紹了docker 容器自定義 hosts 網(wǎng)絡(luò)訪問(wèn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03skywalking agent 關(guān)聯(lián)docker鏡像的多種方法
Apache SkyWalking 提供了多種方式來(lái)部署和使用 SkyWalking Agent,包括在 Docker 容器中運(yùn)行的應(yīng)用,本文給大家分享幾種方式將 SkyWalking Agent 集成到你的 Docker 應(yīng)用中,感興趣的朋友一起看看吧2025-04-04Docker端口映射后,外機(jī)訪問(wèn)不了的問(wèn)題及解決
Docker端口映射后外機(jī)訪問(wèn)不了的問(wèn)題可能包括:網(wǎng)絡(luò)配置錯(cuò)誤(需與宿主機(jī)在同一網(wǎng)段)、容器未啟動(dòng)、防火墻設(shè)置問(wèn)題(需關(guān)閉或開放映射端口)、未開啟IP轉(zhuǎn)發(fā)2025-02-02