AWS ECR 容器注册表
托管 Docker 注册表,IAM 认证、镜像扫描、生命周期策略和跨区域复制。
AWS入门
为什么
ECR 经 IAM 集成 ECS/EKS — 无 Docker Hub 凭证管理。镜像扫描找 CVE。生命周期策略自动清理旧镜像。$0.10/GB/月存储。
何时使用
任何 AWS 容器部署时用。避免公共镜像(用 Docker Hub)或多云(用 GHCR)。
如何做
1. 创建仓库 — aws ecr create-repository --repository-name my-app
2. 认证 — aws ecr get-login-password | docker login
3. 推送 — docker tag、docker push 123.dkr.ecr.us-east-1.amazonaws.com/my-app:v1
4. 扫描 — 推送时(基础/增强)、Inspector 深度 CVE
5. 生命周期 — 自动删未标记或旧镜像
6. 跨区域 — 复制到其他区域更快拉取
7. 拉取缓存 — 代理 Docker Hub、避免限流
8. 不可变标签 — 防覆盖、强制版本升级
示例
# 认证并推送
aws ecr get-login-password --region us-east-1 | \
docker login --username AWS --password-stdin 123.dkr.ecr.us-east-1.amazonaws.com
docker tag my-app:latest 123.dkr.ecr.us-east-1.amazonaws.com/my-app:v1
docker push 123.dkr.ecr.us-east-1.amazonaws.com/my-app:v1
# 生命周期 — 保留最近 10 镜像
aws ecr put-lifecycle-policy --repository-name my-app --lifecycle-policy-text '{
"rules": [{
"rulePriority": 1, "description": "保留 10",
"selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 10 },
"action": { "type": "expire" }
}]
}'
常见问题
- ⚠旧镜像累积 — 设生命周期策略、自动删未标记和旧
- ⚠扫描发现被忽略 — CRITICAL CVE 时 CI 失败、非仅报告
- ⚠跨区域拉取慢 — 复制到部署区域
最佳实践
- ✓启用增强扫描 — Inspector 集成、更深 CVE 检测
- ✓设生命周期策略 — 自动清理旧镜像、控制存储成本
- ✓用不可变标签 — 防覆盖、确保可复现部署
常见问题解答
什么是AWS ECR 容器注册表?它解决什么问题?
托管 Docker 注册表,IAM 认证、镜像扫描、生命周期策略和跨区域复制。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。
如何在 5 分钟内上手AWS ECR 容器注册表?
两步即可跑通:① 创建仓库 — aws ecr create-repository --repository-name my-app;② 认证 — aws ecr get-login-password | docker login。建议先用免费套餐验证流程,再接入生产环境。
AWS ECR 容器注册表 最容易踩的坑是什么?
最高频的问题是:旧镜像累积 — 设生命周期策略、自动删未标记和旧。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。
AWS ECR 容器注册表 的最佳实践有哪些?
AWS ECR 容器注册表 的最佳实践包括:启用增强扫描 — Inspector 集成、更深 CVE 检测;设生命周期策略 — 自动清理旧镜像、控制存储成本;用不可变标签 — 防覆盖、确保可复现部署。其中首条「启用增强扫描 — Inspector 集成、更深 CVE 检测」应作为团队默认规范写入 IaC 模板。
AWS ECR 容器注册表 如何控制成本与避免账单意外?
三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS ECR 容器注册表 多数提供免费套餐,先在免费额度内验证再放量。