什么是镜像版本

镜像地址格式 中所述,镜像地址格式包含如下各个方面:

HOST/NAMESPACE/NAME:TAG

镜像地址的最后一部分称为镜像标签(tag),但是,一般情况下,我们通过指定不同tag,来区分同一个软件的不同版本,如:

ubuntu:xenial
ubuntu:16.04
ubuntu:18.04

所以,在脉冲云,我们称镜像tag为镜像版本。

多tag引用

镜像tag,仅仅是个引用,是tag,是指向,并非镜像数据实体。一个镜像可以有多个tag,比如,ubuntu:xenialubuntu:16.04 其实就是同一个镜像的两个名称而已。

tag的不确定性

因为镜像的tag是可以重写和覆盖的,所以镜像的tag引用,存在不确定性。

比如,ubuntu镜像每隔一段时间就会进行更新,但是发布时的tag命名是不会变的,还是使用 16.04 这个发行版名称做镜像tag,那么,可以肯定,你在半年前拉取的 ubuntu:16.04 镜像,和今天拉取的 ubuntu:16.04镜像虽然名称一样,但是镜像数据实体肯定不一样。

镜像tag能够重写,但是同一个镜像的ID是不会改变的,因为镜像ID是对镜像信息的HASH摘要,所以可以通过镜像ID判断两个镜像是否真的相同。

但是,镜像ID不容易被人记忆和辨识,在实际使用中还是使用镜像tag比较方便。那么,我建议你采取一个约定:

一个版本的镜像,必须用一个准确的版本号做tag,并且不允许重写,发布新镜像时,必须同时更新版本号。

以此来确保我们项目中,储存在镜像仓库中的镜像,和分发到数台服务器上的镜像,版本和镜像数据都是确定的,以避免镜像版本混乱造成的运维困难。

另外,请参考 为什么要避免使用latest

results matching ""

    No results matching ""