Docker啟動(dòng)gitlab后22端口被占用如何解決
前言
這兩天一直在研究Docker啟動(dòng)gitlab的問題,郵件問題暫時(shí)告一段落,當(dāng)真正開始使用gitlab克隆的時(shí)候發(fā)現(xiàn),之前22端口被占用無法啟動(dòng),我就用2022端口做了一個(gè)映射,但是在gitab界面上提供的克隆地址類似這樣 git@gitlab.gameup.com:games/xxx.git,絲毫沒有端口 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è)在之前的文章中提到過,因?yàn)?80 和 443端口正??捎茫胁捎肏TTP方式的下載 git clone http://gitlab.gameup.com/games/xxx.git 是正常的,而 SSH下載的這種方式,因?yàn)樾薷牧四J(rèn)端口,導(dǎo)致提供的鏈接無法下載,即使我像這樣 git clone git@gitlab.gameup.com:2022/games/xxx.git 加上了端口也無法正常克隆。
用一種比較笨的方法就是,關(guān)閉SSH服務(wù)或者將宿主機(jī)的SSH服務(wù)改個(gè)端口,但這是一臺(tái)遠(yuǎn)程服務(wù)器,一般都通過SSH協(xié)議訪問,關(guān)閉不太現(xiàn)實(shí),修改端口的話倒是可行,可是之前這臺(tái)機(jī)器上運(yùn)行著多個(gè)任務(wù),這意味著很多服務(wù)腳本都得修改,所以也不是很好的辦法,不能因?yàn)榧恿藗€(gè)新服務(wù)就把原來的老腳本統(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,不僅加了端口號,還在前面加上了ssh://,怪不得我自己加端口號不能能用呢,關(guān)于這一點(diǎn)我也查到了相關(guān)解釋:
GitLab 提供的 SSH 克隆地址(如 git@gitlab.gameup.com:2022/games/xxx.git)是一種簡化格式,它沒有指定協(xié)議前綴 ssh:// 和端口號。這是因?yàn)槟J(rèn)情況下,Git 使用 SSH 協(xié)議連接,并默認(rèn)通過端口 22 來克隆和操作倉庫。因此,這種簡化格式省略了 ssh:// 前綴和端口號
對于標(biāo)準(zhǔn)端口(22),簡化格式的地址是有效的,因?yàn)?Git 客戶端會(huì)默認(rèn)使用 SSH 協(xié)議并連接到 22 端口,但是,當(dāng)你的 SSH 端口不同于 22(如使用 2022 時(shí)),Git 默認(rèn)的簡化格式就不適用了,需要顯式指定端口號或配置 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é)議的簡化形式,完整的地址應(yīng)該為ssh://git@gitlab.gameup.com:22/games/xxx.git
到此這篇關(guān)于Docker啟動(dòng)gitlab后22端口被占用如何解決的文章就介紹到這了,更多相關(guān)Docker 22端口被占用 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
編寫Dockerfile和構(gòu)建自定義鏡像的步驟與技巧
Docker已經(jīng)成為現(xiàn)代應(yīng)用程序開發(fā)和部署的重要工具之一,在Docker中,Dockerfile是定義和構(gòu)建自定義鏡像的鍵文件,本文將深入解讀Dockerfile的編寫和自定義鏡像的構(gòu)建過程,并分享一些實(shí)用的技巧和最佳實(shí)踐,需要的朋友可以參考下2023-07-07
輕松安裝docker并運(yùn)行docker swarm模式
這篇文章主要介紹了安裝docker并運(yùn)行docker swarm模式的相關(guān)知識,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友一起學(xué)習(xí)吧2016-12-12
Docker容器內(nèi)更新apt-get國內(nèi)加速實(shí)現(xiàn)過程
文章講述了使用國內(nèi)鏡像加速Docker容器內(nèi)apt-get的方法,通過修改配置文件指向國外鏡像源,解決了網(wǎng)速慢的問題2026-03-03
Docker容器交互之docker?exec?-it、Shell與容器運(yùn)行環(huán)境詳解
docker exec是Docker提供的一個(gè)命令,用于在已經(jīng)運(yùn)行的容器中執(zhí)行一個(gè)新的命令,這篇文章主要介紹了Docker容器交互之docker exec -it、Shell與容器運(yùn)行環(huán)境的相關(guān)資料,需要的朋友可以參考下2026-04-04
基于Docker部署Dubbo+Nacos服務(wù)的過程
這篇文章主要介紹了基于Docker部署Dubbo+Nacos服務(wù),本文介紹基于?Docker?部署一套?Dubbo?+?Nacos?的微服務(wù)環(huán)境,并解決容器里的?IP?及端口的訪問問題,需要的朋友可以參考下2023-02-02
Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
PVE下擴(kuò)展openwrt?for?x86分區(qū)大小方式
本文介紹了在PVE環(huán)境下如何對OpenWRT虛擬機(jī)的分區(qū)進(jìn)行擴(kuò)容,包括磁盤調(diào)整、軟件安裝、分區(qū)配置和系統(tǒng)引導(dǎo)等步驟,操作前需做好備份,以防數(shù)據(jù)丟失2024-10-10

