通过将任何容器注册表迁移到Artifactory来扩展您的开发经验

轻松地将Docker注册表迁移到Artifactory

随着开发人员今天必须使用的可用包格式的范围越来越广,管理和维护这些工具的复杂性也在不断增加。JFrog Artifactory是一个通用的工件管理器支持所有主要的包格式,它几乎适用于任何开发生态系统——包括Docker环境。

为了增强使用Docker的体验,您可以无缝地迁移您的码头工人注册表Artifactory。

无论您是使用亚马逊的ECR, Docker的DTR, Docker Hub,谷歌的GCR, Quay或任何通用令牌注册表,该过程可以像在使用我们的Docker2Artifactory移居者。这包括Docker镜像迁移以及选择源的权限迁移。迁移包括选择源的组、用户、权限和组织机器人(用于码头)。

确定源和身份验证方法

Docker2Artifactory迁移工具适应各种注册表,每个注册表都有自己独特的操作模式和身份验证需求。因此,迁移的第一步将是确定您正在使用的注册中心类型。请参阅下面的图表,以确定您应该使用的来源和认证方法:

注册供应商 使用的选项 身份验证方法
亚马逊 ecr AWS生成令牌
谷歌 gcr 密钥文件
码头(quay.io) 码头 OAuth2访问令牌
码头(内部企业) quayee 超级用户名/密码或OAuth2访问令牌
其他(DTR、人工等) 通用的 匿名或用户名/密码

它是如何运作的

一旦知道了源和身份验证方法的类型,就可以开始迁移了。您可能会问自己,这个工具究竟在做什么?该工具通过使用通用的Docker REST api(如果可用)和注册表提供的自定义api(如果没有)来工作。该工具将使用您的凭证执行各种调用,并构建应该迁移的映像列表。一旦列表就位,它将调用各种工作者同时下载映像并将其部署到指定的Artifactory存储库。该工具非常聪明,只迁移它需要迁移的内容,不会覆盖现有的映像(除非您告诉它这样做)。完成此过程后,它将生成一份报告,其中包含找到的映像数量和成功迁移的映像数量。

只迁移您想要的存储库

您可以确定想要迁移的内容,是源注册表的整个内容还是一个子集。该工具的默认行为是搜索并迁移所有存储库的每个标记。您还可以选择提供存储库和/或存储库列表:标记组合。如果您指定一个没有标记的存储库名称,那么默认情况下,该存储库的所有标记都将被迁移。在某些情况下,您不希望这样做,您只希望迁移特定的标签。在这些情况下,您所要做的就是指定一个存储库:标记组合,并且只会导入特定的标记。

一些例子

GCR

$ python DockerMigrator.py gcr my-gcr-permissionsJson https://my-new.artifactory/artifactory管理员密码docker-local

ECR

在docker中使用“不包含电子邮件”。h9 https://113776848705.dkr.ecr.us-west-2.amazonaws.com $ python dockermigration .py ecr https://113776848705.dkr.ecr.us-west-2.amazonaws.com eyh…H9 https://my-new.artifactory/artifactory管理员密码docker-local

通用(匿名)与图像文件

$ python DockerMigrator.py generic https://registry-1.docker.io https://my-new.artifactory/artifactory管理员密码docker-local——image-file image-file.txt

具有凭证的通用

$ python DockerMigrator.py generic https://registry-1.docker.io https://my-new.artifactory/artifactory admin password docker-local——source-username someuser——source-password somepassword

迁移权限数据

一些注册表已经内置了用户、组和权限管理。为了帮助您轻松过渡,您可以使用附带的SecurityMigrator工具将它们映射到您的Artifactory实例。目前支持Quay企业版DTR

关于如何使用这个工具的所有细节和示例以及它提供的功能都可以在我们的公众号中找到GitHub上的Docker2Artifactory项目

访问我们的网址:旧金山的DockerCon6月12日至14日在我们的展位G22学习如何将您的集装箱迁移到人工工厂。