サーバーレスの 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 に自動的にはコピーされません。 | ![]() |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | ![]() |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 | ![]() |
Azure Cloud Shell を使用するには、次の手順に従います。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
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 のチュートリアルに進んでください。