快速入门:使用 ARM 模板创建异地复制容器注册表
本快速入门介绍如何使用 Azure 资源管理器模板(ARM 模板)创建 Azure 容器注册表实例。 该模板会设置一个异地复制注册表,使其自动在多个 Azure 区域之间同步注册表内容。 借助异地复制,可以从区域部署对映像进行近网络访问,同时提供单一管理体验。 这是高级注册表服务层级的一项功能。
Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。
具有复制功能的注册表不支持 ARM/Bicep 模板完整模式部署。
如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。
注意
在我们从 https://raw.githubusercontent.com/
网站下载特定模板并尝试使用自定义模板进行部署时,有时会遇到特定的问题。
我们可以按照以下指导在 Azure 中国世纪互联部署模板:
复制模板 URI,通过更改前缀、中缀和模板文件名来转换 URI。 例如,源 URI 是
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/vnet-two-subnets/azuredeploy.json
类别 原始值 转换后的值 操作 前缀 https://raw.githubusercontent.com
https://github.com
更新 中辍 blob
在 master
或main
(Git 存储库的默认分支名称)之前添加模板文件名 azuredeploy.json 保留默认值,或替换为新模板文件名。 update 修改后,转换后的 URI 看起来将类似于
https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.network/vnet-two-subnets/azuredeploy.json
。请注意,很多模板已移至 https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/{Microsoft_Resource_Provider_Name}/ 之类的路径,你可以遵循相应的路径规定来更新原始 URI。
复制转换后的 URI,并在 Internet 浏览器中手动下载特定的模板内容。
在门户的“自定义部署”页中,选择“在编辑器中生成自己的模板”。
将下载的模板内容复制到“编辑模板”页中,并按照 Azure 中国云的要求更新参数,例如 Azure 中国云环境不支持的终结点、位置、VM 映像、VM 大小、SKU 和资源提供程序的 API 版本。
选择“保存”以返回“自定义部署”页。
选择“查看 + 创建”。
先决条件
如果没有 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]"
}
}
}
该模板中定义了以下资源:
- Microsoft.ContainerRegistry/registries:创建 Azure 容器注册表
- Microsoft.ContainerRegistry/registries/replications:创建容器注册表副本
可以在快速入门模板库中找到更多 Azure 容器注册表模板示例。
部署模板
选择下图登录到 Azure 并打开一个模板。
选择或输入以下值。
订阅:选择一个 Azure 订阅。
资源组:选择“新建”,为资源组输入一个独一无二的名称,然后选择“确定”。
区域:选择资源组的位置。 示例:中国东部 2。
Acr 名称:接受为注册表生成的名称,或者输入一个名称。 它必须全局唯一。
已启用 Acr 管理员用户:接受默认值。
位置:接受为注册表的主副本生成的位置,或输入一个位置,例如“中国东部 2”。
Acr Sku:接受默认值。
Acr 副本位置:使用区域的短名称输入注册表副本的位置。 该位置必须与主注册表的位置不同。 示例:chinaeast2。
选择“查看 + 创建”,然后查看条款和条件。 如果同意,请选择“创建”。
成功创建注册表后,你会收到通知:
使用 Azure 门户部署模板。 除了 Azure 门户之外,还可以使用 Azure PowerShell、Azure CLI 和 REST API。 若要了解其他部署方法,请参阅部署模板。
查看已部署的资源
使用 Azure 门户或诸如 Azure CLI 之类的工具来查看容器注册表的属性。
在门户中,搜索“容器注册表”,然后选择所创建的容器注册表。
在“概述”页上,记下注册表的“登录服务器” 。 使用 Docker 标记映像并将其推送到注册表时,请使用此 URI。 有关信息,请参阅使用 Docker CLI 推送第一个映像。
在“复制”页上,确认主副本和通过该模板添加的副本的位置。 如果需要,可在此页上添加更多副本。
清理资源
如果不再需要资源组、注册表和注册表副本,请将其删除。 为此,请访问 Azure 门户,选择包含注册表的资源组,然后选择“删除资源组”。
后续步骤
在本快速入门中,你已使用 ARM 模板创建了 Azure 容器注册表,并在其他位置配置了注册表副本。 请继续阅读 Azure 容器注册表教程,以更深入地了解 ACR。
有关引导你完成模板创建过程的分步教程,请参阅: