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

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 acr createコマンドを使用して、acrTrialの名前でAzure Container Registryを作成します。

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

Dockerイメージの作成

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

まとめ

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

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

斎藤@SSTD

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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

コメント投稿

メールアドレスは表示されません。


*