DevOps 101:容器注册表

这是来自JFrog dev.to博客网站.
当你刚进入一个行业时,你会遇到很多新概念。这可能会让你很难在不熟悉的环境中站稳脚跟,尤其是对初级工程师来说。在本系列中,我将介绍DevOps领域常见的工具和术语,偶尔还会介绍一些对新手友好的新兴或成熟技术教程。如果你有什么要求或建议,请告诉我!
今天,我将分析容器注册表。
什么是货柜注册处?
容器注册表是一种工具用于在存储库中托管、版本控制和分发容器映像。它们可以是公共的比如Docker Hub或者私人的JFrog货柜注册处.如果你用过Docker,你就拉过一个图像之前的容器注册表。这里有几个,公共的和私有的,免费的和付费的,但我主要关注JFrog容器注册表,因为它是免费的,可以在本地或云提供商上运行,并提供了其他服务没有的一些其他不错的功能。就像Helm仓库以及高级元数据。
公共容器注册中心和私有容器注册中心之间有什么区别?
公共注册中心允许任何人创建存储库并在那里托管容器映像供其他人使用。开始使用公共注册中心非常快,因为您不需要处理任何基础设施。但是,公共注册中心确实牺牲了安全性来换取易用性。如果使用标准映像适用于您的项目,并且您不关心安全性,那么公共注册中心可能是您的正确选择。
私有注册中心由将要使用它们的组织托管。JFrog容器注册表可以托管在本地硬件上(on-prem),也可以托管在像谷歌、Amazon或Microsoft这样的云提供商上。托管自己的容器注册表可以提供细粒度的访问控制和定义自己的安全策略的能力。由于组织可以完全控制映像、存储库和这些东西的访问控制,因此他们可以确定容器映像就是他们所说的那样,并且没有人可以访问他们不应该访问的东西。在JFrog容器注册表的情况下,您还可以选择将映像组织到各种本地、远程、通用和虚拟存储库中,这取决于您的需要。对于较大的组织,这种额外的可靠性和安全性值得在设置基础设施本身时付出努力。
这些不同类型的存储库是什么?
局部存储库正如它们听起来的那样——本地管理的存储库,您可以将工件部署到其中。很简单。
远程存储库用作远程管理存储库的缓存代理。这些稍微复杂一些,因为您必须定义缓存和代理的行为。它和镜子不一样;根据您定义的配置,工件只有在被其他东西请求时才存在于远程存储库中。
通用存储库没有与它们关联的特定包类型。在创建存储库时,必须定义包类型。JFrog Container Registry使用它来为您做一些幕后工作,为您的包索引工件和计算元数据以优化性能。泛型存储库没有包类型,所以您可以在这里放入任何您想要的东西,但是您确实会失去一些您在其他情况下可能会看到的特性。
虚拟存储库将具有相同包类型的各种远程和本地存储库的集合捆绑到单个URL中。
整洁。我该怎么试试这些东西呢?
最快最简单的方法是用云托管JFrog Container Registry的版本,因为它仍然是免费的(你在云提供商上支付一定数量的使用费用),主要是配置自己,并且不需要你设置反向代理。在这里注册您喜欢的云提供商,并按照自动设置向导配置一些初始选项并创建您的默认存储库。
一旦完成了这些,就很容易进行交互了。您可以使用本机Docker客户机,就像您需要的那样使用Docker Hub.只需登录:
Docker登录${server-name}-{repo-name}.jfrog.io
要推送一个图像,给它一个标签并push:
Docker标签${server-name}-{repo-name}.jfrog。Io / docker推送${server-name}-{repo-name}.jfrog.io/
拉一张图片也很简单:
Docker拉${server-name}-{repo-name}.jfrog.io/
on-prem版本的设置和使用稍微复杂一些,但幸运的是官方文档非常明确。
给我总结一下
如果您的组织或团队正在认真对待云原生开发,那么您可能会在某个时候使用私有容器注册表。私有注册中心的目标是为您提供一个组织、版本化和部署容器映像的地方,与公共注册中心相比,它增加了安全选项,并更好地集成到现有的CI/CD工作流中,无论是托管在本地服务器上还是在云中。JFrog货柜注册处在三大云服务提供商的任何一家上都是免费的,并为你提供了市场上其他服务所能做的一切,外加一些额外的好处,如Helm存储库和丰富的元数据。
我希望我已经帮助您理解了这个工具为您做了什么,并为您提供了一个合理的使用点。如果你仍然感到困惑,也没关系-如果你有更多的问题,请随时与我们联系。请继续关注本系列的下一篇文章,如果您有深入研究或演示的要求,请告诉我!
额外的资源:2022世界杯阿根廷预选赛赛程