文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker 搭建 Gitlab 服务器(修改端口)

2023-09-15 05:56

关注

环境

Docker version 23.0.3GitLab Community Edition 15.10.2

Gitlab安装教程

安装GitLab官方推荐至少4G的内存,否则可能会卡顿或者运行非常慢,建议采用4G以上的云服务进行测试,或者本地搭建虚拟机的方式来做。

搜索Gitlab镜像

docker search gitlab

下载Gitlab社区免费版最新镜像

说明:ce 表示社区免费版 ,ee 表示企业付费版

docker pull gitlab/gitlab-ce

运行Gitlab镜像

docker run -d \--name gitlab \--restart always \-p 8443:443 -p 8080:80 -p 8022:22 \-v /home/gitlab/config:/etc/gitlab \-v /home/gitlab/logs:/var/log/gitlab \-v /home/gitlab/data:/var/opt/gitlab \gitlab/gitlab-ce

参数说明

  • -d 指定后台运行
  • –hostname 指定主机名
  • –name 指定容器名
  • -p 端口映射;https端口:443;http端口:80;ssh端口:22
  • –restart always 容器停止后的重启策略: 容器退出时总是重启
  • -v 指定挂载存储卷首先在宿主主机创建对应的目录

配置

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb。
接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问

#进容器内部docker exec -it gitlab /bin/bash #修改gitlab.rbvi /etc/gitlab/gitlab.rb #加入如下#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口,这里的端口号要与启动容器时的端口映射相对应external_url 'http://192.168.124.194'#ssh主机ipgitlab_rails['gitlab_ssh_host'] = '192.168.124.194'#ssh连接端口gitlab_rails['gitlab_shell_ssh_port'] = 8022 # 让配置生效gitlab-ctl reconfigure#重启gitlab gitlab-ctl restart#退出容器 exit

有些博主说还需要修改/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml这个文件中的端口,其实没必要,gitlab-ctl reconfigure这一步已经跟新过来了。

浏览器访问

浏览器访问http://192.168.124.194:8080就可以看到了
在这里插入图片描述
第一次访问,账号是root,密码在容器中/etc/gitlab/initial_root_password或主机/home/gitlab/config/initial_root_password,这个文件24小时后会删除。

修改外部访问端口

修改外部访问端口其实就是修改docker对gitlab容器的端口映射。

方法一: 删除原有容器,重新建新容器

这个解决方案最为简单,把原来的容器删掉,重新建一个。当然这次不要忘记加上端口映射。

# 删除容器docker rm gitlab# 构建容器,命令参考上面,注意修改端口号

优缺点:优点是简单快捷,在测试环境使用较多。缺点是如果是数据库镜像,那重新建一个又要重新配置一次,就会比较麻烦。

方法二:修改容器配置文件,重启docker服务

我们需要新增一个端口,就是通过这个方式处理的,亲测有效。
首先关闭docker服务

systemctl stop docker

关闭之后,找到容器的配置文件路径,通常都是安装在这个路径下方

cd /var/lib/docker/containers

然后我们在ls查看一下容器,找我们想要修改的容器ID
进入后有个 hostconfig.json 文件
在这里插入图片描述
如上图所示,文件中其中有一项是PortBindings:

按需修改端口,然后重启docker服务,再启动容器服务就可以了

systemctl restart docker

优缺点:这个方法的优点是没有副作用,操作简单。缺点是需要重启整个docker服务,如果在同一个宿主机上运行着多个容器服务的话,就会影响其他容器服务。
注意:一定要先停掉docker修改配置才能成功。

方法三:利用docker commit新构镜像

docker commit:把一个容器的文件改动和配置信息commit到一个新的镜像。这个在测试的时候会非常有用,把容器所有的文件改动和配置信息导入成一个新的docker镜像,然后用这个新的镜像重起一个容器,这对之前的容器不会有任何影响。
停止docker容器

docker stop gitlab

commit该docker容器

docker commit gitlab new_gitlab:tag

重新起一个容器

docker run ...

优缺点:这种方式的优点是不会影响统一宿主机上的其他容器,缺点是管理起来显得比较乱,没有第二种方法那么直观

修改root密码

# 进入容器内gitlab-rails console -e production #等待ruby控制台出来,时间还是挺长的,我等了有十多分钟!

在这里插入图片描述

user = User.where(id: 1).firstuser.password="bnadiidphq" #修改密码为bnadiidphq, 密码太简单等下保存不了user.password_confirmation="bnadiidphq" #确认密码user.save! #保存,!不能少quit #退出

注意点

主要是要注意docker跟容器内的端口映射,我们外面访问的端口号,并不是容器中的端口号,通过映射关系才能访问到,如上面的8080端口,映射到容器内的80端口一样。
如果按上面的方式还没成功,建议查看下端口占用情况

netstat -nultp

在这里插入图片描述
还有就是防火墙是否开着,如果开着,就得配置防火墙开放服务器的端口
相关命令如下:

systemctl status firewalld #查看防火墙状态systemctl start firewalld #开启防火墙systemctl stop firewalld #关闭防火墙firewall-cmd --list-ports #查看开放端口#设置8082-8084端口开放firewall-cmd --zone=public --add-port=8080/tcp --permanentfirewall-cmd --list-ports #再次查看是否开放

来源地址:https://blog.csdn.net/weixin_41311176/article/details/130153927

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯