Azure 中的容器注册表简介

Azure 容器注册表是基于开源 Docker 注册表 2.0 的托管注册表服务。 可以创建和维护 Azure 容器注册表来存储与管理容器映像和相关项目。

将 Azure 容器注册表与现有的容器开发和部署管道配合使用,也可使用 Azure 容器注册表任务在 Azure 中生成容器映像。 可以通过源代码提交和基础映像更新等触发器按需生成或完全自动生成。

有关 Docker 和注册表概念的详细信息,请参阅 Docker 概述关于注册表、存储库和映像

用例

将 Azure 容器注册表中的映像提取到各种部署目标:

开发人员还可以在执行容器开发工作流的过程中将内容推送到容器注册表。 例如,通过持续集成和交付工具(例如 Azure PipelinesJenkins)将容器注册表作为目标。

配置 ACR 任务,在应用程序映像的基础映像发生更新时自动重新生成应用程序映像,或者在团队将代码提交到 Git 存储库时自动完成映像生成。 创建多步骤任务,在云中以并行方式自动完成多个容器映像的生成、测试和修补。

Azure 提供包括 Azure CLI、Azure 门户和 API 支持在内的工具,用于管理 Azure 容器注册表。 可以选择安装适用于 Visual Studio Code 的 Docker 扩展以及适用于 Azure 容器注册表的 Azure 帐户扩展。 通过 Azure 容器注册表拉取和推送映像,或者运行 ACR 任务,这一切都可以在 Visual Studio Code 中进行。

主要功能

  • 注册表服务层级 - 在 Azure 订阅中创建一个或多个容器注册表。 注册表在三个层级提供:基本、标准和高级,每个层级都支持 Webhook 集成、通过 Microsoft Entra ID 进行的注册表身份验证,以及删除功能。 在与部署相同的 Azure 位置创建注册表,充分利用容器映像的本地闭合网络存储。 将高级注册表的异地复制功能用于高级复制和容器映像分发方案。

  • 安全性和访问 - 使用 Azure CLI 或标准的 docker login azure --cloud-name AzureChinaCloud 命令登录到注册表。 Azure 容器注册表通过 HTTPS 传输容器映像,并支持通过 TLS 来保护客户端连接。

    重要

    从 2020 年 1 月 13 日开始,Azure 容器注册表将要求服务器和应用程序的所有安全连接都使用 TLS 1.2。 使用任何最近的 Docker 客户端(版本 18.03.0 或更高版本)启用 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 build 操作产生的负荷转移到 Azure 来将开发内部循环扩展到云。 配置生成任务以使其自动执行容器 OS 和框架修补管道,并使其在团队将代码提交到源代码管理时自动生成映像。

    多步骤任务提供用于在云中构建、测试和修补容器映像的基于步骤的任务定义和执行。 任务步骤定义各个容器映像构建和推送操作。 它们还可以定义一个或多个容器的执行,每个步骤都使用容器作为其执行环境。

后续步骤