手摸手教你使用 Docker 快速搭建 Gitlab 服务

news2025/1/15 17:11:16

前言

Glitlab 比较占用内存,官方建议最低配置为 2核4G。我的服务器刚刚好是2核4G,但是还装了 Docker 跑一些其他服务,所以以防万一,还是选择在本地的虚拟机中进行安装。

如果你有一台配置较高的服务器那就更好了,一步到位。如果不想装虚拟机,服务器又太贵,也可以选择按量付费的方式购买一台2核8G的服务器,最便宜的价格是每小时四毛钱左右,稍微好一些的配置七八毛,用不了几块钱,就能学会 Gitlab 的搭建和使用。

虚拟机的安装, CentOS 系统的安装以及 Docker 环境的配置就不再演示,网上有很多非常详细的教程。我们直接上手安装 Gitlab 。

虚拟机 CentOS 的一些配置

这一步骤是为虚拟机 IP 设置一个域名,方便将来在本地主机访问。比如我的虚拟机的 IP 是 192.168.159.128,如果不配置域名的话,将来访问就是这样的:

image-20221112223901827

配置域名后,就可以直接使用域名访问了:

image-20221112224332830

当然这都是假的,并不是真实域名,外网并不能访问的。仅仅是为了看上去更好看而已。所以这一步是可以略过的。

设置虚拟机的域名

开启虚拟机并登录 CentOS 系统,查看虚拟机的 IP:

$ ifconfig

image-20221112224605694

使用 vim 编辑 hosts 文件:

$ vim /etc/hosts

I 进入编辑模式,在文件末行追加上虚拟机的 IP 和要设置的域名:

192.168.159.128 gitlab.kunwu.top

这个域名随便起。

image-20221112115916700

保存文件并退出。

本地主机上的配置

本地主机可以直接通过虚拟机域名访问虚拟机中的服务。为了访问虚拟机的域名,也需要配置下 hosts 文件。Windows 系统的 hosts 文件位于 C:\Windows\System32\drivers\etc\ 目录。

这个文件不能直接修改,将其拷贝到桌面或者其他路径,打开进行修改,同样在文件最后一行输入虚拟机的 IP 和域名:

192.168.159.128  gitlab.kunwu.top

保存文件,并将其复制回原来的目录,覆盖即可。

这样,当 Windows 本地访问 gitlab.kunwu.top ,就会被解析到 192.168.159.128 这个 IP,也能能访问虚拟机中的服务了。

安装 Gitlab

现在开始使用 Docker 安装 Gitlab。

下载镜像

访问 Docker Hub 查看 gitlab 镜像:

image-20221112225806690

下载最新的镜像:

$ docker pull gitlab/gitlab-ce

这是 Gitlab 社区版的镜像,开源免费。

镜像比较大,下载需要两三分钟。查看下载好的镜像:

$ docker images

image-20221112230018024

新建数据卷目录

如果要修改一个容器的配置或者查看它的日志,需要进入到容器里面,不是很方便。所以通常会给容器挂载数据卷,将容器内的重要目录,映射到宿主机中。

我们需要为 Gitlab 容器设置三个数据卷,也就需要在 Centos 系统中新建三个目录:

$ mkdir -p /data/gitlab/config # 映射到 Glitlab 容器中的配置目录
$ mkdir -p /data/gitlab/logs # 映射到 Glitlab 容器中的日志目录
$ mkdir -p /data/gitlab/data # 映射到 Glitlab 容器中的数据目录

运行容器

$ docker run -d \
--hostname gitlab.kunwu.top \
-p 443:443 -p 80:80 -p 23:22 \
--name gitlab \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce

参数说明:

  • -d:已守护进程的方式运行容器。这样就可以让 gitlab 服务在后台运行而不影响前台的操作。

  • –hostname:设置主机名字。和我们上面给虚拟机设置的域名保持一致即可。如果是云服务器且绑定了域名,这里就是云服务器的域名。

  • -p:gitlab 需要暴露三个端口,443 和 80 是访问 Gitlab 的 Web 页面,22 是使用 Git 管理仓库时用到,但是由于宿主机的 22 被我的 sshd 服务占用了,所以这里映射到了 23。

  • –name:容器的名字

  • –restart:当容器启动失败时总是尝试自动重启

  • -v:挂载数据卷,这样就能方便修改为容器内服务的配置,同时方便做容器数据的迁移

使用镜像创建容器很快,按下回车就能创建好,返回容器的 ID

image-20221113130024232

但是 Gitlab 比较大,容器启动时稍微慢一些。可以执行下面的命令查看下 gitlab 容器的日志:

$ docker logs -f gitlab
  • -f:在命令行中查看实时日志。默认情况下日志是输出文件中的。

容器启动成功后,Windows 本地机器就能访问了。

打开浏览器访问 http://gitlab.kunwu.top

image-20221112121335651

登录

使用初始密码登录

第一次访问 Gitlab 需要重置 root 账号的密码。

前面启动 Gitlab 容器之前,设置了它的配置文件的数据卷,来到此目录:

$ cd /data/gitlab/config

image-20221112233705857

有一个 initial_root_password 文件,root 用户的初始密码密码就在此文件中:

$ cat initial_root_password

image-20221112233730148

将其复制,然后回到浏览器中输入并点击登录按钮,就能完成第一次登录了。

image-20221112233806770

修改语言

系统默认为英语,修改为中文。

点击右上角的用户头像,选择“Preferences”偏好设置:

image-20221112233959148

来到本地化设置,选择中文,并保存配置。可以看到,目前英文做了 100% 的翻译,中文做到了 95% 的翻译,不熟悉英文的朋友使用起来也没有任何问题了。

image-20221112234221131

刷新浏览器,就切换为中文界面了。

image-20221113130811976

修改默认密码

Root 用户的初始密码在配置文件中只保存 24 小时,太长也不方便记忆。所以登录后先修改默认的初始密码。

点击右上角头像,选择偏好设置,然后选择左侧菜单栏的密码选项,完成密码的修改。新密码的长度需要不少于8个字符。

image-20221113131109755

然后保存密码,重新登录 Gitlab。

测试:上传一个仓库

基本的配置差不多了,现在上传本地的一个仓库到 Gitlab 中测试下好不好用。

首先在 Gitlab 上新建仓库:

将远程仓库克隆到本地。此时还没有配置 SSH 秘钥,所以使用 HTTP 克隆:

$ git clone http://gitlab.kunwu.top/root/hello-gitlab.git

image-20221113131819780

本地仓库中修改下 README.md 文件:

image-20221113132117697

然后提交并推送到 Gitlab 仓库中:

$ git add .
$ git commit -m 'update'
$ git push origin main

需要输入 Gitlab 账号的用户名和密码:

image-20221113133409605

image-20221113133424152

回到 Gitlab 仓库中,README.md 文件内容已经更新了:

image-20221113133524335

总结

本文在 CentOS 虚拟机中使用 Docker 快速搭建了一个 Gitlab 服务,整个过程非常丝滑。这就是 Docker 的优点。

搭建 Gitlab 需要注意的点有:

  • Gitlab 的最低配置是 2核4G,低于这个配置可能出现各种未知的问题
  • 使用云服务器搭建的时候最好再注册一个域名,使用起来更舒服
  • 启动 Gitlab 容器时注意绑定 hostname 为域名
  • 注意端口占用造成的冲突

感谢观看,欢迎下次光临~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10505.html

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

相关文章

nodejs+vue+elementui图书馆销售网上书城管理系统express228

目 录 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 摘 要 I ABSTRACT I 目 录 III 第1章 绪论 1 1.1开发背景 1 1.2开发意义 1 1.3研究内容 1 第2章 主要技术和工具介绍 3 下面我们讲解 1、 node_modules文…

【数据结构】队列详解 栈和队列OJ题 —— 用队列实现栈、用栈实现队列、设计循环队列

文章目录前言队列的概念队列的结构队列的实现结构设计接口总览初始化销毁入队列出队列取对头数据取队尾数据判空计算队列大小OJ题用队列实现栈用栈实现队列设计循环队列结语前言 今天的内容分为两大块:队列讲解 和 OJ题。队列讲解部分内容为:队列概念&a…

Android App开发图像加工中卡片视图CardView和给图像添加装饰的讲解以及实战(附源码 简单易懂)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、卡片视图 随着手机越来越先进,开发者已经不满足简单地显示一张张图片,而要设计更多的花样,比如Android提供了一个卡片视图CardView,顾名思义它拥有卡片式的圆角边框&#xff…

[附源码]java毕业设计健身房管理系统论文2022

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

深度剖析 Vue3 如何通过虚拟DOM更新页面

上一讲我们主要介绍了 Vue 项目的首次渲染流程,在 mountComponent 中注册了effect 函数,这样,在组件数据有更新的时候,就会通知到组件的 update 方法进行更新 Vue 中组件更新的方式也是使用了响应式 虚拟 DOM 的方式&#xff0c…

git 命令行其实真的很好用

使用命令行操作git,我觉得是最简单、最直接的方式,最开始使用git的时候特别喜欢这种方式。后来,就不再使用命令行,而是选择了其他可视化的工具,如idea自带的插件、sourceTree、TortoiseGit、GitKraken。发生的转变的原…

AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼

💡 作者:韩信子ShowMeAI 📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42 📘 自然语言处理实战系列:https://www.showmeai.tech/tutorials/45 📘 计算机视觉实战系列:h…

Jenkins 10 问 10 答,你想知道都在这

大家好啊,我是大田。 今天汇总一下近几周关于 Jenkins 问题。 1、如何安装 Jenkins? 答:一步一步教你安装部署 Jenkins,不信你安不上 2、忘记登录密码? 答:Jenkins 忘记登录密码解决办法 3、jenkins中缺少…

基于 IDEA 搭建 RocketMQ-4.6 源码环境

RocketMQ 架构 源码搭建前, 需要理解 RocketMQ 的四个重要组件, 以及 RocketMQ 的工作流程: NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。 Broker部署相对复杂,Broker分为Master…

Java基础之《undertow容器》

一、什么是undertow 1、undertow是springboot默认支持的三种servlet容器之一。 tomcat、jetty、undertow 2、undertow怎么读 under-tow 3、undertow是RedHat(红帽公司)的开源产品,采用java开发,是一款灵活、高性能的web服务器&…

大学生游戏静态HTML网页设计-(北京冬奥会12页 带js 带视频 轮播图)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 CSS:样式 在操作方面上运用了html5和css3, 采用…

stack容器、queue容器(20221116)

一、stack容器 1、基本概念 先进后出的数据结构,只有一个出口(栈顶)。 栈不允许有遍历行为,可以判断是否为空(empty),也可以知道其元素个数(size) 2、常用接口 构造函数: stac…

初始MySQL

目录 一、什么是数据库 二、SQL分类 三、库的操作 四、表的操作 五、数据类型 六、表的约束 什么是数据库 存储数据用文件就可以了,为什么还要有数据库? 文件保存数据有以下几个缺点: 文件的安全性问题文件不利于数据查询和管理 文件…

电脑视频怎么录制?好用的电脑录屏方法

在日常使用电脑的时候,很多小伙伴经常会遇到需要录制电脑视频的时候。但网上各种眼花缭乱的电脑录屏方法,很多小伙伴看了表示自己根本没有学会。今天就给大家分享2个简单好用的电脑录屏方法,看完后轻松掌握电脑录屏。 一.使用Wind…

主成分分析法在图像压缩和重建中的应用研究-含Matlab代码

目录一、引言二、主成分分析法概念及性质2.1 概念2.2 性质三、计算步骤3.1 计算相关系数矩阵3.2 计算特征值与特征向量3.3 计算主成分贡献率及累计贡献率3.4 计算主成分载荷3.5 各主成分的得分四、图像压缩与重建实验分析五、参考文献六、Matlab代码获取一、引言 主成分分析法…

【附源码】Python计算机毕业设计网上购物平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

最火后台管理系统 RuoYi 项目探秘,之二

上篇中,我们初步观察了 RuoYi 的项目结构,并在最后实际运行起了项目。我们也发现了作者不好的代码习惯,作为反例,我们应该要养成良好的编码习惯。本篇开始,我们会按照 Web 界面逐一对具体子项目的实现的功能进行探秘。…

Qt使用7z压缩和解压示例(支持文件夹递归、多文件不同位置)

1,简介 Qt自带的压缩处理类功能不太完善,也不支持中文路径。 这是我封装好的一个Qt调用7z处理压缩解压的工具类 ZipAPI,提供了几个简单易用的接口。 写压缩解压代码从此非常方便快捷! 支持中文路径,支持常规的压缩解…

Cell:水平基因转移在昆虫中广泛存在,增强鳞翅目雄性昆虫求偶行为

期刊:Cell 影响因子:66.85 发表时间:2022年8月 一、研究背景 昆虫起源于约4.8亿年前,是地球上最繁盛的动物类群,已被描述种超过100万,占所有动物物种50%以上。这个古老的动物类群在…

插画、插图网站,免费(商用)

本期分享5个高质量插画网站,免费可商用,设计必备,建议收藏!1、Undraw https://undraw.co/illustrationsUndraw是一个扁平风格插画图库,里面有大量的插画,可以支持在线更改配色,网站提供免费下载…