您的位置:西部商网 > 财经

如何选择容器注册表,这里给出九个选项译文

[02月17日 15:43] 来源:TechWeb 编辑:谷小金   

在2013年诞生的开源Docker引擎促使容器化成为实现云应用程序开发流程现代化的第一步在Docker引擎出现之前,用户必须为特定的计算机/硬件配置应用程序但这种方法的缺点是,将应用程序和数据从一台服务器移动到另一台服务器可能会很耗时

如何选择容器注册表,这里给出九个选项译文

但是,伴随着Docker Registry的推出,管理和组织容器注册表的长期挑战得到了解决事实上,Docker Registry迅速成为了软件行业的标准如今,Docker Registry帮助很多企业通过其软件开发过程在一个中心位置收集,存储和交付不同阶段的容器镜像

本文概述了人们需要了解的容器注册表核心功能,以帮助选择适合软件开发需求的容器注册表。

什么是容器注册表。

容器注册表是一个高度可扩展的服务器端应用程序,它允许持续集成/持续交付系统,开发人员和测试人员存储在应用程序开发期间创建的图像存储在容器注册表中的映像用于Kubernetes,DevOps和基于容器的应用程序开发其示例包括Docker Hub,Amazon ECR和Azure

如何选择合适的容器注册表。

在选择容器注册表时,市场并不缺乏一些教学法选择,这可能使选择合适的容器注册表成为一项艰巨的任务。但是,在用户开始选择之前,需要事先考虑的核心问题:

除了容器映像之外,还想承载其他工件吗一些容器注册表支持其他类型的文件,例如Java,Node.js甚至Python包另一方面,有些只支持容器镜像需要额外的安全性吗只有少数容器注册表提供的功能更安全,每当用户将图像推送到注册表时会进行漏洞扫描应该使用本地还是托管容器注册表

如果用户决定从一个容器迁移到另一个容器,则任务相对容易。

可用的容器注册表有哪些。1.AWS弹性容器注册表

AWS ECR可以配置为支持私有和公共Docker注册表这些注册表可与AWS IAM一起使用,以控制用户的访问级别,服务和应用程序在本质上,可以定义哪些用户可以访问受保护的容器映像

AWS ECR还配备了漏洞图像扫描功能,使其成为DevSecOps的基本功能这是因为它使用Clair的公共漏洞和暴露数据库来评估所发现问题的严重性AWS ECR的另一个重要功能是不可变图像标签在启用之后,这一功能可确保将映像推送到容器注册表之后,任何人都无法覆盖该映像

2.Azure容器注册表

微软公司的Azure容器注册表基于Docker Registry 2.0,其中身份验证由Azure RBAC管理。Azure的容器注册表具有大多数竞争对手尚未提供的功能,例如:

自动清除旧图像未标记清单的保留策略内容信任

需要注意的是,内容信任是基于Docker创建的一个概念,它允许用户对推送到Azure容器注册表的图像进行签名。

在本质上,可能使用图像的应用程序/用户将其客户端配置为仅提取签名的图像同时,Docker客户端可以验证图像的完整性,从而确保图像已经发布,并且在发布后未被修改除了托管Docker容器映像之外,Azure容器注册表还支持OCI映像,OCI工件和Helm图表

而在定价信息方面,微软公司使用分层系统的方式有所不同。

3.Docker Hub容器注册表

Docker Hub可能是当前最流行的容器注册表,因为它是默认的Docker存储库它充当公共容器映像的市场,如果决定公开分发映像,它是最佳选择有趣的是,Docker Hub的免费选项在一段时间内非常有吸引力,直到一些用户开始用来挖掘具有自动构建功能的加密货币

因此,开发商对Docker的pull/push镜像设置了一些限制,并重新思考如何通过Docker Hub获利用户需要了解有关速率限制更改的更多信息,以及向Docker Hub自动构建的转变避免Docker的拉/取图像速率限制的一种方法是使用缓存代理

在定价方面,层级系统允许用户通过付费计划解锁某些特定功能但是,总体成本不会像使用AWS ECR或微软的Azure容器注册表 等其他一些解决方案那样有效

4.GitHub软件包注册表

2019年5月,GitHub推出了软件包注册解决方案由于其解决方案的成功,他们在2020年9月发布了对容器镜像的支持,并首先作为测试选项GitHub容器注册表的一个令人关注的方面是它提供了无缝体验,尤其是对开发人员而言基本上,身份验证是使用个人访问令牌管理的

另一种选择是使用公共存储库,尽管在这种情况下,企业需要其用户使用GitHub用户帐户进行身份验证总体而言,GitHub软件包注册表肯定不是包含最多功能的容器注册表但是,如果打算使用GitHub Actions,其定价更具竞争力,因为不需要为入口付费

5.GitLab容器注册表

GitLab有自己的容器注册表,可以免费使用,并支持Docker容器映像以及Helm Chart如果使用GitLab的自托管版本或通过基于云的GitLab,它可以是自托管的GitLab容器注册表的一大特色是它的清理策略,它可以删除匹配某个正则表达式模式的标签

或者,用户可以尝试采用GitLab Package Registry,它也是免费的,并且支持Composer,Conan,Generic,Maven,npm,NuGet,PyPI和RubyGem毫无疑问,如果已经将GitLab用于项目存储库,这是一个很好的选择

6.谷歌容器注册表

谷歌容器注册表在以前是值得推荐的选项,但自从2021年夏季以来,谷歌公司一直要求他们的客户过渡到谷歌容器注册表,因为GCR只接收关键的安全修复程序从本质上来说,GAR是他们处理容器镜像和非容器工件的新方法

首先,GAR可以轻松地与持续集成/持续交付管道集成,以简化容器的构建和部署此外,它还提供扫描图像中的漏洞,用户可以人工启用

7.Harbor容器注册表

Harbour创建于2014年,并于2016年转为开源模型,并无疑是VMware公司最成功的开源项目之一Harbor是一个容器注册表,需要用户自行安装,配置和管理使用其Docker容器易于部署,可以将其与任何支持Docker的Linux发行版一起使用需要注意的是,还可以在Kubernetes集群上使用Helm Chart部署Harbor

Harbor容器注册表还支持希望从容器注册表中获得的大多数功能,例如:

漏洞扫描垃圾收集跨区域复制内容信任

总的来说,如果计划托管容器注册表,这是一个不错的选择。

8.Red Hat Quay

Quay最初创建于2012年,在过去几年中发生了重大变化首先,这个容器注册表在2014年被CoreOS公司收购,后来在2018年被Red Hat收购

而理解Quay,Project Quay或Red Hat Quay之间的区别可能会非常令人困惑。以下简要介绍每一项的含义:

Project Quay:它是一个独立容器注册表,是Red Hat Quay的开源发行版,可与Sonatype Nexus Repository OSS或Harbor相媲美Red Hat Quay.io:托管在Red Hat云平台上的企业解决方案,按私有存储库的数量定价但是其公共存储库仍然是免费的Red Hat Quay:用于私有云部署的企业容器注册表,可以通过Red Hat OpenShift由内置运营者获得

在本质上,Quay为不同的环境提供了多种产品,都具有丰富的功能,例如安全扫描,存储库镜像,审计日志等。

9.Sonatype Nexus Repository OSS

与Harbor类似,Nexus Repository是另一种自托管容器注册表解决方案,也支持其他语言包Sonatype有一个Docker映像,可在基础设施中轻松部署这个容器注册表提供了它的Nexus Repository的专业版和一些额外的功能

如果希望自托管包/容器注册表,这可能是一个不错的选择,因为它提供了涵盖许多场景的丰富文档。

9种容器注册表的比较

结论

总而言之,需要考虑的关键因素是网络就近部署,因为它对于在使用容器注册表时最大限度地降低成本和延迟至关重要。

最后,建议企业使用他们的云计算提供商提供的容器注册表例如,如果其基础设施完全基于AWS云平台,建议使用AWS ECR

这是因为所有云计算资源共享一个共同的身份验证模型,并且图像将被更快地提取,因为它们不需要从不同的云平台之间移动。

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。