本文档在CentOS7.3(1611)下基于Docker安装部署Gitlab社区中文版。Docker 要求 CentOS 系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本。
虚拟机(如VMware hyper-v)需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
容器技术是和宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。容器技术是实现操作系统虚拟化的一种途径,可以在资源受到隔离的进程中运行应用程序及其依赖关系。通过下面这幅图可以很直观的反映出这两者的区别所在。
1.2 Docker
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。Linux容器是Linux发展出了另一种虚拟化技术,简单来讲,Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。总体来说有了 Docker,用户可以方便地创建和使用容器,把自己的应用放入容器。
1.3 Docker 三个基本概念
Docker中包括三个基本的概念,Image(镜像)、Container(容器)、Repository(仓库),镜像是Docker运行容器的前提,仓库是存放镜像的场所,Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像(Image)是只读的,容器 (container) 和镜像 (image) 几乎一模一样,区别在于容器是可读可写的。
2.1安装启动docker
首先配置DNS确保服务器可以连接互联网
1、root用户执行命令yum update -y确保 yum 包更新到最新,此步骤必须,更新文件大时间较长。
2、卸载旧版本(如果系统自带docker)
sudo yum remove docker docker-common docker-selinux docker-engine
3、yum安装docker
yum -y install docker
4、启动docker
systemctl start docker
ps -ef | grep docker
2.2设置镜像
vi /etc/docker/daemon.json,大括号内添加下边内容
{
"registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]
}
重启docker
systemctl daemon-reload
systemctl restart docker.service
查看docker版本
2.3测试docker是否正常安装和运行
执行命令docker pull library/hello-world
将名为hello-world的image文件从仓库抓取到本地。docker pull images是抓取image文件,library/hello-world是image文件在仓库里面的位置,其中library是image文件所在的组,hello-world是image文件的名字。
执行命令docker run hello-world,测试能否正常运行
看到上图提示,说明docker正常安装并能运行。
2.4启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
3.1抓取gitlab社区中文版镜像
sudo docker pull beginor/gitlab-ce
3.2启动gitlab
通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外,便于日后升级,先准备这三个目录。
sudo mkdir -p /mnt/sda1/gitlab/etc
sudo mkdir -p /mnt/sda1/gitlab/log
sudo mkdir -p /mnt/sda1/gitlab/data
创建目录之后,运行Docker镜像。 建议使用unless-stopped 作为重启策略, 因为这样可以手工停止容器,方便维护。运行下边命令
docker run --detach \
--hostname 192.168.15.120 \
--publish 443:443 \
--publish 8888:80 \
--publish 40022:22 \
--name gitlab --privileged=true\
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab \
--volume /mnt/sda1/gitlab/backups:/var/opt/gitlab/backups \
beginor/gitlab-ce
首次启动比较慢,需要等待一分钟多时间。可以使用sudo docker ps命令查看当前所有Docker容器的状态。
health:starting为正在启动,状态变为health,说明启动成功。
3.3登陆GitLab社区中文版
打开浏览器地址栏输入192.168.15.120:8888 即可登陆GitLab中文版社区首页,首次登陆需设置登陆密码,密码需大于8位。输入两次密码后,点击修改密码,跳转到登陆界面,默认登陆用户名为root,输入设置好的密码进入GitLab社区中文版首页。