docker 镜像中的标签和镜像层 ID 有什么区别?



根据我的理解,图像层ID是每层图像的唯一id,标签是我们附加图像名称的东西,例如用户名/repo:tag。 标签的示例是"最新",这意味着这是图像的最新更新。所以图像层也做了同样的事情。一旦我们更新图像,它就会更新到另一个层,从而获得另一个唯一的层 ID。那么,为什么我们使用标签和图像层 ID 两个标识符来区分不同版本的图像呢?

图像 ID 是伪随机十六进制字符串,虽然对于计算机来说是独特且方便的,但人类很难记住和使用。标签基本上是昵称,您可以将其分配给这些 ID,以使其更易于使用。

此外,映像 ID 是永久且不变的,而标记可以从一个映像重新分配给另一个映像。

Docker 映像 ID 是一个摘要,是映像配置对象的计算 SHA256 哈希,其中包含有助于映像文件系统定义的层的摘要。 如果要检查完整的 docker 映像 ID,请运行以下命令

docker images --no-trunc

ID 是唯一的。由于很难记住映像 ID,因此最好使用映像/存储库名称。

Docker 标签使您能够确保任何拉下您的映像的人都确切地知道他们得到了什么。您可以使用 docker 标记进行版本控制。例如,您可以标记不同版本的 Ubuntu 映像

参考: https://www.techrepublic.com/article/how-to-use-docker-tags-to-add-version-control-to-images/

Image ID 是唯一的。一个图像可以有多个与之关联的标签。

REPOSITORY                       TAG                   IMAGE ID            CREATED             SIZE
hello-world                      latest                4ab4c602aa5e        4 weeks ago         1.84kB
hello-world                      linux                 4ab4c602aa5e        4 weeks ago         1.84kB

最新更新