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 果然不可下載,所以搜索了一圈解決方案總結(jié)在此,方便日后查找。
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 加上了端口也無法正常克隆。
用一種比較笨的方法就是,關(guān)閉SSH服務或者將宿主機的SSH服務改個端口,但這是一臺遠程服務器,一般都通過SSH協(xié)議訪問,關(guān)閉不太現(xiàn)實,修改端口的話倒是可行,可是之前這臺機器上運行著多個任務,這意味著很多服務腳本都得修改,所以也不是很好的辦法,不能因為加了個新服務就把原來的老腳本統(tǒng)統(tǒng)改一遍吧,嘗試多次終于找到一個可以接收的方法。
解決方案
進入gitlab容器
docker exec -it gitlab修改配置文件
/etc/gitlab/gitlab.rb中的內(nèi)容gitlab_rails['gitlab_shell_ssh_port'] = 2022
注意這個設置只是修改了 GitLab 的顯示信息,不會更改 GitLab 容器內(nèi)的 SSH 服務端口
執(zhí)行
gitlab-ctl reconfigure即可修改執(zhí)行之后,再次查看gitlab下載地址發(fā)現(xiàn)改成了
ssh://git@gitlab.gameup.com:2022/games/xxx.git,不僅加了端口號,還在前面加上了ssh://,怪不得我自己加端口號不能能用呢,關(guān)于這一點我也查到了相關(guān)解釋:
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 的形式
總結(jié)
- 使用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
到此這篇關(guān)于Docker啟動gitlab后22端口被占用如何解決的文章就介紹到這了,更多相關(guān)Docker 22端口被占用 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pipework docker無法使用ip netns命令解決辦法
這篇文章主要介紹了pipework docker無法使用ip netns命令解決辦法的相關(guān)資料,需要的朋友可以參考下2016-10-10
docker compose 安裝 minio 文件服務器的流程
這篇文章主要介紹了docker compose安裝minio文件服務器的流程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2025-06-06
docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)
當我們創(chuàng)建容器之后,不可避免會遇到修改配置文件的操作,下面這篇文章主要給大家介紹了關(guān)于docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
docker自定義網(wǎng)橋docker0及docker的開啟,關(guān)閉,重啟命令操作
這篇文章主要介紹了docker自定義網(wǎng)橋docker0及docker的開啟,關(guān)閉,重啟命令操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

