amazon-web-services – 如何从AWS ECR Container Registry中删除未标记的图像

前端之家收集整理的这篇文章主要介绍了amazon-web-services – 如何从AWS ECR Container Registry中删除未标记的图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

将图像推送到Amazon ECR时,如果标记已存在于repo中,则旧图像仍保留在注册表中,但处于未标记状态.

所以,如果i docker push image / haha​​:1.0.0我第二次这样做(假设有些事情发生了变化),第一张图片就会从AWS ECR中取消标记.

有没有办法从未标记的图像中安全地清理所有注册表?

最佳答案
您可以在单个请求中删除所有图像,而无需循环:

IMAGES_TO_DELETE=$( aws ecr list-images --region $ECR_REGION --repository-name $ECR_REPO --filter "tagStatus=UNTAGGED" --query 'imageIds[*]' --output json )

aws ecr batch-delete-image --region $ECR_REGION --repository-name $ECR_REPO --image-ids "$IMAGES_TO_DELETE" || true

首先,它以json格式获取标记的图像列表:

[{“imageDigest”:“sha256:…”},{“imageDigest”:“sha256:…”},…]

然后它将该列表发送到批处理图像删除.

最后一个||如果没有未标记的图像,则需要true以避免错误代码.

猜你在找的Docker相关文章