0

将 docker 镜像(带test标签)推送到 ECR 后,不止一次,旧的 docker 镜像在 ECR 中未加标签

在 ECR 中删除未标记图像的 AWS CLI 命令是什么?

4

3 回答 3

1

发生的情况是,当您发布标签时,image:tag该标签将从之前的图像中删除。

您可以运行 CLI 命令来识别未标记的图像并将输出通过管道传送到命令以删除这些图像。

您还可以使用生命周期策略。

请参阅下面的链接。我自己没有测试过这个。

参考: 如何从 AWS ECR Container Registry 中删除未标记的图像

https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html

于 2020-01-23T04:21:04.720 回答
1

您可以使用 AWS 最近添加的 ECR 生命周期策略https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html

这是仅保留一个未标记图像并使所有其他图像失效的策略示例ECR 政策规则

于 2021-01-05T09:13:52.017 回答
1

您可以尝试使用 aws cli - 设置您的 ecr 存储库所在的正确 AWS 区域。

AWSREGION=us-west-2 && ecr describe-repositories --region=$AWSREGION --output text | awk '$5{print $5}' | sed -n  's/.*repository\/\(.*\)/\1/p' | while read line; do aws ecr list-images --region=$AWSREGION --repository-name "$line" --filter tagStatus=UNTAGGED --query 'imageIds[*]' --output text | while read imageId; do aws ecr batch-delete-image  --region=$AWSREGION --repository-name "$line" --image-ids imageDigest=$imageId; done; done

此命令将递归删除所有未标记的图像。希望这能解决您的问题。

于 2020-08-23T13:14:10.597 回答