1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AzureContainerRegistryのプライベートアクセスでの使用方法

Last updated at Posted at 2023-10-24

AzureContainerRegistryとは

AzureContainerRegistry(以降ACRと呼ぶ)とはDockerイメージを管理するAzureリソース ≒ DockerHubである。
クラウドプラットフォームにAzureを採用するとき、DockerHubの代わりに使用する。

Dockerイメージとは

パブリックアクセスでの使用方法

ACRタスクを使用する。

az acr build --image sample/hello-world:v1 --registry myContainerRegistry008 --file Dockerfile .
以下はコマンドの詳細な説明です
  • az acr build
    • Azure CLIのコマンドで、Azure Container Registryを操作するためのサブコマンドです。
  • --image sample/hello-world:v1
    • Dockerイメージの名前とタグを指定する部分です。イメージ名はsample/hello-worldで、タグはv1です。
  • --registry myContainerRegistry008
    • ここでmyContainerRegistry008はAzure Container Registryの名前です。指定されたレジストリにイメージがプッシュされます。
  • --file Dockerfile
    • DockerイメージをビルドするためのDockerfileのパスを指定します。この例では、カレントディレクトリにある dockerfile という名前のファイルを使用しています。
  • 最後の.
    • ビルドに使用するソースコードのディレクトリを指定します。この例では、カレントディレクトリを使用しています。

このコマンドを実行すると、指定したDockerfileを使用してDockerイメージがビルドされ、指定されたAzure Container Registryにプッシュされます。プッシュされたイメージはsample/hello-world:v1としてAzure Container Registryに格納されます。

※プライベートアクセスではaz acr buildは使用できない

プライベートアクセスの設定方法 - セルフホステッドエージェント

  1. ACR展開先の仮想ネットワークを用意する
  2. ACRインスタンスを作成する。
  3. ACRと同じ仮想ネットワークに仮想マシンを作成する。
  4. 仮想マシンにDockerエンジンをインストールする
  5. DockerCLIを利用してacrへイメージをpushする

Azure Pipeline での ACR の使用方法

プライベートアクセスの設定方法 - ACRタスク

ACRタスクを作成し、ACRタスクにACRのRBACを割り当てる
※ACRタスクは信頼できるサービスに登録されている

az group create --name myResourceGroup --location japaneast
az acr create --resource-group myResourceGroup --name mycontainerregistry410 --sku Premium --public-network-enabled false
echo -e version: v1.1.0\\n\
steps:\\n\
  - build: -t \$Registry/hello-world:tag1 https://github.com/Azure-Samples/acr-tasks.git#master -f curl.dockerfile\\n\
  - push: ["\$Registry/hello-world:tag1"]\\n > helloworldtask.yaml
az acr task create --registry mycontainerregistry410 --name helloworldtask --context /dev/null --file helloworldtask.yaml --assign-identity --auth-mode None
principalID=$(az acr task show --name helloworldtask --registry mycontainerregistry410 --query identity.principalId --output tsv)
myregID=$(az acr show --name mycontainerregistry410 --query id --output tsv)
az role assignment create --assignee $principalID --scope $myregID --role acrpush
az acr task credential add --name helloworldtask --registry mycontainerregistry410 --login-server mycontainerregistry410.azurecr.io --use-identity [system]
az acr task run --name helloworldtask --registry mycontainerregistry410
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?