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.mzph.cn/news/885153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在函数内部定义函数

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 在函数内部定义函数 在以下代码片段中&#xff0c;输出的结果是什么&#xff1f; def outer_function(x): def inner_function(y): return x y return inner_function add_five outer_func…

ffmpeg命令

1. 修改视频的数据速率 ffmpeg.exe -i video.mp4 -r 30 -c:v libx264 -b:v 1500k output.mp42. mp4与h264互相转换 ffmpeg.exe -i a.mp4 -vcodec h264 output.h264 ffmpeg.exe -i output.h264 -vcodec mpeg4 output.mp4

LabVIEW气体检测系统

随着工业化进程的加速&#xff0c;环境污染问题愈加严峻&#xff0c;尤其是有害气体的排放对人类生存环境构成了严重威胁。为了更好地监测这些有害气体&#xff0c;开发一个高效、准确且易于操作的气体检测系统显得尤为重要。LabVIEW软件开发的气体检测系统&#xff0c;采用激光…

【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作

目录 一、安装Zookeeper 二、配置Zookeeper集群 三、Zookeeper服务的启动与关闭 四、Zookeeper的shell操作 前情提要&#xff1a;延续上篇【Hadoop和Hbase集群配置】继续配置Zookeeper&#xff0c;开启三台虚拟机Hadoop1、Hadoop2、Hadoop3&#xff0c;进入终端&#xff0c…

Golang | Leetcode Golang题解之第547题身份数量

题目&#xff1a; 题解&#xff1a; func findCircleNum(isConnected [][]int) (ans int) {n : len(isConnected)parent : make([]int, n)for i : range parent {parent[i] i}var find func(int) intfind func(x int) int {if parent[x] ! x {parent[x] find(parent[x])}re…

Ardusub中添加自定义控制器

1.建议保留原程序 复制ardupilot文件夹到当前目录&#xff0c;命名为ardupilot_ARDC cp -r ardupilot ardupilot_copy2.切换Sub-4.5版本 Sub-4.1版本libraries里没有AC_CustomControl文件夹&#xff0c;我们需要用到这个文件夹所以需要进行切换分支&#xff0c;在当前ardupi…

ReactPress:重塑内容管理的未来

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;欢迎一起共建&#xff0c;感谢Star。 ReactPress&#xff1a;重塑内容管理的未来 在当今信息爆炸的时代&#xff0c;一个高效、易用的内容管理系统&#xff0…

云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例

云集电商&#xff0c;一家聚焦于社交电商的电商公司&#xff0c;专注于‘精选’理念&#xff0c;致力于为会员提供超高性价比的全品类精选商品&#xff0c;以“批发价”让亿万消费者买到质量可靠的商品。面对近年来外部环境的变化&#xff0c;公司对成本控制提出了更高要求&…

vue3实现一个无缝衔接、滚动平滑的列表自动滚屏效果,支持鼠标移入停止移出滚动

文章目录 前言一、滚动元素相关属性回顾一、实现分析二、代码实现示例&#xff1a;2、继续添加功能&#xff0c;增加鼠标移入停止滚动、移出继续滚动效果2、继续完善 前言 列表自动滚屏效果常见于大屏开发场景中&#xff0c;本文将讲解用vue3实现一个无缝衔接、滚动平滑的列表自…

三周精通FastAPI:36 OpenAPI 回调

官方文档&#xff1a; OpenAPI 回调 您可以创建触发外部 API 请求的路径操作 API&#xff0c;这个外部 API 可以是别人创建的&#xff0c;也可以是由您自己创建的。 API 应用调用外部 API 时的流程叫做回调。因为外部开发者编写的软件发送请求至您的 API&#xff0c;然后您的…

如何将现有VUE项目所有包更新到最新稳定版

更新有风险,Enter要谨慎!!! 要将项目中的所有 npm 包更新到最新稳定版&#xff0c;可以使用 npm-check-updates 工具。以下是具体步骤&#xff1a; 步骤一&#xff1a;安装 npm-check-updates 首先&#xff0c;全局安装 npm-check-updates 工具&#xff1a; npm install -g…

如何使用 C# 编写一个修改文件时间属性的小工具?

下面是简鹿办公一个用 C# 编写的简单工具&#xff0c;它可以批量修改文件的创建时间、最后访问时间和最后修改时间。我们将使用 .NET Framework 或 .NET Core 来实现这个功能。 完整示例代码 1. 创建一个新的 C# 控制台应用程序 您可以使用 Visual Studio 或 .NET CLI 创建一个…

使用PyQt5设计一个简易计算器

目录 设计UI图 代码 结果展示 设计UI图 代码 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import QFileDialog, QMainWindow, QMessageBox from untitled import Ui_MainWindow import sysclass…

动态规划-两个数组的dp问题——712.两个字符串的最小ASCII删除和

1.题目解析 题目来源 712.两个字符串的最小ASCII删除和——力扣 测试用例 2.算法原理 1.状态表示 由于如果直接求本题会发现无从下手&#xff0c;不妨根据正难则反的原理&#xff0c;反向求公共子序列的ASCII码最大值即可&#xff0c;于是就转化为求公共子序列的问题&#x…

elementui中的新增弹窗在新增数据成功后再新增 发现数据无法清除解决方法

elementui中的新增弹窗在新增数据成功后再新增 发现数据无法清除解决方法 试过网上其他方法&#xff0c;发现表单清空数据还是有问题&#xff0c;索性用下面方法解决: // 给弹框里面添加 v-ifvisible测试无问题&#xff0c;暂时先这样解决&#xff0c;如果有其他方法&#x…

基于Arduino的RGB灯按键控制

一.简介 通过按键控制RGB灯分别显示7种颜色&#xff1a;红 、绿、 蓝、 黄、 青、 紫、 白。 二.按键控制RGB灯原理 1)RGB全彩LED: LED由三个颜色分别为&#xff1a;红&#xff08;Red&#xff09;、绿&#xff08;Green&#xff09;、蓝&#xff08;Blue&#xff09;的LED…

hive数据查询语法

思维导图 基本查询 基本语法 SELECT [ALL | DISTINCT] 字段名, 字段名, ... FROM 表名 [inner | left outer | right outer | full outer | left semi JOIN 表名 ON 关联条件 ] [WHERE 非聚合条件] [GROUP BY 分组字段名] [HAVING 聚合条件] [ORDER BY 排序字段名 asc | desc…

前端小知识:我居然没学会用 split 方法?!

小伙伴们&#xff0c;你们会用 JavaScript 的 split 方法吗&#xff1f;最近我才发现&#xff0c;原来我多年来一直没真正掌握它&#xff0c;结果在解题时被卡住了。所以今天&#xff0c;我决定好好整理一下这个方法的用法。 在讨论问题之前&#xff0c;先来看一下 split 的两种…

VTK知识学习(2)-环境搭建

1、c方案 1.1下载源码编译 官网获取源码。 利用Cmake进行项目构建。 里面要根据实际使用的情况配置相关的模块哟&#xff0c;这个得你自行研究下了。 CMAKEINSTALLPREFIX--这个选项的值表示VTK的安装路径&#xff0c;默认的路径是C:/Program Files/VTK。该选项的值可不作更…

Halcon 从XML中读取配置参数

1、XML示例 以下是一个XML配置文件的示例,该文件包含了AOI(自动光学检测)算法的环境参数和相机逻辑参数: <AOI><!--AOI算法参数 20241106--><Env><!--环境参数--><Param name="GPUName" value="NVIDIA GeForce RTX 405…