次の方法で共有


クイックスタート: Azure PowerShell を使用してコンテナー インスタンスを Azure にデプロイする

サーバーレスの Docker コンテナーを Azure 内で簡単にすばやく実行するには、Azure Container Instances を使用します。 Azure Kubernetes Service のように完全なコンテナー オーケストレーション プラットフォームが不要な場合は、コンテナー インスタンス オンデマンドにアプリケーションをデプロイします。

このクイック スタートでは、Azure PowerShell を使用して、分離された Windows コンテナーをデプロイし、そのアプリケーションを完全修飾ドメイン名 (FQDN) とポートで使用できるようにします。 1 つのデプロイ コマンドを実行して数秒後には、コンテナーで実行中のアプリケーションを参照できます。

![ブラウザーで表示された Azure Container Instances にデプロイされたアプリ][./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

メモ

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、次の手順に従います。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Azure Cloud Shell の [使ってみる] の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shell を使用するには、次の手順に従います。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

PowerShell をローカル環境にインストールして使用する場合、このチュートリアルでは Azure PowerShell モジュールが必要です。 バージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカル環境で実行している場合は、Connect-AzAccount を実行して Azure との接続を作成する必要もあります。

リソース グループを作成する

Azure のコンテナー インスタンスは、すべての Azure リソースと同様に、リソース グループにデプロイする必要があります。 リソース グループを使用すると、関連する Azure リソースを整理して管理できます。

まず、次の New-AzResourceGroup コマンドを使用して、myResourceGroup という名前のリソース グループを eastus の場所に作成します。

New-AzResourceGroup -Name myResourceGroup -Location EastUS

コンテナー インスタンスのポートを作成する

1 つまたは複数の開くポート、DNS 名ラベル、またはその両方を指定することで、コンテナーをインターネットに公開することができます。 このクイック スタートでは、IIS にパブリックに到達できるよう、DNS 名ラベルを持つコンテナーをデプロイします。 このガイドでは両方を行いますが、まず、コンテナー インスタンスが使用するポート オブジェクトを PowerShell で作成する必要があります。

$port = New-AzContainerInstancePortObject -Port 80 -Protocol TCP

コンテナー グループを作成する

リソース グループとポートが作成されたので、Azure でインターネットに公開されているコンテナーを実行できます。 Azure PowerShell でコンテナー インスタンスを作成するには、初めにコンテナーの名前、イメージ、ポートを指定して ContainerInstanceObject を作成する必要があります。 このクイック スタートでは、パブリックの mcr.microsoft.com/azuredocs/aci-helloworld イメージを使用します。

New-AzContainerInstanceObject -Name myContainer -Image mcr.microsoft.com/azuredocs/aci-helloworld -Port @($port)

次に、New-AzContainerGroup コマンドレットを使用します。 コンテナー グループの名前、リソース グループの名前、コンテナー グループの場所、作成したコンテナー インスタンス、オペレーティング システムの種類、一意の IP アドレスの DNS 名ラベルを指定する必要があります。

次のようなコマンドを実行して、コンテナー インスタンスを開始します。 -IPAddressDnsNameLabel の値は、インスタンスを作成する Azure リージョン内で一意の値を設定してください。 エラー メッセージ "DNS 名ラベルは利用できません" が表示された場合は、別の DNS 名ラベルを試してください。

$containerGroup = New-AzContainerInstanceObject -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container myContainer -OsType Windows -IPAddressDnsNameLabel aci-quickstart-win -IpAddressType Public -IPAddressPort @($port)

数秒以内に、Azure から応答を受信します。 コンテナーの ProvisioningState は、最初は Creating と表示されますが、1、2 分で Succeeded に変わります。 Get-AzContainerGroup コマンドレットを使用して、デプロイの状態を確認します。

Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup

$containerGroup オブジェクトを出力し、テーブルでコンテナーのプロビジョニング状態、完全修飾ドメイン名 (FQDN)、IP アドレスをフィルター処理することもできます。

$containerGroup | Format-Table InstanceViewState, IPAddressFqdn, IPAddressIP

コンテナーのプロビジョニング状態、FQDN、IP アドレスが、コマンドレットの出力に表示されます。

PS Azure:\> Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup

ResourceGroupName        : myResourceGroup
Id                       : /subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup
Name                     : myContainerGroup
Type                     : Microsoft.ContainerInstance/containerGroups
Location                 : eastus
Tags                     :
ProvisioningState        : Creating
Containers               : {myContainer}
ImageRegistryCredentials :
RestartPolicy            : Always
IpAddress                : 52.226.19.87
DnsNameLabel             : aci-demo-win
Fqdn                     : aci-demo-win.eastus.azurecontainer.io
Ports                    : {80}
OsType                   : Windows
Volumes                  :
State                    : Pending
Events                   : {}

コンテナーの ProvisioningState[Succeeded]\(成功\) と表示されている場合は、ブラウザーでその FQDN に移動します。 次のような Web ページが表示されたら成功です。 Docker コンテナーで実行されているアプリケーションが Azure に正常にデプロイされました。

![ブラウザーで Azure Container Instances にデプロイされたアプリを表示する][./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]

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

コンテナーでの処理が完了したら、Remove-AzContainerGroup コマンドレットを使用してそのコンテナーを削除します。

Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup

次の手順

このクイック スタートでは、パブリック Docker Hub レジストリ内のイメージから Azure コンテナー インスタンスを作成しました。 コンテナー イメージをビルドし、プライベート Azure コンテナー レジストリからデプロイする場合は、Azure Container Instances のチュートリアルに進んでください。