图像是否可以有多个标签?
Is it possible for image to have multiple tags?
当我将新图像推送到 repo 时,我希望它有两个标签,例如 0.2
和 latest
。这将允许始终通过使用 latest
标签和特定版本通过使用 0.2
标签来拉取最新的图像版本。 docker 可以吗?
有什么解决办法吗?我看到的唯一解决方案是进行两次单独的推送...
您可以创建多个标签:
docker tag <id> <user>/<image>:0.2
docker tag <id> <user>/<image>:latest
并推送这些。
您需要为每个版本推送一次,例如:
docker tag test:latest <repo>/<user>/test:latest
docker push <repo>/<user>/test:latest
docker tag test:0.2 <repo>/<user>/test:0.2
docker push <repo>/<user>/test:0.2
您也可以组合并说 latest
版本是 0.2
,例如:
docker tag <repo>/<user>/test:latest <repo>/<user>/test:0.2
docker push <repo>/<user>/test:0.2
因此它们将指向相同的图像层。
您可以使用多个标签构建镜像,然后使用 --all-tags
选项推送镜像。
示例:
docker build -t reg/user/image:foo -t reg/user/image:latest .
docker push reg/user/image --all-tags
不支持--all-tags
的老Docker客户端默认推送所有标签(干脆省略选项),新客户端默认只推送latest
。或者,您可能希望单独推送每个标签。
在一张图片上添加多个标签是有正当理由的(参见 OP),但如果您想添加标签以供参考,最好使用 图片标签 .
Docker 标签 在 图像中,而不是在注册表中应用于图像。这意味着标签是不可变的,并且总是与图像一起复制。
Label Schema 为 version
、vcs-ref
、build-date
等定义了可互操作标签列表。
更新:2021 年 1 月之前
如果你没有在推送命令中指定标签,它会推送所有标签。
docker tag user/imagename:tag1
docker tag user/imagename:tag2
docker push user/imagename
如果您不想通过哈希引用图像,而是“复制标签”,您可以执行以下操作:
docker tag image:origin_tag image:target_tag
docker push image:target_tag
当我将新图像推送到 repo 时,我希望它有两个标签,例如 0.2
和 latest
。这将允许始终通过使用 latest
标签和特定版本通过使用 0.2
标签来拉取最新的图像版本。 docker 可以吗?
有什么解决办法吗?我看到的唯一解决方案是进行两次单独的推送...
您可以创建多个标签:
docker tag <id> <user>/<image>:0.2
docker tag <id> <user>/<image>:latest
并推送这些。
您需要为每个版本推送一次,例如:
docker tag test:latest <repo>/<user>/test:latest
docker push <repo>/<user>/test:latest
docker tag test:0.2 <repo>/<user>/test:0.2
docker push <repo>/<user>/test:0.2
您也可以组合并说 latest
版本是 0.2
,例如:
docker tag <repo>/<user>/test:latest <repo>/<user>/test:0.2
docker push <repo>/<user>/test:0.2
因此它们将指向相同的图像层。
您可以使用多个标签构建镜像,然后使用 --all-tags
选项推送镜像。
示例:
docker build -t reg/user/image:foo -t reg/user/image:latest .
docker push reg/user/image --all-tags
不支持--all-tags
的老Docker客户端默认推送所有标签(干脆省略选项),新客户端默认只推送latest
。或者,您可能希望单独推送每个标签。
在一张图片上添加多个标签是有正当理由的(参见 OP),但如果您想添加标签以供参考,最好使用 图片标签 .
Docker 标签 在 图像中,而不是在注册表中应用于图像。这意味着标签是不可变的,并且总是与图像一起复制。
Label Schema 为 version
、vcs-ref
、build-date
等定义了可互操作标签列表。
更新:2021 年 1 月之前
如果你没有在推送命令中指定标签,它会推送所有标签。
docker tag user/imagename:tag1
docker tag user/imagename:tag2
docker push user/imagename
如果您不想通过哈希引用图像,而是“复制标签”,您可以执行以下操作:
docker tag image:origin_tag image:target_tag
docker push image:target_tag