gpt4 book ai didi

amazon-web-services - ECR 中的 Docker 图像标记

转载 作者:行者123 更新时间:2023-12-02 20:32:16 25 4
gpt4 key购买 nike

我正在使用 Jenkins 在 AWS ECR 中推送 docker 镜像。

在推送图像时,我将标签提供为 $Build_Number.So 在 ECR 存储库中,我有带有 1、2、3、4 等标签的图像。

但是当我尝试使用 Jenkins 作业中的以下命令从 EC2 中提取图像时

       docker pull 944XXX.dkr.ecr.us-east-1.amazonaws.com/repository1:latest

我收到错误,因为没有带有最新标签的图像。

在这里我想拉取最新的图像(带有标签 4)。我不能在这里硬编码标签号,因为 docker pull 命令将自动从 Jenkins 作业运行。那么我可以通过什么方式拉取最新的图像?

最佳答案

我相信这里的正确方法是使用不同的标签推送相同的图像两次。一次推送将包含没有标签的图像,然后第二次推送将是您标记后的相同图像。

请注意,您不必两次构建镜像。您只需要发出 docker push两次。

ECR 足够“聪明”,可以识别图像摘要没有更改,并且不会尝试实际上传图像两次。在第二次推送时,只有标签会被发送到 ECR。

现在您有一个未标记的版本和一个标记的版本,您可以拉取没有标记规范的图像,您将获得 :latest图片。 Here is a reference to the AWS docs他们提到 :latest如果用户没有发送标签,将添加标签。

流程如下所示:

# Build the image
docker build -f ./Dockerfile -t my-web-app
# Push the untagged image (will become the ":latest")
docker push my-web-app
# Tag the image with your build_number
docker tag my-web-app my-web-app:build_number
# Push the tagged image
docker push my-web-app:build_number

您现在将能够:

docker pull my-web-app:build_number
docker pull my-web-app

这将导致 2 个相同的图像,只有标签区分它们。

关于amazon-web-services - ECR 中的 Docker 图像标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58695853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com