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