次の方法で共有


チュートリアル: Azure Container Instances にコンテナー アプリケーションをデプロイする

これは、3 部構成のシリーズの最後のチュートリアルです。 シリーズの前半では、 コンテナー イメージが作成されAzure Container Registry にプッシュされました。 この記事では、Azure Container Instances にコンテナーをデプロイすることで、シリーズを完了します。

このチュートリアルでは、次の操作を行います。

  • Azure Container Registry から Azure Container Instances にコンテナーをデプロイする
  • ブラウザーで実行中のアプリケーションを表示する
  • コンテナーのログを表示する

開始する前に

このチュートリアルを完了するには、次の要件を満たす必要があります。

Azure CLI: ローカル コンピューターに Azure CLI バージョン 2.0.29 以降がインストールされている必要があります。 バージョンを見つけるには、 az --versionを実行します。 インストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。

Docker: このチュートリアルでは、コンテナー、コンテナー イメージ、基本的な docker コマンドなどの Docker の主要な概念を基本的に理解していることを前提としています。 Docker やコンテナーの基礎に関する入門情報については、「Docker overview」(Docker の概要) を参照してください。

Docker: このチュートリアルを完了するには、Docker がローカルにインストールされている必要があります。 Docker には、macOSWindowsLinux 上で Docker 環境の構成を行うパッケージが用意されています。

Important

Azure Cloud Shell には Docker デーモンが含まれていないため、このチュートリアルを完了するには、ローカル コンピューターに Azure CLI と Docker エンジンの両方をインストールする必要があります。 このチュートリアルでは、Azure Cloud Shell を使用できません。

Azure CLI を使用してコンテナーをデプロイする

このセクションでは、Azure CLI を使用して、 最初のチュートリアル でビルドされたイメージをデプロイし、 2 番目のチュートリアルで Azure Container Registry にプッシュします。 続行する前に、必ずこれらのチュートリアルを完了してください。

レジストリ資格情報を取得する

2 番目のチュートリアルで作成したイメージのように、プライベート Azure コンテナー レジストリでホストされているイメージをデプロイする場合は、レジストリにアクセスするための資格情報を指定する必要があります。

多くのシナリオのベスト プラクティスは、レジストリへの プル アクセス許可を持つ Microsoft Entra サービス プリンシパルを作成して構成することです。 必要なアクセス許可を持つサービス プリンシパルを作成するサンプル スクリプトについては、「 Azure Container Instances からの Azure Container Registry を使用した認証」を参照してください。 サービス プリンシパル ID とサービス プリンシパルのパスワードを書き留めます。 コンテナーをデプロイするときに、これらの資格情報を使用してレジストリにアクセスします。

コンテナー レジストリ サインイン サーバーの完全な名前も必要です ( <acrName> をレジストリの名前に置き換えます)。

az acr show --name <acrName> --query loginServer

コンテナーのデプロイ

次に、 az container create コマンドを使用してコンテナーをデプロイします。 <acrLoginServer>を、前のコマンドから取得した値に置き換えます。 <service-principal-ID><service-principal-password>を、レジストリにアクセスするために作成したサービス プリンシパル ID とパスワードに置き換えます。 <aciDnsLabel>を目的の DNS 名に置き換えます。

az container create --resource-group myResourceGroup --name aci-tutorial-app --image <acrLoginServer>/aci-tutorial-app:v1 --cpu 1 --memory 1 --registry-login-server <acrLoginServer> --registry-username <service-principal-ID> --registry-password <service-principal-password> --ip-address Public --dns-name-label <aciDnsLabel> --ports 80

数秒以内に、Azure から最初の応答を受け取る必要があります。 --dns-name-label値は、コンテナー インスタンスを作成する Azure リージョン内で一意である必要があります。 コマンドの実行時に DNS 名ラベル のエラー メッセージが表示される場合は、前のコマンドの値を変更します。

デプロイの進行状況を確認する

デプロイの状態を表示するには、 az container show を使用します。

az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state

状態が [保留中] から [実行中] に変わるまで az container show コマンドを繰り返します。1 分もかかりません。 コンテナーが 実行中の場合は、次の手順に進みます。

アプリケーションとコンテナーのログを表示する

デプロイが成功したら、 az container show コマンドを使用してコンテナーの完全修飾ドメイン名 (FQDN) を表示します。

az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn

例えば次が挙げられます。

"aci-demo.eastus.azurecontainer.io"

実行中のアプリケーションを表示するには、お気に入りのブラウザーに表示されている DNS 名に移動します。

ブラウザーの Hello World アプリ

コンテナーのログ出力を表示することもできます。

az container logs --resource-group myResourceGroup --name aci-tutorial-app

出力例:

listening on port 80
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"

リソースをクリーンアップする

このチュートリアル シリーズで作成したリソースが不要になった場合は、 az group delete コマンドを実行して、リソース グループとそのリソースに含まれるすべてのリソースを削除できます。 このコマンドを実行すると、作成したコンテナー レジストリ、実行中のコンテナー、およびすべての関連リソースが削除されます。

az group delete --name myResourceGroup

次のステップ

このチュートリアルでは、Azure Container Instances にコンテナーをデプロイするプロセスを完了しました。 次の手順を完了しました。

  • Azure CLI を使用して Azure Container Registry からコンテナーをデプロイしました
  • ブラウザーでアプリケーションを表示しました
  • コンテナー ログを表示しました

基本を理解したら、コンテナー グループのしくみなど、Azure Container Instances の詳細について学習します。

Azure Container Instances のコンテナー グループ