docker初体验,搭建自用的gitlab服务
一、前言
git在如日中天的版本管理系统,现在如果不是工作在git版本管理系统下,几乎都不好意思给人打招呼。现在就有现成的互联网的git服务器提供给大家使用,例如号称程序的社交网络github。
正好gitlab公司提供了gitlab社区版,gitlab安装方式又很多安装方式,最方便的使用docker方式安装,现在讲步骤记录下,希望对有需求的人有所帮助。
二、docker安装
首先是安装 docker 环境了。我是在 centos 7 的基础上安装的。根据官网的指南
1、增加docker yum源
新的docker yum源叫做docker-ce,如果第一次安装docker-ce需要设置docker-ce的yum源。用如下命令来增加docker-ce的yum源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
2、如果你之前安装过docker,删除旧版本的docker
旧版本的 docker 的叫做 docker 或者 docker-engine,如果系统中已经安装旧版本,则需要删除。通过一下命令删除旧的 docker 版本。
yum remove docker docker-common docker-selinux docker-engine
3、安装docker-ce
首先我们检查一下所有有效的docker-ce的版本
yum list docker-ce --showduplicates | sort -r
我们选择最新的额稳定版是18.06.1.ce。我们使用下面的命令安装该版本
yum install docker-ce-18.06.1.ce
这个安装时间比较长吧,静静等待,大约花费4min
4、启动docker
执行如下的命令启动 docker 的服务
systemctl start docker
执行如下命令,查看docker信息
docker info
目前我没有修改docker配置,我觉得docker下载镜像速度还行,并没有网上说的很慢,暂时不修改运行目录和镜像仓库地址
上述完成了docker安装。接下来安装gitlab
三、安装gitlab
1、下载镜像
docker pull gitlab/gitlab-ce:latest
镜像有1g多,需要等待一段时间
2、数据持久化保存
因为docker容器的数据是不能持久化保存的。所以我们需要使用docker volume的方式将存储的数据映射到操作系统的目录中来。这样就算运行的容器奔溃了,我们从新启动一个新的容器。原来容器的数据还是不会丢失
我们建立目录/home/databaken/gitlab来保存gitlab容器中的数据
3、准备映射sshd
在系统防火墙中打开HTTP和SSH访问,git是采用ssh协议来操作git仓库的,我们将主机的sshd的22端口映射到容器中去。将主机的sshd端口更改为15678.这里是centos7的更严格的安全机制,算是一个坑,按照下面步骤进行
(1)编辑文件/etc/ssh/sshd_config,将其中的#port 22注释去掉,将数字22修改为15678
(2)执行命令重启sshd服务
systemctl restart sshd
(3)运行下面的命令是15678端口可以对外提供服务。否则无法远程的ssh登陆
semanage port -a -t ssh_port_t -p tcp 15678
firewall-cmd --permanent --add-port=15678/tcp
firewall-cmd --reload
告诉我firewall服务没有启动,使用下面命令启动防火墙命令
//运行防火墙服务
systemctl start firewalld.service
因为之前乜有开启防火墙服务,这一启动,4个系统都无法访问,需要将80端口和443端口允许外网访问到。
4、运行gitlab
我把本地服务防火墙的22端口也放开
然后运行gitlab
docker run \
--publish 4433:443 --publish 9001:80 --publish 22:22 \
--name gitlab \
--volume /home/databaken/gitlabdata/config:/etc/gitlab \
--volume /home/databaken/gitlabdata/logs:/var/log/gitlab \
--volume /home/databaken/gitlabdata/data:/var/opt/gitlab \
gitlab/gitlab-ce
这里把主机的 4433、9001、22 端口直接转发到容器,意思就是说:本地服务的4433端口,8080端口,22端口已经占用,访问本地服务的4433端口就是访问docker容器gitlab的443端口,访问本地服务的9001端口就是访问docker容器gitlab的80端口,访问本地服务的22端口就是访问docker容器gitlab的22端口。
同时利用 --volume /home/databaken/gitlabdata/config:/etc/gitlab 、
--volume /home/databaken/gitlabdata/logs:/var/log/gitlab 、
--volume /home/databaken/gitlabdata/data:/var/opt/gitlab
这三个参数将 gitlab 的配置、数据和日志持久化到主机文件系统上来。
按照道理,这个时候,你直接访问服务器的ip:9001,就可以访问到gitlab,糟糕的是自己服务器是1核1G运行内存,哈哈。。。。肯定是跑不起来gitlab,因为说gitlab要求最低是4G运行内存,虽然我尝试了swap,构建了2G的虚拟内存,但是gitlab跑起来还是,容器还是奔溃了。
服务器运行内存太低,所以暂时不考虑跑gitlab。
相应错误可以在https://www.mwcxs.top/topic/item/45.html查到。
与交流学习社区同步:https://www.mwcxs.top/page/436.html
docker初体验,搭建自用的gitlab服务的更多相关文章
- 通过 docker 搭建自用的 gitlab 服务
前言 git 是当下如日中天的版本管理系统.现在如果不是工作在 git 版本管理系统之下,几乎都不好意思和人打招呼了.有很多现成的互联网的 git 服务提供给大家使用,例如号称程序员社交网络的 Git ...
- 2.Docker初体验【Docker每天5分钟】
原文:2.Docker初体验[Docker每天5分钟] Docker给PaaS世界带来的“降维打击”,其实是提供了一种非常便利的打包机制.该机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和 ...
- Docker初体验
## Docker初体验 安装 因为我用的是mac,所以安装很简单,下载dmg下来之后拖拽安装即可完成. 需要注意的就是由于之前的docker是基于linux开发,不支持mac,所以就出现了docke ...
- Django初体验——搭建简易blog
前几天在网上看到了篇采用Django搭建简易博客的视频,好奇心驱使也就点进去学了下,毕竟自己对于Django是无比敬畏的,并不是很了解,来次初体验. 本文的操作环境:ubuntu.python2.7. ...
- # 初体验之腾讯位置服务彩云天气开发者api
初体验 最近接触到了boxjs,看到了里面一个比较有意思的彩云天气的脚本,由于自己本身就是彩云天气pro的用户,日常使用过程中感觉到彩云的降雨提醒还是挺方便的,于是就准备开始使用这个天气的脚本. 脚本 ...
- Docker深入浅出系列教程——Docker初体验
我是张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐.我喜欢把玩代码,琢磨词句!代码算法让我穿透规律,文章摘句让我洞察人情.如果你觉得和我的看法不一样,请关注我的头条号,那我们一定合得来. Do ...
- Docker学习系列(二)Docker初体验
一.系统要求 Docker的安装,需要在CentOS 7.0+版本,内核至少3.10,64-bit uname --r [randy@randysun ~]$ uname --r -.el7.x86_ ...
- SpringCloud初体验:三、Feign 服务间调用(FeignClient)、负载均衡(Ribbon)、容错/降级处理(Hystrix)
FeignOpenFeign Feign是一种声明式.模板化的HTTP客户端. 看了解释过后,可以理解为他是一种 客户端 配置实现的策略,它实现 服务间调用(FeignClient).负载均衡(Rib ...
- SpringCloud初体验:一、Eureka 服务的注册与发现
Eureka :云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移. Eureka 可以大致理解为 房产中介 和 房东 的关系,房东想让租客租房子,首先要把房子 ...
随机推荐
- 安装ipset车祸现场
基础环境centos6.8内核2.6.32. 本身服务器带的是6.11ipset版本,业务需求,需要升级到6.32 ipset-6.32 ./configure 报错 configure: error ...
- Guava新增集合类型-Bimap
Guava新增集合类型-Bimap BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构. 通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但 ...
- BZOJ_2151_种树_贪心+堆+链表
BZOJ_2151_种树_贪心+堆 Description A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门得到指令后,初步规划出n个种树的位置,顺时针编 ...
- AbstractQueuedSynchronizer AQS框架源码剖析
一.引子 Java.util.concurrent包都是Doug Lea写的,来混个眼熟 是的,就是他,提出了JSR166(Java Specification RequestsJava 规范提案), ...
- Python数据结构应用5——排序(Sorting)
在具体算法之前,首先来看一下排序算法衡量的标准: 比较:比较两个数的大小的次数所花费的时间. 交换:当发现某个数不在适当的位置时,将其交换到合适位置花费的时间. 冒泡排序(Bubble Sort) 这 ...
- 使用Freemarker 实现JSP页面的静态化
使用Freemarker 静态化网页 一.原理 Freemarker 生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达 ...
- Java基础-工厂设计模式(三锅的肥鸡)
---恢复内容开始--- 1)还没有工厂时代:假如还没有工业革命,如果一个你要一架飞机,一般的做法是自己去建造一架飞机,然后拿来开 通常的结果就是 有些时候 要么专科螺钉 没打好 要么就是 那个 ...
- 数字类型——python3
今天我为各位小伙伴准备了python3中数字类型,希望能够帮助到你们! Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间. 以下 ...
- 访问者模式 Visitor 行为型 设计模式(二十七)
访问者模式 Visitor <侠客行>是当代作家金庸创作的长篇武侠小说,新版电视剧<侠客行>中,开篇有一段独白: “茫茫海外,传说有座侠客岛,岛上赏善罚恶二使,每隔十年 ...
- IDEA编写css样式报错
粗心大意!浪费了30分钟时间,必须记录一下! 报错图片 琢磨了半天,没想出是哪里错了,很无奈!!!!!!!!! 度娘:ctrl+shift+alt+H,设置成NONE就可以了 试了一下,果然好使,不再 ...