Docker中安装Gitlab详细全教程

news/2024/10/28 0:28:19/

Docker中安装Gitlab详细全教程

  • 前言
  • 一、安装Gitlab
    • 1.搜索影像
    • 2.下载影像
    • 3.启动Git服务
    • 4.查看Gitlab是否已经启动
  • 二、配置Gitlab
    • 1.首先,先进入容器
    • 2.修改gitlab.rb文件
    • 3.修改gitlab.rb文件中的IP与端口号
    • 3.配置gitlab.yml文件
    • 4.重启服务
    • 5.退出命令行,推出容器命令
    • 6.使用浏览器打开Gitlab
  • 二、常用命令


前言

最近工作需要,部署了一下测试环境,自动化部署,涉及到的内容有,Docker,Mysql,Gitlab,Jenkins等,下面记录的是在Docker中安装Gitlab,如果没有安装Docker的同学,传送门在这里:https://blog.csdn.net/lianxiaohei/article/details/122607647


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装Gitlab

GitLab是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码。传统方式是手动下载Gitlab的软件包,然后搭建相关运行环境。不过这种方式非常麻烦,而且如果要更换机器所有配置工作又得重来一边,如果有同学学过Java的话应该记得初学Java时配置环境变量的恐惧吧?因此更好的办法就是使用现在非常流行的Docker。

那么Docker又是个什么东西呢?这是一个虚拟化的运行工具,主要目的是将软件和整个运行环境打包起来,让我们不需要配置即可快速运行软件。Docker安装服务还是比较方便的,此次主要记录Docker安装服务的详细过程,因为安装这个中途也踩了一些坑,此次安装环境CentOS7.6,Docker版本为1.13.1

1.搜索影像

docker search gitlab

在这里插入图片描述
可以看到镜像有很多,我选择了第五个,因为这是中文版的,鄙人英语不是很好,还是看中文版的比较舒服。版本的话就根据自己的喜好,如果想选择英文版推荐第一个

2.下载影像

docker pull twang2218/gitlab-ce-zh

安装过程可能会等一下,不要着急。

3.启动Git服务

docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh

这里解释一下这串代码的情况,复制的话就复制上面的命令

docker run 
-d                #后台运行,全称:detach
-p 8443:443      #将容器内部端口向外映射
-p 8090:80       #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab    #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab    #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab    #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab   #与上面一样
--privileged=true         #让容器获取宿主机root权限
twang2218/gitlab-ce-zh    #镜像的名称,这里也可以写镜像ID

4.查看Gitlab是否已经启动

// 添加-a 参数,把启动的,没有启动的都列出来
docker ps

在这里插入图片描述
看到这样的就说明已经启动成功了,下面就开始配置Gitlab

二、配置Gitlab

1.首先,先进入容器

docker exec -it gitlab bash

在这里插入图片描述

看到这样说明你已经进入到容器里了

2.修改gitlab.rb文件

//先进入到gitlab目录
cd /etc/gitlab   
//编辑gitlab.rb文件  
vim gitlab.rb

3.修改gitlab.rb文件中的IP与端口号

提示:在规定的位置放置规定的命令

// 在gitlab创建项目时候http地址的host(不用添加端口)
external_url 'http://xx.xx.xx.xx'

在这里插入图片描述


//配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' //和上一个IP输入的一样
gitlab_rails['gitlab_shell_ssh_port'] = 8022 // 此端口是run时22端口映射的8022端口
:wq //保存配置文件并退出

在这里插入图片描述

3.配置gitlab.yml文件

// 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config
//先进入到config目录下
cd /opt/gitlab/embedded/service/gitlab-rails/config
//打开编辑gitlab.yml文件
vim gitlab.yml
//修改host 与上面.rb文件修改的一致
// 修改port 为8090

:

4.重启服务

注:此命令为容器内重启服务命令

gitlab-ctl restart

在这里插入图片描述

5.退出命令行,推出容器命令

// 退出命令行
exit// 退出容器
exit

6.使用浏览器打开Gitlab

第一次访问默认是root账户,会需要修改密码(密码至少8位数)设置好之后确定就行
URL:http://101.43.XX.XX:8090/

在这里插入图片描述
到了这一步说明已经安装成功了,可以去使用了

二、常用命令

//容器外停止
docker stop gitlab   // 这里的gitlab 就是我们上一步docker run 当中使用--name 配置的名字
//容器外重启
docker restart gitlab
//进入容器命令行
docker exec -it gitlab bash
//容器中应用配置,让修改后的配置生效
gitlab-ctl reconfigure
//容器中重启服务
gitlab-ctl restart


http://www.ppmy.cn/news/622721.html

相关文章

windows和docker容器的ssh连接

windows和docker容器的ssh连接 1、背景及概述 关系:宿主机(windows10)----》VMware虚拟机(10.0.0.150)----》docker容器(192.17.0.2) 目的:在windows电脑ssh到linux虚拟机中的docker容器中&…

termux开启ssh服务与连接(用户密码登录)

结果:termux开启ssh这个问题也是耗费了我不少时间,结果最后发现是最低级的错误,用xshell连接的时候,输入的端口是22,后面才知道termux的默认端口是8022,但还是用xshell的命令行输入端口为8022去连接&#x…

IEEE802.X协议族

802.X协议是由(美)电气与电子工程师协会提出,刚刚完成标准化的一个符合IEEE802 协议集的局域网 接入控制协议,全称为基于端口的 访问控制协议。能够在利用IEEE 802局域网优势的基础上提供一种对连接到局域网的用户进行认证和授权的…

【80211协议】21.3.17

21.3.17 VHT传输规范 21.3.17.1 发射频谱掩膜 注1:如果存在额外的监管限制,设备必须同时满足监管要求和本小节中定义的掩模。 注2:本小节中的发射光谱掩模图不是按比例绘制的。 注3:TX中心频率泄漏等级规则请参见21.3.17.4.2。本款中的光谱掩模要求不适…

802标准

IEEE 802委员会成立于1980年2月,它的任务是制定局域网和城域网标准。802委员会目前有20多个分委员会,它们研究的内容分别如下。 (1) 802.1局域网体系结构、寻址、网络互联和网络管理。 (2) …

termux/utermux开启ssh并用用户名和密码登陆

注意: 这里连接的是termux/termux,不是termux/termux里面安装的其他系统 这里的termux/utermux指的是安卓模拟linux终端, termux/utermux软件 termux/utermux的ssh默认使用8022端口 安装软件慢的话请自行百度 termux换清华源,utermux直接左边划一下一键…

IEEE802.1 802.11协议标准

IEEE802.1标准提供了一个对整个IEEE802系列协议的概述,描述了IEEE802标准和开放系统基本参照模型(即ISO的OSI7层模型)之间的联系,解释这些标准如何和高层协议交互,定义了标准化的媒体接入控制层(MAC&#x…

IEEE802.1x

背景:最近完成一个需求,要求交换机支持dot1xradius tacacs ,因此研究了一下这个认证协议! 简介 IEEE802.1x是为了解决无线局域网网络的安全问题,提出的认证协议,后来,802.1x协议作为局域网接口…