Azure のプライベート Docker コンテナー レジストリの概要

Azure Container Registry は、オープンソースの Docker Registry 2.0 が基になっている管理されたプライベートな Docker レジストリ サービスです。 プライベート Docker コンテナー イメージおよび関連する成果物を保存、管理する Azure コンテナー レジストリを作成、管理します。

既存のコンテナーの開発およびデプロイ パイプラインで Azure コンテナー レジストリを使うか、Azure Container Registry タスクを使って Azure にコンテナー イメージをビルドします。 必要に応じてビルドするか、またはソースコードのコミットやベース イメージの更新などのトリガーでビルドを完全に自動化します。

Docker とレジストリの概念について詳しくは、「Docker overview (Docker の概要)」および「About registries, repositories, and images (レジストリ、リポジトリ、およびイメージについて)」をご覧ください。

ユース ケース

Azure コンテナー レジストリからさまざまなデプロイ ターゲットにイメージをプルできます。

開発者は、コンテナー開発ワークフローの一環としてコンテナー レジストリにプッシュすることもできます。 たとえば、Azure PipelinesJenkins などの継続的インテグレーションと継続的配信ツールからコンテナー レジストリを対象にします。

ベース イメージが更新されたときに自動的にアプリケーション イメージをリビルドするように ACR タスクを構成するか、チームがコードを Git リポジトリにコミットしたときのイメージ ビルドを自動化します。 複数のコンテナー イメージのビルド、テスト、および修正プログラム適用をクラウドで並列で自動的に行うために、マルチステップ タスクを作成します。

Azure には、Azure コンテナー レジストリを管理するために、Azure コマンド ライン インターフェイス、Azure portal、API サポートなどのツールが用意されています。 Azure コンテナー レジストリを操作するには、必要に応じて Visual Studio Code 用の Docker 拡張機能Azure アカウント拡張機能をインストールします。 Azure コンテナー レジストリとの間でイメージをプルおよびプッシュしたり、ACR タスクを実行したりします。すべて Visual Studio Code 内で実行します。

主要な機能

  • レジストリのサービス レベル - Azure サブスクリプションに 1 つまたは複数のコンテナー レジストリを作成します。 レジストリは次の 3 つのレベルで利用できます。Basic、Standard、Premium の 3 つの SKU があり、それぞれ Webhook 統合、Azure Active Directory によるレジストリ認証、および削除機能がサポートされます。 デプロイと同じ Azure の場所にレジストリを作成することで、ネットワーク上の近い場所にローカルで保存されたコンテナー イメージを活用します。 高度なレプリケーションとコンテナー イメージの配布に対応するには、Premium レジストリの geo レプリケーション機能を使用してください。

  • セキュリティとアクセス - Azure CLI または標準の docker login コマンドを使用して、レジストリにログインします。 Azure Container Registry は、HTTPS でコンテナー イメージを転送し、TLS によるクライアント接続のセキュリティ保護をサポートします。

    重要

    2020 年 1 月 13 日以降、Azure Container Registry では、サーバーとアプリケーションからのセキュリティで保護されたすべての接続で TLS 1.2 を使用する必要があります。 最新の docker クライアント (バージョン 18.03.0 以降) を使用して TLS 1.2 を有効にします。 TLS 1.0 と 1.1 のサポートは、廃止される予定です。

    コンテナー レジストリへのアクセスを制御するには、Azure ID、Azure Active Directory でサポートされているサービス プリンシパル、または提供された管理者アカウントを使用します。 Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、レジストリに対するきめ細かなアクセス許可をユーザーまたはシステムに割り当てます。

    Premium サービス レベルのセキュリティ機能には、イメージ タグに署名するためのコンテンツの信頼や、レジストリへのアクセスを制限するファイアウォールと仮想ネットワーク (プレビュー) などがあります。 Azure Container Registry に必要に応じて Microsoft Defender for Cloud を統合すれば、イメージがレジストリにプッシュされるたびに、イメージがスキャンされます。

  • サポートされるイメージと成果物 - リポジトリにグループ化されます。各イメージは、Docker 互換コンテナーの読み取り専用のスナップショットです。 Azure コンテナー レジストリには、Windows と Linux の両方のイメージを含めることができます。 すべてのコンテナーのデプロイのイメージ名を制御できます。 イメージをリポジトリにプッシュしたり、イメージをリポジトリからプルしたりするには、標準の Docker コマンドを使用します。 Azure Container Registry は、Docker コンテナー イメージに加えて、Helm チャートのような関連コンテンツの形式および Open Container Initiative (OCI) のイメージ形式の仕様に基づいて構築されたイメージを格納します。

  • イメージ ビルドの自動化 - Azure でのイメージのビルド、テスト、プッシュ、デプロイを効率化するには、Azure Container Registry タスク (ACR タスク) を使います。 たとえば、ACR タスクを使って、docker build 操作を Azure にオフロードすることで、開発の社内ループをクラウドに拡張します。 ビルド タスクの設定では、コンテナーの OS およびフレームワーク パッチ適用 パイプラインを自動化し、ソース コントロールにコードがコミットされたときに自動的にイメージがビルドされるよう指定できます。

    マルチステップ タスクでは、クラウドでのコンテナー イメージのビルド、テスト、および修正プログラムの適用のために、ステップベースでタスクの定義と実行を行うことができます。 タスクのステップでは、コンテナー イメージのビルド操作とプッシュ操作を個々に定義します。 各ステップで実行環境としてコンテナーを使用するように、1 つまたは複数のコンテナーの実行を定義することもできます。

次のステップ