软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版

一、前言

本文档在CentOS7.3(1611)下基于Docker安装部署Gitlab社区中文版。Docker 要求 CentOS 系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本。

1.1容器和虚拟机

虚拟机(如VMware hyper-v)需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。

容器技术是和宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。容器技术是实现操作系统虚拟化的一种途径,可以在资源受到隔离的进程中运行应用程序及其依赖关系。通过下面这幅图可以很直观的反映出这两者的区别所在。

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第1张图片

1.2 Docker

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。Linux容器是Linux发展出了另一种虚拟化技术,简单来讲,Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。总体来说有了 Docker,用户可以方便地创建和使用容器,把自己的应用放入容器。

1.3 Docker 三个基本概念

Docker中包括三个基本的概念,Image(镜像)、Container(容器)、Repository(仓库),镜像是Docker运行容器的前提,仓库是存放镜像的场所,Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像(Image)是只读的,容器 (container) 和镜像 (image) 几乎一模一样,区别在于容器是可读可写的。

二、Docker的安装部署

2.1安装启动docker

首先配置DNS确保服务器可以连接互联网

1、root用户执行命令yum update -y确保 yum 包更新到最新,此步骤必须,更新文件大时间较长。

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第2张图片

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第3张图片

2、卸载旧版本(如果系统自带docker)

sudo yum remove docker  docker-common docker-selinux docker-engine

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第4张图片

3、yum安装docker

yum -y install docker

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第5张图片

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第6张图片

4、启动docker

systemctl start docker

ps -ef | grep docker

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第7张图片

2.2设置镜像

vi /etc/docker/daemon.json,大括号内添加下边内容

{

  "registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]

}

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第8张图片

重启docker

systemctl daemon-reload

systemctl restart docker.service

查看docker版本

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第9张图片

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安装Gitlab社区中文版_第10张图片

执行命令docker run hello-world,测试能否正常运行

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第11张图片

看到上图提示,说明docker正常安装并能运行。

2.4启动并加入开机启动

sudo systemctl start docker

sudo systemctl enable docker

三、安装部署GitLab中文社区版

3.1抓取gitlab社区中文版镜像

sudo docker pull beginor/gitlab-ce

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第12张图片

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

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第13张图片

首次启动比较慢,需要等待一分钟多时间。可以使用sudo docker ps命令查看当前所有Docker容器的状态。

health:starting为正在启动,状态变为health,说明启动成功。

3.3登陆GitLab社区中文版

打开浏览器地址栏输入192.168.15.120:8888 即可登陆GitLab中文版社区首页,首次登陆需设置登陆密码,密码需大于8位。输入两次密码后,点击修改密码,跳转到登陆界面,默认登陆用户名为root,输入设置好的密码进入GitLab社区中文版首页。

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第14张图片

软件测试工程师进阶篇——基于Docker安装Gitlab社区中文版_第15张图片

你可能感兴趣的:(docker,gitlab,docker,容器,linux)