当我将新图片推送到repo时,我希望它有两个标签,例如0.2
和latest
。这样可以使用latest
标记和特定版本,例如使用0.2
标记来始终提取最新的图像版本。是否可以使用docker?
有没有解决方法?我看到的唯一解决方案是分别进行两次推送......
答案 0 :(得分:34)
您可以创建多个代码:
docker tag <id> <user>/<image>:0.2
docker tag <id> <user>/<image>:latest
并推送这些。
答案 1 :(得分:22)
您需要为每个版本执行一次推送,例如:
notify
您还可以合并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
所以那些将指向相同的图像层。
答案 2 :(得分:2)
您可以使用多个标签构建图像,然后在不显式指定标签的情况下推送图像。这会将所有图像标签推送到图像注册表。
示例:
docker build -t reg/user/image:foo -t reg/user/image:latest .
docker push reg/user/image
答案 3 :(得分:0)
在图像上有多个标签是有正当理由的(请参阅OP),但是如果您出于信息目的添加标签,最好使用图像标签。
Docker标签位于图像的内部,而不是应用于注册表中。这意味着标签是不可变的,并且总是与图像一起复制。
Label Schema定义了version
,vcs-ref
,build-date
之类的可互操作标签的列表。
答案 4 :(得分:0)
如果未在push命令中指定标签,它将推送所有标签。
docker tag user/imagename:tag1
docker tag user/imagename:tag2
docker push user/imagename