如何代理一个谷歌容器注册表(GCR)?

依琳娜Floim
2021-09-22 12:35

Artifactory允许我们通过配置指向GCR端点的远程存储库来代理谷歌容器注册表。谷歌提供了https://gcr.io和https://eu.gcr.io端点,这两个端点都可以在Artifactory中根据所需的端点进行代理。

  1. 首先,在Artifactory中创建一个Docker远程存储库,并设置URL指向https://gcr.io(或https://eu.gcr.io,视乎需要)
  2. 在谷歌云平台界面,导航到IAM & Admin→服务帐户→选择您的服务帐户→导航到所选帐户的“密钥”页签:

用户添加图片

点击“ADD KEY”,然后“Create a new KEY”,选择JSON。将下载的JSON文件保存在一个可访问的位置。

  1. 导航回Artifactory中的远程存储库配置页面,并在“Advanced选项卡”下设置远程存储库的凭据,如下所示:

用户: _json_key

密码:密码将是之前下载的JSON文件的内容。复制文件的内容并粘贴到这里
用户添加图片

  1. 现在,可以使用创建的Docker远程存储库了。类中busybox的公共图像公开可用的GCR存储库

用户添加图片

要查看pull命令,单击列表中的图像名称(busybox),然后单击首选标记(在本例中为latest)的3点菜单,复制完整的pull命令。

  1. 接下来,在复制的pull命令中,我们需要复制主机名(“gcr.io”)后面的部分,并将主机部分替换为Artifactory主机和懊悔存储库名称,以便使用Artifactory提取映像。例如:

docker pull /google-remote/google-containers/busybox:latest

  1. 成功拉取后,该映像将在Artifactory存储库的远程缓存下可用:

用户添加图片

请注意,图片是在gcr下可用的。IO端点,在eu.gcr.io端点下不一定可用。因此,在提取图像之前,请确保它存在于所需的端点中。

此外,要确保在GCP项目下可以访问端点,并且用户有足够的权限直接从这些端点提取数据。

用户添加图片