【问题标题】:Pull, Tag and Push an Image from Registry Y to Registry X将镜像从 Registry Y 拉取、标记和推送到 Registry X
【发布时间】:2019-07-21 16:27:36
【问题描述】:

目前,我们的 CI/CD 环境是基于 Kubernetes 的云。 由于性能优势,Kubernetes 云提供商最近删除了 docker 守护程序。例如,Google Kubernetes Engine 或 IBM Cloud Kubernetes 仅具有 Containerd 运行时,可以运行而不是构建容器映像。

kanikojib 等许多工具可以解决这个问题。它们提供了一种非常有效地构建 docker 镜像的方法,而无需 docker 守护进程。

问题来了:

  1. 图像“registry-x.com/repo/app1:v1-snapshot”从 CI 中的 jib 构建到 registry-x。
  2. 图像“registry-x.com/repo/app1:v1-snapshot”然后在某个时间点进行部署和测试,如果测试成功则需要交付到注册表 Y 并且需要标记作为注册表 X 中的稳定版本。

所以图像“registry-x.com/repo/app1:v1-snapshot”需要从“registry-x.com/repo/app1:v1-snapshot”标记为“registry-x.com/web/ app1:v1-release”,然后需要另外标记“registry-y.com/web/app1:v1-release”,并且都需要推送。

结果:开发中的快照图像在两个注册表中都可用,并带有发布标签。

那么如何在没有 docker 守护进程的情况下完成这 3 个简单的操作(Pull、Tag、Push)呢?似乎 kaniko 和 jib 不是办法。

我不想订购 VM 只是为了让 docker 守护程序来执行这些操作。而且我也知道 Jib 能够推送到多个注册表。但它不能只重命名图像。

也与去年的这个问题有关: Clone an image from a docker registry to another

问候,莱昂

【问题讨论】:

    标签: kubernetes continuous-integration docker-registry jib kaniko


    【解决方案1】:

    Docker Registry 提供了一个HTTP API,因此您可以使用这些方法来拉取和推送图像。

    有几个库提供了更高的抽象层(docker-registry-client in Godocker-registry-client in Js 等)。

    无论如何,流量都会

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-14
      • 2015-12-17
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2023-02-01
      • 2023-02-10
      相关资源
      最近更新 更多