如何在不拉动图像的情况下在docker hub上添加标记别名

时间:2018-01-21 04:06:31

标签: docker dockerhub

当我在CI中构建图像时,我使用唯一的SHA标记推送它。然后,当我将其部署到生产时,我想更改:latest别名以指向同一图像,如下所示:

docker pull org/foo:34f8a342
docker tag org/foo:34f8a342 org/foo:latest
docker push org/foo:latest

现在我想避免拉这个图像。问题是部署脚本的容器与用于构建它的容器不同,因此我不在本地拥有此映像。有没有办法在docker hub上添加标签别名而无需在本地拥有此图像?

2 个答案:

答案 0 :(得分:0)

我不知道直接在docker hub上标记docker镜像。您的问题有一个解决方法,即在构建图像时使用两个标记标记图像。 TRANSFORM MAX([Value]) SELECT [Report Date], [Name], [Location] FROM myTable GROUP BY [Report Date], [Name], [Location] PIVOT [Desc]; 允许为一个构建创建多个标记:

docker build

答案 1 :(得分:0)

可以看到here是不允许的,但是,如果问题是某人在评论中提到的那样拖拉整个图像的速度很慢,则只需将清单“拉”为{{3 }},通过 Docker Registry API

MANIFEST=$(curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json" "${REGISTRY_NAME}/v2/${REPOSITORY}/manifests/${TAG_OLD}")
curl -X PUT -H "Content-Type: application/vnd.docker.distribution.manifest.v2+json" -d "${MANIFEST}" "${REGISTRY_NAME}/v2/${REPOSITORY}/manifests/${TAG_NEW}"