安装Docker:

note: https://docs.docker.com/engine/install/centos/

1 yum install -y yum-utils

2 yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo 3 yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin 4 yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.4-3.el7 docker-ce-stable 5 yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
例如 :yum install docker-ce-docker-ce.x86_64docker-ce-cli-docker-ce.x86_64 containerd.io docker-compose-plugin 6 systemctl start docker 7 docker run hello-world

  

Docker中安装Gitlab:

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

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

1.搜索images

docker search gitlab

  可以看到镜像有很多,我选择gitlab-ce-zh,因为这是中文版,还是看中文版的比较舒服,版本的话就根据自己的喜好。

2.下载images

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

6.使用浏览器打开Gitlab

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

到了这一步说明已经安装成功了,可以去使用了

二、常用命令

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

GitLab无法启动日志查看

docker logs gitlab > ./gitlab.log

  

GitLab内存问题:

GitLab占用内存非常恐怖,解决方法很简单

修改 /etc/gitlab/gitlab.rb 文件,将 unicorn['worker_processes'] = 2 去掉注释就可以了。在注释的情况下默认是服务器上的所有线程。

另外,可以将worker内存上限设置小一点,比如 unicorn['worker_memory_limit_max'] = "1280 * 1 << 20"

禁用prometheus,可以进一步减少内存占用,prometheus_monitoring['enable'] = false,若不禁用,可以更改buffer大小,postgresql['shared_buffers'] = 256M

经过上述调整,内存占用已经很小了。

最后,gitlab-ctl reconfigure,让配置文件生效,并重启 gitlab-ctl restart

Docker中安装Gitlab详细全教程的更多相关文章

  1. docker中安装宝塔面板教程

    本人电脑是win10,安装的virtualbox,装的centos7.2,在centos7.2装了docker,这个比较简单,网上一大堆教程,今天说一下装好了docker之后怎么在docker中安装面 ...

  2. win8.1系统的安装方法详细图解教程

    win8.1系统的安装方法详细图解教程 关于win8.1系统的安装其实很简单 但是有的童鞋还不回 所以今天就抽空做了个详细的图解教程, 安装win8.1系统最好用U盘安装,这样最方便简单 而且系统安装 ...

  3. RHEL 6.3安装(超级详细图解教程)[转载]

        附:RHEL6.3下载地址 32位:http://rhel.ieesee.net/uingei/rhel-server-6.3-i386-dvd.iso 64位:http://rhel.iee ...

  4. CentOS6、7安装MySQL5.7全教程

    CentOS6.7安装MySQL5.7全教程 做开发总得用到数据吧,Linux作为服务器,总得有一个数据库来存储测试用的数据,所以呢,这里附上CentOS6.7安装MySQL5.7的教程喔~ 用到的工 ...

  5. windows10上安装mysql详细图文教程

    在windows10上安装mysql详细图文教程   这篇文章主要介绍了在windows10上安装mysql详细图文教程,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧 环境:windw ...

  6. CentOS yum安装mcrypt详细图解教程

    CentOS yum安装mcrypt详细图解教程 在Linux的发行版CentOS 6.3 系统下,LAMP(Linux+Apache+Mysql+php)环境搭建好后发现PHPMyadmin提示 “ ...

  7. 在Docker中安装MongoDB

    在Docker中安装MongoDB docker run -p 27017:27017 -v /data/mongodb:/data/db --name mongodb -d mongo --auth ...

  8. 在vs2017和vs2019下发布应用之Windows程序打包-附图标修改和默认安装路径定义全教程

    title: 在vs2017和vs2019下发布应用之Windows程序打包-附图标修改和默认安装路径定义全教程 date: 2020-04-25 sidebarDepth: 2 tags: wind ...

  9. 在docker中安装mysql

    #!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...

  10. 在Docker中安装配置Oracle12c并实现数据持久化

    在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...

随机推荐

  1. JavaScript:变量:声明和赋值变量时,内存结构是什么样的?

    这里只是大概画出内存结构的模型图,方便理解当我们声明变量和赋值变量时,到底在干嘛. 如上图所示,a赋值一个对象{},b赋值字符串hello: 于是内存里划了三个区域给我们,一个存储我们声明的变量表,即 ...

  2. C#开发的磁吸屏幕类库 - 开源研究系列文章

    上次写了一个关于线程池的博文,里面讲到了关于磁吸屏幕的类库,今天就把这个类库进行下讲解. 一.      类库目录: 类库的目录见下图,主要定义了Win32的一些API,以及一些API使用到的常量和结 ...

  3. [OpenCV实战]32 使用OpenCV进行非真实感渲染

    目录 1 保边滤波的频域变换 1.1 保边滤波器Edge Preserving Filter 1.1.1 函数调用 1.1.2 edgePreservingFilter结果 1.2 细节增强 1.3 ...

  4. Netty-架构设计及入门程序-3

    一.原生 NIO 存在的问题 1.NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector.ServerSocketChannel.SocketChannel.ByteBuffer等. ...

  5. linux系统一键开启root登陆

    服务器只能key登陆,用这个后直接可以root方式登陆 sudo -i echo root:要设置的密码 |sudo chpasswd root sudo sed -i 's/^#\?PermitRo ...

  6. WebGoat-8.2.2靶场之不安全的反序列化漏洞

    前言 序列化是将变量或对象转换成字符串的过程 反序列化就是把一个对象变成可以传输的字符串,目的就是为了方便传输 而反序列化漏洞就是,假设,我们写了一个class,这个class里面存有一些变量.当这个 ...

  7. 算法竞赛向 C++ Standard Library 使用速查

    因网络上 STL 教程大多零散且缺乏严谨性,本文对算法竞赛所需 C++ Standard Library 做了一个较为全面的总结. 全文主要参考以下文档: Containers library - c ...

  8. vh 存在问题?试试动态视口单位之 dvh、svh、lvh

    大部分同学都知道,在 CSS 世界中,有 vw.vh.vmax.vmin 这几个与视口 Viewport 相关的单位. 正常而言: 1vw 等于1/100的视口宽度 (Viewport Width) ...

  9. 记一次CVE实战挖掘记录

    CVE实战挖掘记录 前一段时间在学习代码审计,然后为了学习就开始在github上面找开源的项目进行练手学习代码审计,这样就可以获取CVE编号. 0x01 cve编号获取流程 首先登录CVE官方网站,选 ...

  10. Performance API不完全使用指北

    本教程解释了如何使用Performance API来记录真实用户访问你的应用程序的统计数据. 使用浏览器的DevTools来评估web应用性能是很有用的,但要复现现实世界的使用情况并不容易.因为人们在 ...