当前位置: 首页 > news >正文

Docker启动gitlab后22端口被占用如何解决

文章目录

  • 前言
  • Docker启动参数
  • 解决方案
  • 总结

前言

这两天一直在研究Docker启动gitlab的问题,邮件问题暂时告一段落,当真正开始使用gitlab克隆的时候发现,之前22端口被占用无法启动,我就用2022端口做了一个映射,但是在gitab界面上提供的克隆地址类似这样 git@gitlab.gameup.com:games/xxx.git,丝毫没有端口 2022 的影子,执行 git clone git@gitlab.gameup.com:games/xxx.git 果然不可下载,所以搜索了一圈解决方案总结在此,方便日后查找。

Docker启动参数

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协议访问,关闭不太现实,修改端口的话倒是可行,可是之前这台机器上运行着多个任务,这意味着很多服务脚本都得修改,所以也不是很好的办法,不能因为加了个新服务就把原来的老脚本统统改一遍吧,尝试多次终于找到一个可以接收的方法。

解决方案

  1. 进入gitlab容器 docker exec -it gitlab

  2. 修改配置文件 /etc/gitlab/gitlab.rb 中的内容

    gitlab_rails['gitlab_shell_ssh_port'] = 2022
    

    注意这个设置只是修改了 GitLab 的显示信息,不会更改 GitLab 容器内的 SSH 服务端口

  3. 执行 gitlab-ctl reconfigure 即可

    修改执行之后,再次查看gitlab下载地址发现改成了 ssh://git@gitlab.gameup.com:2022/games/xxx.git,不仅加了端口号,还在前面加上了 ssh://,怪不得我自己加端口号不能能用呢,关于这一点我也查到了相关解释:

GitLab 提供的 SSH 克隆地址(如 git@gitlab.gameup.com:2022/games/xxx.git)是一种简化格式,它没有指定协议前缀 ssh:// 和端口号。这是因为默认情况下,Git 使用 SSH 协议连接,并默认通过端口 22 来克隆和操作仓库。因此,这种简化格式省略了 ssh:// 前缀和端口号

对于标准端口(22),简化格式的地址是有效的,因为 Git 客户端会默认使用 SSH 协议并连接到 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协议的简化形式,完整的地址应该为 ssh://git@gitlab.gameup.com:22/games/xxx.git

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

不要再抑郁下去了孩子,你要像一个,神经病一样活泼开朗,不要太在乎别人的目光,因为没人会注意你。


http://www.mrgr.cn/news/68148.html

相关文章:

  • Java什么是变量?变量有什么用?
  • 使用git lfs向huggingface提交较大的数据或者权重
  • 大厂面试真题-如果使用guava limiter实现实例级别的缓存
  • 在Scrapy爬虫中应用Crawlera进行反爬虫策略
  • 信息安全工程师(78)网络安全应急响应技术与常见工具
  • 速盾:企业该如何判断高防cdn的质量?
  • Swift 开发教程系列 - 第9章:错误处理
  • 秒懂Linux之序列化及反序列化
  • 【VR】PICO 手部追踪 steamvr内无法识别,依旧识别手柄的解决方案
  • 羽星股份引领连锁业数智化转型,厦门羽星科技公司逆势增长剑指纳斯达克
  • 【Apache ECharts】<农作物病害发生防治面积>
  • win 查看显卡支持 CUDA版本
  • 如何找到捏蛋糕和修牛蹄类型的解压视频素材?
  • 什么是WebAssembly,有什么特点
  • FreeRTOS 13:FreeRTOS队列的读原理
  • Qt第三课 ----------容器类控件
  • 11.07学习
  • 泷羽sec学习打卡-shodan扫描7
  • 初识Java EE和Spring Boot
  • Java 类和对象(下)
  • windows安装nvm并配置换源
  • 机器学习4_支持向量机_核函数——MOOC
  • 深入理解 TCP 的握手与挥手机制:为何握手 3 次,挥手 4 次?
  • 算法题求解-给定一个整数序列,要求将序列中所有负数都放于所有非负数之前
  • windows 进程降权和提权代码示例(2) c++
  • Redis设计与实现 学习笔记 第十六章 Sentinel