tag(标签)和版本号的区别

在 Docker 中,标签(tag)和版本号(version)都用于区分不同的镜像。但它们的意义和作用是不同的。

标签是一种用于标识和描述 Docker 镜像的方式。每个 Docker 镜像都可以有一个或多个标签,标签可以是任何字符串,用于描述该镜像的特定属性、用途、版本等信息。例如,你可以使用 latest 标签表示该镜像是最新版本的,或者使用 v1.0 标签表示该镜像的版本号为 1.0。

版本号则是一种用于区分不同镜像版本的方式。每个 Docker 镜像都有一个唯一的版本号,用于标识该镜像的某个特定版本。版本号通常由一个或多个数字、字母和符号组成,用于表示镜像的发布日期、版本号、修订号等信息。例如,你可以使用 1.0.0 版本号表示该镜像的版本为 1.0.0。

需要注意的是,标签和版本号在 Docker 中是两个独立的概念,它们可以单独使用,也可以一起使用。你可以为一个镜像设置多个标签,但每个标签都必须唯一。你也可以为一个镜像设置多个版本号,但不同版本号的镜像必须具有不同的标签或 ID。

总之,标签用于描述 Docker 镜像的特定属性和用途,而版本号用于区分不同版本的 Docker 镜像,两者可以一起使用来为 Docker 镜像提供更加完整的信息描述。

tips:以上来自chatGpt的回答

我的理解,版本号是tag的一种特殊存在形式,tag可以是任何内容,也可以是版本号。

值得一提的是,一个镜像可以有多个标签,可以写一个标签JsonToString表明用途,也可以再写一个版本号

上传语法

在docker中,需要先打标签,然后再推送

打标签

打一个标签

docker tag de2238d7b9aa registry.aliyuncs.com/jinlinxingjian/jinlinxingjian:stringTest

一次打多个标签

docker tag de2238d7b9aa 
registry.aliyuncs.com/jinlinxingjian/jinlinxingjian:stringTest
registry.aliyuncs.com/jinlinxingjian/jinlinxingjian:1.0

推送

docker push registry.aliyuncs.com/jinlinxingjian/jinlinxingjian:1.0

registry.aliyuncs.com是阿里云仓库

jinlinxingjian是我的命名空间

jinlinxingjian:1.0是选择要被推送的镜像

在推送中打标签

docker push 
registry.aliyuncs.com/jinlinxingjian/jinlinxingjian:stringTest
registry.cn-hangzhou.aliyuncs.com/jinlinxingjian/jinlinxingjian:1.0

registry.aliyuncs.com/jinlinxingjian/jinlinxingjian:stringTest 选择镜像

registry.cn-hangzhou.aliyuncs.com/jinlinxingjian/jinlinxingjian:1.0 中的 1.0 就是新打上的标签(也是版本号)