了解 Azure 容器注册表服务
Azure 容器注册表是基于开放源代码 Docker 注册表 2.0 的托管注册表服务。 Azure 容器注册表用于存储和管理容器映像和相关项目。
将 Azure 容器注册表与现有容器开发和部署管道配合使用,或使用 Azure 容器注册表任务在 Azure 中生成容器映像。 可以通过源代码提交和基础映像更新等触发器按需生成或完全自动生成。
用例
将 Azure 容器注册表中的映像提取到各种部署目标:
跨主机群集(包括 Kubernetes、DC/OS 和 Docker Swarm)管理容器化应用程序的可缩放业务流程系统。
支持大规模生成和运行应用程序的 Azure 服务,包括 Azure Kubernetes 服务(AKS)、Azure 容器应用、应用服务、Batch、Service Fabric 等。
开发人员还可以在执行容器开发工作流的过程中将内容推送到容器注册表。 例如,通过持续集成和交付工具(例如 Azure Pipelines 或 Jenkins)将容器注册表作为目标。
将 Azure 容器注册表任务配置为在更新基本映像时自动重新生成应用程序映像,或者在团队将代码提交到 Git 存储库时自动生成映像。 创建多步骤任务,在云中以并行方式自动完成多个容器映像的生成、测试和修补。
Azure 提供工具,包括 Azure CLI、Azure 门户和 API 支持来管理 Azure 容器注册表。 (可选)安装用于 Visual Studio Code 的 Docker 扩展和用于 Azure 容器注册表的 Azure 帐户扩展。 拉取映像并将其推送到 Azure 容器注册表,或运行 Azure 容器注册表任务,全部在 Visual Studio Code 中。
主要功能
注册表服务层 - 在 Azure 订阅中创建一个或多个容器注册表。 注册表在三个层中可用:基本层、标准层和高级层,每个层都支持 Webhook 集成、具有 Microsoft Entra ID 的注册表身份验证和删除功能。 通过创建与部署处于相同 Azure 位置的注册表,可以充分利用容器映像的本地近网络存储。 使用高级注册表的地理复制功能,应用于高级复制和容器映像分发方案。
安全性和访问权限 - 使用 Azure CLI 或标准 docker 登录命令登录到注册表。 Azure 容器注册表通过 HTTPS 传输容器映像,并支持 TLS 1.2 来保护客户端连接(对 TLS 1.0 和 1.1 的支持将被淘汰)。 可以使用 Azure 标识、Microsoft Entra ID 服务主体或提供的管理员帐户来控制对容器注册表的访问。 使用 Azure 基于角色的访问控制(Azure RBAC)将用户或系统细化的权限分配给注册表。 高级服务层的安全功能包括映像标记签名的内容信任,以及防火墙和虚拟网络(预览版)限制对注册表的访问。 Microsoft Defender for Cloud 可以选择与 Azure 容器注册表集成,以便每当有映像推送到注册表时都会扫描映像。
支持的映像和项目 - 每个映像都在存储库中进行了分组,是兼容 Docker 的容器的只读快照。 Azure 容器注册表可以包含 Windows 和 Linux 映像。 可以控制所有容器部署的映像名称。 使用标准 Docker 命令将映像推送到存储库,或从存储库拉取映像。 除了 Docker 容器映像之外,Azure 容器注册表还存储了相关内容格式,例如 Helm 图表和构建于开放容器计划(OCI)映像格式规范的映像。
自动化映像生成 - 使用 Azure 容器注册表任务(ACR 任务)简化在 Azure 中生成、测试、推送和部署映像的过程。 例如,使用 ACR 任务通过将 docker 构建操作卸载到 Azure,将开发内部循环扩展到云端。 配置生成任务以使其自动执行容器 OS 和框架修补管道,并使其在团队将代码提交到源代码管理时自动生成映像。 多步骤任务提供用于在云中构建、测试和修补容器映像的基于步骤的任务定义和执行。 任务步骤定义单个容器镜像的构建和推送操作。 它们还可以定义一个或多个容器的执行,每个步骤都使用容器作为其执行环境。