【问题标题】:Confused with the concept of docker tags对 docker 标签的概念感到困惑
【发布时间】:2021-08-28 11:20:05
【问题描述】:

我正在翻阅一本书,遇到了这条线:

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

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

【问题讨论】:

    标签: docker docker-registry docker-tag


    【解决方案1】:

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

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

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

    假设(例如)您正在使用 microk8s 并且您启用了 registry 服务。要推送您的本地图像,您必须使用以前名为 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)。

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

    【讨论】:

      【解决方案2】:

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

      假设您正在提取 最新 ubuntu 图像。 那将是“docker pull ubuntu:latest”。尝试拉取 ubuntu:20.04 - 你会发现你已经拉取了镜像。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-28
        • 2011-06-29
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多