当我在CI中构建镜像时,我会使用唯一的SHA标签来推送它。然后,当我将其部署到生产环境中时,我希望将:latest别名更改为指向相同的映像,如下所示:
docker pull org/foo:34f8a342
docker tag org/foo:34f8a342 org/foo:latest
docker push org/foo:latest现在我想避免拉出这张图片。问题是,用于部署脚本容器与用于构建脚本的容器不同,因此我在本地没有此镜像。有没有办法在docker hub上添加一个标签别名,而不需要在本地拥有这个镜像?
发布于 2020-06-24 02:57:04
可以看出,这是不允许的,但是如果问题是像有人在评论中提到的那样,拉取整个图像的速度很慢,那么只需通过Docker Registry API以here的形式“拉取”清单就可以更快地获取它
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}"发布于 2018-01-21 13:32:34
我不知道如何在docker hub上直接标记docker图像。有一个解决方法可以解决你的问题,那就是在构建图像时使用两个标记来标记它。docker build允许为一个构建创建多个标签:
docker build -t org/foo:34f8a342 -t org/foo:latest .https://stackoverflow.com/questions/48363572
复制相似问题