このクイックスタートでは、Azure Resource Manager テンプレート (ARM テンプレート) を使用して Azure Container Registry インスタンスを作成する方法について説明します。 このテンプレートは、複数の Azure リージョン間でレジストリ コンテンツを自動的に同期する 、geo レプリケート されたレジストリを設定します。 geo レプリケーションを使用すると、リージョンデプロイからイメージにネットワークに近いアクセスが可能になり、1 つの管理エクスペリエンスが提供されます。 これは、 Premium レジストリ サービス レベルの機能です。
Azure Resource Manager テンプレートは、プロジェクトのインフラストラクチャと構成を定義する JavaScript Object Notation (JSON) ファイルです。 このテンプレートでは、宣言型の構文が使用されています。 デプロイを作成するための一連のプログラミング コマンドを記述しなくても、意図したデプロイを記述できます。
レプリケーションを含むレジストリは、ARM/Bicep テンプレートの完全モードのデプロイをサポートしていません。
環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 Azure portal でテンプレートが開きます。
Prerequisites
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 Container Registry テンプレートのサンプルについては、クイックスタート テンプレート ギャラリーを参照してください。
テンプレートをデプロイする
Azure にサインインし、テンプレートを開くには次のイメージを選択します。
次の値を選択または入力します。
サブスクリプション: Azure サブスクリプションを選択します。
リソース グループ: [ 新規作成] を選択し、リソース グループの一意の名前を入力して、[ OK] を選択します。
[リージョン] : リソース グループの場所を選択します。 例: 米国中部。
Acr Name: レジストリに対して生成された名前を受け入れるか、名前を入力します。 名前はグローバルに一意である必要があります。
Acr Admin User Enabled: 既定値をそのまま使用します。
場所: レジストリのホーム レプリカの生成された場所を受け入れるか、 米国中部などの場所を入力します。
Acr Sku: 既定値をそのまま使用します。
Acr レプリカの場所: リージョンの短い名前を使用して、レジストリ レプリカの場所を入力します。 ホーム レジストリの場所とは異なる必要があります。 例: westeurope。
[Review + Create](確認と作成) を選択し、使用条件を確認します。 同意する場合は、 [作成] を選択します。
レジストリが正常に作成されると、次の通知が表示されます。
テンプレートをデプロイするには Azure portal を使用します。 Azure portal に加えて、Azure PowerShell、Azure CLI、REST API を使用できます。 他のデプロイ方法については、「テンプレートのデプロイ」を参照してください。
デプロイされているリソースを確認する
Azure portal またはツール (Azure CLI など) を使用して、コンテナー レジストリのプロパティを確認します。
ポータルでコンテナー レジストリを検索し、作成したコンテナー レジストリを選択します。
[概要] ページで、レジストリのログイン サーバーを書き留めます。 Docker を使用してイメージにタグを付けてレジストリにプッシュするときに、この URI を使用します。 情報については、Docker CLI を使用した最初のイメージのプッシュに関するページを参照してください。
[ レプリケーション ] ページで、テンプレートを使用して追加されたホーム レプリカとレプリカの場所を確認します。 必要に応じて、このページにレプリカを追加します。
リソースをクリーンアップする
不要になったら、リソース グループ、レジストリ、およびレジストリ レプリカを削除します。 これを行うには、Azure portal に移動し、レジストリを含むリソース グループを選択して、 [リソース グループの削除] を選択します。
次のステップ
- レジストリ、リポジトリ、成果物の詳細について説明します。
- Docker CLI を使用してコンテナー レジストリにイメージをプッシュおよびプルする方法について説明します。