#每天都是崭新的一天#再累也要照顾好自己

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.cnblogs.com/chengxs/p/9879867.html
感谢你的阅读,本文由 sau交流学习社区 版权所有。
如若转载,请注明出处:sau交流学习社区-power by saucxs(程新松)(/page/436.html)
交流咨询
    官方QQ群
    群号663940201,欢迎加入!
    sau交流学习社区交流群

微信群
欢迎加入微信群
微信公众号
欢迎关注微信公众号
微信群
saucxs聊天机器人
saucxs
hi ,欢迎来到sau交流学习社区,欢迎与我聊天,问我问题哦!
您正在使用的浏览器是,不在支持范围内!
为了您的正常使用与展示,推荐使用Chrome浏览器68以上版本
支持浏览器:
火狐浏览器最新版
Safari浏览器最新版
Edge浏览器最新版
IE浏览器10,11