Docker啟動(dòng)gitlab后22端口被占用如何解決
前言
這兩天一直在研究Docker啟動(dòng)gitlab的問(wèn)題,郵件問(wèn)題暫時(shí)告一段落,當(dāng)真正開(kāi)始使用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,也就是寫(xiě)成 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 復(fù)制容器的實(shí)現(xiàn)步驟
本文主要介紹了docker 復(fù)制容器的實(shí)現(xiàn)步驟,主要介紹了三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
關(guān)于Dockerfile鏡像制作完整實(shí)例
本文詳細(xì)介紹了如何使用Docker制作鏡像,并通過(guò)實(shí)際應(yīng)用發(fā)版展示了制作過(guò)程,主要內(nèi)容包括創(chuàng)建和啟動(dòng)Docker容器的腳本(init.sh、start.sh、stop.sh、restart.sh),以及配置目錄,文章還討論了Docker容器IP地址的作用,并總結(jié)了制作新鏡像的基本步驟2024-11-11
pipework docker無(wú)法使用ip netns命令解決辦法
這篇文章主要介紹了pipework docker無(wú)法使用ip netns命令解決辦法的相關(guān)資料,需要的朋友可以參考下2016-10-10
docker compose 安裝 minio 文件服務(wù)器的流程
這篇文章主要介紹了docker compose安裝minio文件服務(wù)器的流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-06-06
docker如何對(duì)已經(jīng)啟動(dòng)的容器添加目錄映射(掛載目錄)
當(dāng)我們創(chuàng)建容器之后,不可避免會(huì)遇到修改配置文件的操作,下面這篇文章主要給大家介紹了關(guān)于docker如何對(duì)已經(jīng)啟動(dòng)的容器添加目錄映射(掛載目錄)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
docker save鏡像時(shí)進(jìn)行g(shù)zip壓縮方式
文章介紹了三種Docker鏡像壓縮方法:管道壓縮(推薦,使用gzip/pigz,速度快)、xz壓縮(高壓縮比但慢)、及先保存再壓縮(不推薦,占空間),建議日常用管道gzip,傳輸用xz,避免直接保存未壓縮文件2025-08-08
docker自定義網(wǎng)橋docker0及docker的開(kāi)啟,關(guān)閉,重啟命令操作
這篇文章主要介紹了docker自定義網(wǎng)橋docker0及docker的開(kāi)啟,關(guān)閉,重啟命令操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03

