次の方法で共有


クイックスタート: 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 サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

Note

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 のチュートリアルに進んでください。