林中两路分,一路人迹稀。我独选此路,境遇乃相异。

0%

Docker部署gitlab服务器(1)


Gitlab是目前比较好用的Git代码托管工具,本篇主要介绍下采用docker方式部署托管平台的方案。
详细文档见 https://docs.gitlab.com/omnibus/docker/README.html#gitlab-docker-images

操作系统

操作系统: Debian8.7 64位
Docker官方网站 https://docs.docker.com/engine/installation/ 上有各种环境下的安装指南,可以参考下。这里主要采用 Debian 8 Jessie 来介绍。

内核

Debian8 的内核默认为 3.16,满足基本的 Docker 运行条件。但是如果打算使用overlay2 存储层驱动,或某些功能不够稳定希望升级到较新版本的内核,可以添加 backports 源,升级到新版本的内核。
由于国内访问国际资源的速度问题,我们采用国内镜像站的资源来作源。
执行下面的命令添加 backports 源:

1
$ echo "deb http://mirrors.163.com/debian jessie-backports main" | sudo tee /etc/apt/sources.list.d/backports.list

升级到 backports 内核:

1
2
$ sudo apt-get update
$ sudo apt-get -t jessie-backports install linux-image-amd64

需要注意的是,升级到 backports 的内核之后,会因为 AUFS 内核模块不可用,而使用默认的 devicemapper 驱动,并且配置为 loop-lvm ,这是不推荐的。因此,不要忘记安装 Docker 后,配置 overlay2 存储层驱动。

配置 GRUB 引导参数

在 Docker 使用期间,或者在 docker info 信息中,可能会看到下面的警告信息:

1
2
3
WARNING: Your kernel does not support cgroup swap limit. 
WARNING: Your kernel does not support swap limit capabilities.
Limitation discarded.

或者

1
2
3
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No oom kill disable support

如果需要这些功能,就需要修改 GRUB 的配置文件 /etc/default/grub ,在 GRUB_CMDLINE_LINUX 中添加内核引导参数 cgroup_enable=memory swapaccount=1
然后更新 GRUB:

1
2
$ sudo update-grub
$ sudo reboot

Docker安装

使用阿里云的脚本安装

1
$ curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

安装好后,查看docker版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ sudo docker version
Client:
Version: 17.04.0-ce
API version: 1.28
Go version: go1.7.5
Git commit: 4845c56
Built: Mon Apr 3 17:45:49 2017
OS/Arch: linux/amd64

Server:
Version: 17.04.0-ce
API version: 1.28 (minimum version 1.12)
Go version: go1.7.5
Git commit: 4845c56
Built: Mon Apr 3 17:45:49 2017
OS/Arch: linux/amd64
Experimental: false

建立Docker用户组

默认情况下, docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:

1
$ sudo groupadd docker

将当前用户加入 docker 组:

1
$ sudo usermod -aG docker $USER

镜像加速器

国内访问 Docker Hub 有时会遇到困难,此时可以配置镜像加速器。这里采用阿里云加速器: https://cr.console.aliyun.com/#/accelerator
在阿里云账户中可以申请加速器,会得到如 https://lygalhlu.mirror.aliyuncs.com 这样的地址,我们将该信息配置给Docker引擎。
对于使用 systemd 的系统,用 systemctl enable docker 启用服务后,编辑/etc/systemd/system/multi-user.target.wants/docker.service 文件,找到 ExecStart= 这一行,在这行最后添加加速器地址 --registry-mirror=<加速器地址> ,如:

1
ExecStart=/usr/bin/dockerd --registry-mirror=https://lygalhlu.mirror.aliyuncs.com

重新加载配置并重启

1
2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

检查加速器是否生效

Linux系统下配置完加速器需要检查是否生效,如果配置中看到 --registry-mirror的参数,则说明配置成功。

1
2
$ sudo ps -ef | grep dockerd
root 520 1 0 13:43 ? 00:00:47 /usr/bin/dockerd -H fd:// --registry-mirror=https://lygalhlu.mirror.aliyuncs.com
-------------本文结束 感谢您的阅读-------------
觉得好,点这里 ^_^