0

我正在浏览一本书并遇到了这条线:

一个标签只能应用于存储库中的单个图像,而单个图像可以有多个标签。例如,Docker Hub 上的 Java 存储库维护以下标签:7、7-jdk、7u71、7u71-jdk、openjdk-7 和 openjdk-7u71。所有这些标签都应用于同一图像。

我的问题是:为什么单个图像会有多个标签?用不同的标签标记同一图像的目的是什么?

4

2 回答 2

0

在我看来,主要有两个原因。

首先,这是为了方便,所以你可以给同一个图像多个别名。

但是您可以为图像提供其他(特殊)标签,以便将其推送到不同的注册表。

假设(例如)您正在使用microk8s并且您启用了注册表服务。要推送您的本地图像,您必须使用以前名为 的标签应用它localhost:32000/my-image:my-tag

在这种情况下,您的图像将有两个标签my-image:my-taglocalhost:32000/my-image:my-tag. 因此,要将其推送到microk8s注册表,您唯一需要做的就是发出命令git push localhost:32000/my-image:my-tag(将解析图像标签以获取要推送到的注册表的 URI)。

显然,上述概念可以应用于任何其他远程注册表。

于 2021-06-11T14:03:39.443 回答
0

您可以将多个标签用于各种目的。例如,最受欢迎的是拥有“最新”图像。

想象一下,您正在拉取最新的 ubuntu映像。那将是“docker pull ubuntu:latest”。尝试拉 ubuntu:20.04 - 你会发现你已经拉了图像。

注意:一段时间后,ubuntu:latest 将不再是 ubuntu:20.04,而是最新的标签。但是,您将始终拥有指向最新版本 ubuntu 映像的指针,并且无论您在何处使用它,都无需更改标签。

于 2021-06-11T14:07:29.767 回答