AWS ECR 配置生命周期

什么是ECR

Amazon Elastic Container Registry (Amazon ECR) 是 AWS 托管容器镜像注册表服务,它安全、可扩展且可靠。Amazon ECR 支持私有存储库,其具有使用 AWS IAM 的基于资源的权限。这样,指定用户或 Amazon EC2 实例可以访问您的容器存储库和镜像。您可以使用首选 CLI 推送、提取和管理 Docker 映像、Open Container Itistry (OCI) 映像和 OCI 兼容构件。

摘抄自aws官方文档,简述就是一个镜像仓库,云上的产品一般会提供一些额外的功能,加在一起就是ECR。

问题

Gitlab CI/CD 的job不断的向ECR推送镜像文件,导致容量不断增大,而且很多镜像文件都是几年前的。ECR是基于存储的镜像文件大小、推送和拉去镜像进行收费的。为此需要清理一些长时间不用的镜像文件,ECR也为我们提供了这样的功能。

解决方法

  • 通过aws cli 可以获取我们的所有镜像文件的详细信息

如果aws配已经置了region信息,就可以不用加region参数;

aws ecr describe-images --region xxx --repository-name xxx

可以看到镜像的推送时间,镜像的tag,镜像的仓库名称等:

 

  • 编写我们的过期策略文件

下面这是我编写的策略文件policy.json,所有镜像文件从推送时间算起,只要是超过了180天,就进行过期清除操作。 

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "Expire images older than 180 days",
      "selection": {
        "tagStatus": "any",
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 180
      },
      "action": {
        "type": "expire"
      }
    }
  ]
}

*注意*:这个不是立即生效的,在24小时内将进行完清除工作。

3. 通过cli进行配置过期策略:

aws ecr put-lifecycle-policy --region us-east-2 \
      --repository-name xxx \
      --lifecycle-policy-text file://policy.json

参考文档:

创建生命周期策略 - Amazon ECR生命周期策略允许您创建一组规则,这些规则会让未使用的存储库镜像过期。以下程序显示如何创建生命周期策略。创建生命周期策略后,受影响的镜像会在 24 小时内过期。https://docs.aws.amazon.com/zh_cn/AmazonECR/latest/userguide/lp_creation.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知始行末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值