QCon全球软件开发大会8折优惠倒计时,购票立减¥1760!了解详情 >>> 了解详情
写点什么

GitLab 容器注册服务已集成于 Docker 容器

2016 年 5 月 29 日

GitLab 最近发布了集成式Docker 容器注册(Container registry)服务,该服务由GitLab 工程师Mark Pundsack 开发,主要可用于将Docker 容器映像与GitLab 的持续集成工具相集成。

通过使用GitLab CI,开发者已经可以真正用自动化的方式构建和测试Docker 容器映像,并将其部署至GitLab 容器注册服务,随后这些映像可被其他开发者方便地使用。下文列出了GitLab CI 的一个配置文件范例,该配置可以构建映像,运行测试,如果测试成功还可为该构建创建标签,并将其推送至GitLab 集成式仓库:

复制代码
build_image:
image: docker:git
services:
- docker:dind
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.com:5005
- docker build -t my-group/my-project .
- docker run my-group/my-project /script/to/run/tests
- docker tag my-group/my-project
gitlab.com:5005/my-group/my-project:latest
- docker push gitlab.com:5005/my-group/my-project:latest
only:
- master

根据 Pundsack 的介绍,使用 GitLab 容器注册服务的主要好处在于,无需设置和管理其它服务或使用公用注册服务便可随时使用。这也意味着,例如:

  • GitLab 注册服务需要使用 GitLab 的身份验证机制,因此可继续使用用户和组定义。
  • 无需在注册服务中创建仓库,一切早已设置完毕。
  • 无需额外安装其他软件。

GitLab 容器注册服务可通过一个新选项卡访问,其中列出了与当前项目有关的所有映像。容器注册服务默认会为每个项目启用,开发者可以使用自己的私有仓库,同时还可针对具体项目将其关闭。该服务可通过 GitLab.com 免费使用并创建无限数量的项目,同时也可在本地安装使用。

为了详细了解 Docker 和 GitLab 容器注册服务能为开发者提供怎样的帮助,InfoQ 采访了 GitLab 产品主管 Mark Pundsack。

能否详细谈谈 GitLab 容器注册服务能为开发者提供怎样的帮助?

具体帮助分为两个方面:1) 容器注册这个概念本身,以及 2)GitLab 的集成式容器注册服务。

容器注册服务非常适合各种开发者工作流的分享和自动化。例如,将映像推送至容器注册服务之后,团队中的每个人(如果是私有服务)或有需要的任何人(如果是公开服务)都可以从中下载映像,或为您的软件构建一个完整版本。此时并不需要自行下载源代码并编译,只要抓取一个完整映像即可。但实际上抓取的并不仅仅是包含编译后代码的映像,而是包含完整操作系统版本以及其他依赖工具完整环境的映像,运行软件所需的一切均包含在内,无论在笔记本或云实例中软件都能无差异完美运行。

为了让一切保持无缝,GitLab 已将容器注册服务集成于整个 GitLab 工作流中。用户只需要管理一套用户身份和一个标准化的项目。在连接到注册服务后即可访问全部有权访问的映像。对于企业本地部署的用户来说,更重要的是完全无需额外安装或维护任何其他软件。

在 Docker 与工作流相集成方面有几个新兴实践。其中三大常见领域包括:1) 在 Docker 之外构建并测试一切,随后为最终结果创建 Docker 映像,以及 2) 构建 Docker 映像,随后对其进行测试,还有 3) 构建 Docker 映像,对其本身进行测试,然后使用 Docker-compose 同时运行多个映像并进行集成式测试,借此了解不同组件的交互方式。最后一种情况非常适合使用微服务的组织。

您觉得 GitLab 容器注册服务在哪些领域能提供最大收益?

Docker 的主要优势之一在于能够将同一个映像用于开发、测试,以及部署。这种做法可有效避免应用发布到生产环境后突然发现环境存在差异,底层操作系统或其他工具版本不兼容等情况造成的麻烦。例如,很多开发者会在 Mac 上编写代码,随后将其发布到生产环境中的 Linux 系统。大部分情况下这样做没什么问题,但偶尔总会遇到一些麻烦。为确保开发和生产环境尽可能相似,非常重视站点可靠性的组织甚至提出了“dev-prod 对等”这一概念。

Docker 擅长的另一个领域是微服务,Dockers 在设计上可以处理并协调多个服务。在使用 Docker 之前,如果开发者需要测试一个包含五个组件的系统,可能需要非常繁琐的操作才能在自己的笔记本上搭建本地环境。但 Docker,尤其是 Docker-compose 使得整个过程变得大为简单。

容器注册服务是让这一切圆满实现的中心。

相比使用 Docker Hub 等其他第三方 Docker 注册服务,集成式容器注册服务有何优势?

最明显的优势是成本和便利性。运行容器注册服务无需额外支付任何费用(可创建供个人或企业使用,无限数量的私有项目),并且该服务已经伴随 GitLab 安装完成。集成工作的重点在于要将 GitLab 的身份验证和授权机制集成在一起,并使其与 GitLab 项目的组和成员分配情况保持一致,这样就可以通过注册服务轻松存储私有容器仓库。

举例来说,如果曾用过 Docker Hub,您或者要将自己的项目设置为公用,或者付费将其设置为私有。如果希望像大部分大型企业那样在本地部署,还需要额外付费购买 Docker Trusted Registry。无论哪种方式,都需要手工管理不同用户对映像的协作访问权限。

GitLab 容器注册服务要求具备 GitLab 8.8+ ,并已免费发布至 GitLab.com

查看英文原文: GitLab Container Registry Integrates Docker Containers


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016 年 5 月 29 日 19:002866
用户头像

发布了 283 篇内容, 共 88.0 次阅读, 收获喜欢 41 次。

关注

评论

发布
暂无评论
发现更多内容

Hadoop生态系统

binfirechen

合约量化交易系统开发技术

薇電13242772558

区块链

走!跟着浪潮云洲去挖矿

浪潮云

云计算

史上最全Linux可观测最佳实践分享!建议先收藏~

驻云DataFlux

云计算 Linux

Vue进阶(三十八):v-for 中 :key 到底有什么用?

No Silver Bullet

Vue key 八月日更

出现吧,Python Web 菜谱系统的首页,不会前端技术,也能做

梦想橡皮擦

8月日更

如何将知识引入机器学习模型提升泛化能力?

华为云开发者社区

机器学习 算法 数据 模型 物理学

基于java springboot体育馆预约微信小程序源码(毕设)设计开发

清风

Java 小程序 源码 毕业设计

2021,编程语言如何选择?

程序员鱼皮

Java c++ Python JavaScript go

“遇见”未来“编程”语言,面向组件编程,送给在校学生

清风

Java 小程序 毕业设计

Hadoop安装与常用操作命令

binfirechen

堡垒机、防火墙以及跳板机分别是什么?

行云管家

云计算 运维 防火墙 堡垒机 跳板机

30个Kafka常见错误小集合

王知无

Android ANR应用无响应

W🌥

android 八月日更

MySQL 系列教程之(五)DDL 操作:建库建表

若尘

MySQL 数据库 八月日更

阿里内部绝密《百亿级并发系统设计》实战教程,冒着被劝退的风险免费分享

程序员知识圈

Java 程序员 架构 面试 编程语言

【LeetCode】有效的字母异位词Java题解

HQ数字卡

算法 LeetCode 8月日更

MySQL安全加固方法分享

Simon

MySQL 数据库 数据安全

摊牌了!哈利波特的“隐形斗篷”就是我想要的

百度开发者中心

人工智能 AI 最佳实践 行业资讯

博文干货|5张图带你快速入门 Pulsar 的存储引擎 BookKeeper

Apache Pulsar

pulsar bookKeeper

【SpringBoot技术专题】「JWT技术专区」SpringSecurity整合JWT授权和认证实现

李浩宇/Alex

spring security springboot JWT 8月日更 8 月日更

中国移动上海公司信运部顺利完成账务数据库自主可控改造项目割接

AISWare Database

AOC萌新探索:搭建和体验在线AOC环境

华为云开发者社区

Python 网络 自动化运维 AOC 网络设备

复旦大学附属中山医院钱琨:健康医疗大数据时代下的智慧医院建设

星环科技

大数据 医疗 数据能力

爬虫遇到反爬机制怎么办? 看看我是如何解决的!

Python研究者

8 月日更

区块链技术:为什么说波卡能加速区块链行业的发展?

CECBC区块链专委会

能源区块链研究 | 加密行业碳抵消有助于大众接纳比特币吗?

CECBC区块链专委会

架构实战营-模块二作业

俞立夫

架构实战营

技术加持、服务先行:北鲲云超算平台助力生命科学领域研究与发展

北鲲云

零代码以“王者荣耀”为例解析设计七原则

华为云开发者社区

软件 设计原则 王者荣耀 单一职责

fil有投资价值吗?投资fil的方式有哪些?

IPFS星盟小熊

区块链 分布式存储 IPFS fil FIL投资

移动应用开发的下一站

移动应用开发的下一站

GitLab容器注册服务已集成于Docker容器-InfoQ