Docker啟動gitlab后22端口被占用如何解決
前言
這兩天一直在研究Docker啟動gitlab的問題,郵件問題暫時告一段落,當真正開始使用gitlab克隆的時候發(fā)現(xiàn),之前22端口被占用無法啟動,我就用2022端口做了一個映射,但是在gitab界面上提供的克隆地址類似這樣 git@gitlab.gameup.com:games/xxx.git
,絲毫沒有端口 2022 的影子,執(zhí)行 git clone git@gitlab.gameup.com:games/xxx.git
果然不可下載,所以搜索了一圈解決方案總結在此,方便日后查找。
Docker啟動參數(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
這個在之前的文章中提到過,因為 80 和 443端口正??捎?,所有采用HTTP方式的下載 git clone http://gitlab.gameup.com/games/xxx.git
是正常的,而 SSH下載的這種方式,因為修改了默認端口,導致提供的鏈接無法下載,即使我像這樣 git clone git@gitlab.gameup.com:2022/games/xxx.git
加上了端口也無法正??寺?。
用一種比較笨的方法就是,關閉SSH服務或者將宿主機的SSH服務改個端口,但這是一臺遠程服務器,一般都通過SSH協(xié)議訪問,關閉不太現(xiàn)實,修改端口的話倒是可行,可是之前這臺機器上運行著多個任務,這意味著很多服務腳本都得修改,所以也不是很好的辦法,不能因為加了個新服務就把原來的老腳本統(tǒng)統(tǒng)改一遍吧,嘗試多次終于找到一個可以接收的方法。
解決方案
進入gitlab容器
docker exec -it gitlab
修改配置文件
/etc/gitlab/gitlab.rb
中的內容gitlab_rails['gitlab_shell_ssh_port'] = 2022
注意這個設置只是修改了 GitLab 的顯示信息,不會更改 GitLab 容器內的 SSH 服務端口
執(zhí)行
gitlab-ctl reconfigure
即可修改執(zhí)行之后,再次查看gitlab下載地址發(fā)現(xiàn)改成了
ssh://git@gitlab.gameup.com:2022/games/xxx.git
,不僅加了端口號,還在前面加上了ssh://
,怪不得我自己加端口號不能能用呢,關于這一點我也查到了相關解釋:
GitLab 提供的 SSH 克隆地址(如 git@gitlab.gameup.com:2022/games/xxx.git)是一種簡化格式,它沒有指定協(xié)議前綴 ssh:// 和端口號。這是因為默認情況下,Git 使用 SSH 協(xié)議連接,并默認通過端口 22 來克隆和操作倉庫。因此,這種簡化格式省略了 ssh:// 前綴和端口號
對于標準端口(22),簡化格式的地址是有效的,因為 Git 客戶端會默認使用 SSH 協(xié)議并連接到 22 端口,但是,當你的 SSH 端口不同于 22(如使用 2022 時),Git 默認的簡化格式就不適用了,需要顯式指定端口號或配置 SSH,也就是寫成 ssh://git@gitlab.gameup.com:2022/games/xxx.git 的形式
總結
- 使用docker啟動gitlab遭遇22端口占用時可以選擇其他端口映射
--publish 2022:22
- 修改映射端口后為了讓下載地址顯示正確,需要修改gitlab配置文件
gitlab_rails['gitlab_shell_ssh_port'] = 2022
git@gitlab.gameup.com:games/xxx.git
是一種ssh協(xié)議的簡化形式,完整的地址應該為ssh://git@gitlab.gameup.com:22/games/xxx.git
到此這篇關于Docker啟動gitlab后22端口被占用如何解決的文章就介紹到這了,更多相關Docker 22端口被占用 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項目
本文主要介紹了jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項目,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05docker 容器自定義 hosts 網(wǎng)絡訪問操作
這篇文章主要介紹了docker 容器自定義 hosts 網(wǎng)絡訪問操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03skywalking agent 關聯(lián)docker鏡像的多種方法
Apache SkyWalking 提供了多種方式來部署和使用 SkyWalking Agent,包括在 Docker 容器中運行的應用,本文給大家分享幾種方式將 SkyWalking Agent 集成到你的 Docker 應用中,感興趣的朋友一起看看吧2025-04-04