Azure Container Registryの作成からDockerイメージのプッシュまで

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。SBOMを全く知らない人から、開発との統合までを紹介するので様々なレベルの方に学びがあるライブとなる予定です!
https://tech-lab.connpass.com/event/321422/

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!
https://tech-lab.connpass.com/event/319077/

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!
https://tech-lab.connpass.com/event/319532/

Dockerイメージを管理・共有する仕組みとして、「レジストリ」が必要です。

特定の人のみがアクセスできるようにしたい場合はプライベートレジストリを使用しますが、今回は、自分で立てるのではなく、Azureがレジストリサービスとして提供しているAzure Container Registryを試してみたいと思います。

Azure Container Registry とは

Azure コンテナー レジストリは、オープンソースの Docker Registry 2.0 に基づいた、管理された プライベートなDocker レジストリ サービスです。

主な特徴は以下になります。

  • 使い慣れたオープン ソースの Docker CLI を使用可能
  • Azure Active Directory によるレジストリ認証のサポート
  • DC/OS・Docker・Swarm・Kubernetes・Azureサービス(App Services・Batch・Service Fabric)等の様々なデプロイターゲットにイメージをプル可能

詳細は以下をご覧頂ければと思います。
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-intro

前提動作環境

クライアントPCの動作環境は下記になります。

  • OS:CentOS7
  • Azure CLI バージョン:2.0.27※事前にインストール
  • docker バージョン:18.03.0-ce※事前にインストール

Azure Container Registryの作成

Dockerコンテナイメージ用のプライベート レジストリとして、Azure Container Registryを作成します。

Azure Container Registryを作成する場合は、まず、Azureリソースグループが必要です。
Azureリソースグループとは、関連するリソースを1つに括った論理的なコンテナーです。

az group createコマンドでリソース グループを作成します。
今回は、eastus リージョンにrgAcrTestという名前のリソースグループを作成します。

# az group create --name rgAcrTest --location eastus

az acr createコマンドを使用して、acrTrialの名前でAzure Container Registryを作成します。

# az acr create --resource-group rgAcrTest --name acrTrial --sku Basic

以上で、Azure Container Registryの作成自体は完了です。

Dockerイメージの作成

Azure Container RegistryにプッシュするDockerイメージを作成します。

以下のシンプルなDockerfileを作成してみます。

FROM php:7.0-apache

作成したDockerfileからイメージを作成します。

# docker build -t webapp .

以上で、Dockerイメージの作成は完了です。

DockerイメージのAzure Container RegistryへのPush

az acr loginコマンドでACRインスタンスにログインします。

# az acr login --name acrTrial

docker imagesコマンドで、現在のイメージ一覧を表示し、イメージのタグ名を確認します。

# docker images

PushするDockerイメージは、Azure Container Registryのログインサーバ名でタグ付けする必要があります。
このタグは、Azure Container RegistryにDockerイメージをPushするときに、ルーティングするために使用されます。

Azure Container Registryのログインサーバ名を取得するには、次のコマンドを実行します。

# az acr list --resource-group rgAcrTest --query "[].{acrLoginServer:loginServer}" --output table
AcrLoginServer
--------------------------
acrtrial.azurecr.io

取得したAzure Container Registryのログインサーバ名で、PushするDockerイメージにタグ名を付けます。
下記のとおり、イメージ名は、必ず、Azure Container Registryのログインサーバ名/イメージ名:タグ名である必要があります。

# docker tag webapp acrtrial.azurecr.io/webapp:dev

タグを付けた後、docker images を実行してタグを確認します。
次の実行結果のとおり、「REPOSITORY」欄に「acrtrial.azurecr.io/webapp」、「TAG」欄に「dev」と表示される行があれば、タグ付けは成功です。

# docker images
REPOSITORY                  TAG         IMAGE ID      CREATED      SIZE
acrtrial.azurecr.io/webapp  dev         2c1b7b71162b  3 weeks ago  386MB
php                         7.0-apache  2c1b7b71162b  3 weeks ago  386MB
webapp                      latest      2c1b7b71162b  3 weeks ago  386MB

Azure Container RegistryにDockerイメージをプッシュします。完了するまでに数分かかります。

# docker push acrtrial.azurecr.io/webapp:dev

Azure Container Registry にプッシュされたイメージを確認するには、az acr repository list コマンドを使用します。

# az acr repository list --name acrTrial --output table
Result
--------
webapp

さらに、特定のイメージのタグを表示するには、az acr repository show-tagsコマンドを使用します。

# az acr repository show-tags --name acrTrial --repository webapp --output table
Result
--------
dev

以上で、Azure Container Registry へのプッシュが完了です。

まとめ

以上のように、Azure Container Registryは、オープンソースのDocker Registry v2と互換性があり、Docker CLIでのレジストリ操作方法が同じなため、自分でDocker Registryを立ち上げて管理する手間を考えると、効率的に便利です。

次回は、Azure サービスからAzure Container RegistryにプッシュしたイメージをAzureサービスにデプロイしてみたいと思います。

斎藤@SSTD

アバター画像
About サイオステクノロジーの中の人 10 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる