你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 ARM 模板创建异地复制容器注册表

本快速入门介绍如何使用 Azure 资源管理器模板(ARM 模板)创建 Azure 容器注册表实例。 该模板会设置一个异地复制注册表,使其自动在多个 Azure 区域之间同步注册表内容。 借助异地复制,可以从区域部署对映像进行近网络访问,同时提供单一管理体验。 这是高级注册表服务层级的一项功能。

Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。

具有复制功能的注册表不支持 ARM/Bicep 模板完整模式部署。

如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。

Button to deploy the Resource Manager template to Azure.

先决条件

如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

查看模板

本快速入门中使用的模板来自 Azure 快速启动模板。 该模板会设置注册表和其他区域副本。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "12610175857982700190"
    }
  },
  "parameters": {
    "acrName": {
      "type": "string",
      "defaultValue": "[format('acr{0}', uniqueString(resourceGroup().id))]",
      "maxLength": 50,
      "minLength": 5,
      "metadata": {
        "description": "Globally unique name of your Azure Container Registry"
      }
    },
    "acrAdminUserEnabled": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Enable admin user that has push / pull permission to the registry."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for registry home replica."
      }
    },
    "acrSku": {
      "type": "string",
      "defaultValue": "Premium",
      "allowedValues": [
        "Premium"
      ],
      "metadata": {
        "description": "Tier of your Azure Container Registry. Geo-replication requires Premium SKU."
      }
    },
    "acrReplicaLocation": {
      "type": "string",
      "metadata": {
        "description": "Short name for registry replica location."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ContainerRegistry/registries",
      "apiVersion": "2019-12-01-preview",
      "name": "[parameters('acrName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('acrSku')]"
      },
      "tags": {
        "displayName": "Container Registry",
        "container.registry": "[parameters('acrName')]"
      },
      "properties": {
        "adminUserEnabled": "[parameters('acrAdminUserEnabled')]"
      }
    },
    {
      "type": "Microsoft.ContainerRegistry/registries/replications",
      "apiVersion": "2019-12-01-preview",
      "name": "[format('{0}/{1}', parameters('acrName'), parameters('acrReplicaLocation'))]",
      "location": "[parameters('acrReplicaLocation')]",
      "properties": {},
      "dependsOn": [
        "[resourceId('Microsoft.ContainerRegistry/registries', parameters('acrName'))]"
      ]
    }
  ],
  "outputs": {
    "acrLoginServer": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerRegistry/registries', parameters('acrName'))).loginServer]"
    }
  }
}

该模板中定义了以下资源:

可以在快速入门模板库中找到更多 Azure 容器注册表模板示例。

部署模板

  1. 选择下图登录到 Azure 并打开一个模板。

    Button to deploy the Resource Manager template to Azure.

  2. 选择或输入以下值。

    • 订阅:选择一个 Azure 订阅。

    • 资源组:选择“新建”,为资源组输入一个独一无二的名称,然后选择“确定”。

    • 区域:选择资源组的位置。 示例:“美国中部”。

    • Acr 名称:接受为注册表生成的名称,或者输入一个名称。 它必须全局唯一。

    • 已启用 Acr 管理员用户:接受默认值。

    • 位置:接受为注册表的主副本生成的位置,或输入一个位置,例如美国中部。

    • Acr Sku:接受默认值。

    • Acr 副本位置:使用区域的短名称输入注册表副本的位置。 该位置必须与主注册表的位置不同。 示例:westeurope。

      Template properties

  3. 选择“查看 + 创建”,然后查看条款和条件。 如果同意,请选择“创建”。

  4. 成功创建注册表后,你会收到通知:

    Portal notification

使用 Azure 门户部署模板。 除了 Azure 门户之外,还可以使用 Azure PowerShell、Azure CLI 和 REST API。 若要了解其他部署方法,请参阅部署模板

查看已部署的资源

使用 Azure 门户或诸如 Azure CLI 之类的工具来查看容器注册表的属性。

  1. 在门户中,搜索“容器注册表”,然后选择所创建的容器注册表。

  2. 在“概述”页上,记下注册表的“登录服务器” 。 使用 Docker 标记映像并将其推送到注册表时,请使用此 URI。 有关信息,请参阅使用 Docker CLI 推送第一个映像

    Registry overview

  3. 在“复制”页上,确认主副本和通过该模板添加的副本的位置。 如果需要,可在此页上添加更多副本。

    Registry replications

清理资源

如果不再需要资源组、注册表和注册表副本,请将其删除。 为此,请访问 Azure 门户,选择包含注册表的资源组,然后选择“删除资源组”。

Delete resource group

后续步骤

在本快速入门中,你已使用 ARM 模板创建了 Azure 容器注册表,并在其他位置配置了注册表副本。 请继续阅读 Azure 容器注册表教程,以更深入地了解 ACR。

有关引导你完成模板创建过程的分步教程,请参阅: