使用Docker构建Gitlab私服

前情与内容提要

本文描述如何使用Docker镜像构建本地Gitlab服务。本文目标读者是掌握基本docker操作,希望通过docker镜像快速搭建自己Gitlab服务器的用户。
前面的文章我们介绍了如何在本地Linux环境中部署Docker Engine。主要注意以下几个方面:
* 尽量使用安装源的本地镜像,如阿里云,DaoCloud等;
* 下载到本地的docker镜像文件保存位置,如果系统根文件所在分区较小,需要把本地镜像的保存位置从Docker默认的/var/lib/docker 转移到其他地方;
* 添加docker用户组,使用普通用户身份操作docker。
本篇仍然会涉及到不少docker知识,尤其是docker compose相关的内容。

下载所需镜像

使用docker pull分别下载 Gitlab、Redis和PostgreSQL镜像:

$docker pull gitlab/gitlab-ce:latest
$docker pull sameersbn/postgresql:9.4
$docker pull redis:latest

:latest 表示下载镜像的最新版本,也可以指定版本号,例如sameersbn/postgresql:9.4
gitlab使用的是其community版本:文档在此
下载镜像的步骤也可以直接在docker-compose中一气呵成,为了突出重点,我们先手动下载。

下载完成后运行

$docker images |grep -E 'gitlab|redis|postgresql'

应该能看到列表中有上述三个镜像文件

Docker Compose 大法

Docker的Logo形象地展示了docker为什么能够让应用快速地以平台无关的方式部署运行:docker容器就像是一个集装箱,不管你的应用是Ruby on Rails写的Gitlab还是ANSI C写的Redis或PostgreSQL,都可以用docker“集装箱(镜像)”装起来,以镜像的形式分发,然后通过Docker Engine产生一个容器实例来运行它。

因为Docker不像传统的虚拟化那样包含完整的操作系统软件栈,所以它非常“轻量级”,可以便捷地分发和部署,并且可以通过发布方提供的Dockerfile(可以理解为配方)快速地构建出和发布方提供的镜像一模一样的Docker镜像。这就使得基于Docker的应用部署和运行变得异常便捷。

又因为Docker将每个应用都隔离在单独的容器里,互相通过暴露通信端口和共享数据卷等形式进行数据交换,这就使得“微服务”的架构得以高效实施,极大地提高了应用整体的健壮性。而数以千万计运行在容器中的“微服务”,也势必需要一种能够统一进行管理的手段,这就是docker compose等编排工具存在的意义。

如果容器只能在同一台docker host上执行,那么docker的强大还是无从体现,真正让docker成为革命性技术手段的,是容器之间跨主机的协同工作,通过编排工具让运行在不同主机上的容器协同工作构建应用,从而使得应用规模可以在计算和存储资源之上任意伸缩,服务的部署和运行获得有前所未有的灵活性。

这里,由于我们的应用比较简单,我们将只用三个容器在同一主机上分别运行gitlab, redis和postgresql来构建我们的Gitlab Service。而在同一主机上同时运行多个容器构建一个应用,最便捷的方式是使用docker compose。

docker compose的使用非常的简单:撰写docker-compose.yml文件描述应用如何由多个镜像构建并描述每个容器的运行时环境,之后一个简单的docker-compose up命令就可以让容器协同工作起来。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值