Docker拉入和推入新注册表是否有效?

6l7fqoea  于 2023-08-03  发布在  Docker
关注(0)|答案(2)|浏览(110)

我在Docker Trusted Registry中有几个Docker镜像。所有这些图像都是由FROM DTR中的另一个图像创建的。我想将这些图像迁移到另一个注册表中以使DTR退役。如果我从Docker DTR中提取镜像,并通过命令docker tag DTRIMAGE:tag NEWREGISTRY:tag创建一个带有新标签的新镜像,然后推送到新的注册表,那么一旦DTR退役,这些镜像会正常工作吗?或者我们需要再次从dockerfile构建镜像,并将其推送到新的注册表中,用于每个基础镜像和后续镜像?

1tu0hz3e

1tu0hz3e1#

你会失去一些东西:
1.拉取一个图像将从多平台图像中解除对平台的引用,所以如果您正在推取多平台图像,您将在拉/推方法中丢失该图像。
1.如果序列化清单的代码不同,则镜像上的摘要可能会发生变化。如果两次都使用docker推送镜像,这种情况很有可能不会发生,但不能保证。
1.如果图像是用Notary v1签名的,那么这些签名与图像名称相关联,您需要使用新的图像名称来重新签名(这不是sigstore/cosign和符号的问题,但Docker客户端还没有提取这些签名)。
在注册中心之间复制映像的更简单的方法是使用专门用于此目的的独立工具。这样做的工具包括Google的起重机、Redhat的skopeo和我自己的regclient/regctl。这些将复制镜像而不更改它们,因此摘要是未修改的,多平台镜像被复制,并且目标注册表中已经存在的层不需要被拉到您的docker本地引擎。

kx7yvsdv

kx7yvsdv2#

我不明白他们为什么不工作。你改变标签,你描述,现在图像将工作正常.它不再依赖于DockerfileDockerfile是制作图像,之后你可以随心所欲地使用图像。您甚至可以再次使用它们作为基础映像(使用新的注册表名称和标记)

相关问题