Azure 容器注册表 (ACR)
私有 Docker 注册表,支持异地复制、内容信任(签名镜像)、漏洞扫描(通过 Defender)和 webhook 触发任务。
为什么
ACR 保持镜像私有且靠近 Azure 计算(AKS、App Service、ACI),通过 Azure 骨干快速拉取。Premium 层异地复制到多区域,AKS 从本地副本拉取。
Defender 集成在推送时扫描镜像 CVE。
何时使用
任何部署到 Azure 的私有镜像都应使用 ACR。异地复制或内容信任用 Premium;单区域用 Basic/Standard。
对比 Docker Hub 私有仓库(免费有限)和 GHCR(公共免费、私有付费)—— 拉取在 Azure 内时 ACR 最便宜。
如何做
示例
常见问题
- ⚠docker push 被拒绝 —— 未登录或缺少 AcrPush 角色;运行 az acr login 或将 AcrPush/AcrPull 分配给标识。
- ⚠AKS ImagePullBackOff —— ACR 未连接;运行 az aks update --attach-acr myacr,或用 ACR 管理员凭据创建 imagePullSecret(不够安全)。
- ⚠远区域拉取慢 —— 用 Premium 异地复制将镜像镜像到每个 AKS 集群附近,拉取走本地副本。
最佳实践
- ✓用 ACR 任务实现推送即构建 CI —— 在 Azure 靠近注册表处构建,避免本地 Docker 构建和大层慢推送。
- ✓启用 Microsoft Defender for Containers 扫描每个推送镜像的 CVE,并通过准入策略阻止部署易受攻击镜像。
- ✓用内容信任(Premium)签名镜像并要求 AKS 仅拉取签名镜像,防止篡改镜像运行。
常见问题解答
什么是Azure 容器注册表 (ACR)?它解决什么问题?
私有 Docker 注册表,支持异地复制、内容信任(签名镜像)、漏洞扫描(通过 Defender)和 webhook 触发任务。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。
如何在 5 分钟内上手Azure 容器注册表 (ACR)?
两步即可跑通:① 创建 ACR(Basic、Standard 或 Premium)。;② az acr login 认证。。建议先用免费套餐验证流程,再接入生产环境。
Azure 容器注册表 (ACR) 最容易踩的坑是什么?
最高频的问题是:docker push 被拒绝 —— 未登录或缺少 AcrPush 角色;运行 az acr login 或将 AcrPush/AcrPull 分配给标识。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。
Azure 容器注册表 (ACR) 的最佳实践有哪些?
Azure 容器注册表 (ACR) 的最佳实践包括:用 ACR 任务实现推送即构建 CI —— 在 Azure 靠近注册表处构建,避免本地 Docker 构建和大层慢推送。;启用 Microsoft Defender for Containers 扫描每个推送镜像的 CVE,并通过准入策略阻止部署易受攻击镜像。;用内容信任(Premium)签名镜像并要求 AKS 仅拉取签名镜像,防止篡改镜像运行。。其中首条「用 ACR 任务实现推送即构建 CI —— 在 Azure 靠近注册表处构建,避免本地 Docker 构建和大层慢推送。」应作为团队默认规范写入 IaC 模板。
Azure 容器注册表 (ACR) 如何控制成本与避免账单意外?
三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Azure 容器注册表 (ACR) 多数提供免费套餐,先在免费额度内验证再放量。