クイック スタート:Azure CLI を使用してコンテナー インスタンスを Azure にデプロイするQuickstart: Deploy a container instance in Azure using the Azure CLI

サーバーレスの Docker コンテナーを Azure で簡単にすばやく実行するには、Azure Container Instances を使用します。Use Azure Container Instances to run serverless Docker containers in Azure with simplicity and speed. Azure Kubernetes Service のように完全なコンテナー オーケストレーション プラットフォームが不要な場合は、コンテナー インスタンス オンデマンドにアプリケーションをデプロイします。Deploy an application to a container instance on-demand when you don't need a full container orchestration platform like Azure Kubernetes Service.

このクイック スタートでは、Azure CLI を使用して、分離された Docker コンテナーをデプロイし、そのアプリケーションを完全修飾ドメイン名 (FQDN) を介して使用できるようにします。In this quickstart, you use the Azure CLI to deploy an isolated Docker container and make its application available with a fully qualified domain name (FQDN). 1 つのデプロイ コマンドを実行して数秒後には、コンテナーで実行中のアプリケーションを参照できます。A few seconds after you execute a single deployment command, you can browse to the application running in the container:

Azure Container Instances にデプロイされたアプリのブラウザーでの表示

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell を開くOpen Azure Cloud Shell

Azure でホストされる対話型のシェル環境である Azure Cloud Shell は、ブラウザーを介して使用されます。Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browser. Azure Cloud Shell では、bash または PowerShell のいずれかのシェルを使用して、Azure サービスで動作するさまざまなツールを実行できます。Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell にはコマンドがプレインストールされており、ローカル環境に何もインストールしなくても、この記事の内容を実行できるようになっています。Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

この記事に含まれるコードを Azure Cloud Shell で実行するには、Cloud Shell セッションを開き、コード ブロック上の [コピー] ボタンを使ってコードをコピーし、Ctrl + Shift + V キー (Windows と Linux) または command + Shift + V キー (macOS) を押して Cloud Shell セッションに貼り付けます。To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. テキストを貼り付けても自動的には実行されません。コードを実行するには、Enter キーを押します。Pasted text is not automatically executed, so press Enter to run code.

Azure Cloud Shell は次の方法で起動できます。You can launch Azure Cloud Shell with:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. テキストが自動的に Cloud Shell にコピーされるわけでは__ありません__。This doesn't automatically copy text to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
ご使用のブラウザー内で Azure Cloud Shell を開きます。Open Azure Cloud Shell in your browser. <a href="https://shell.azure.com" title="Azure Cloud Shell を起動する
Azure Portal の右上隅にあるメニューの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell または Azure CLI のローカル インストールを使用して、このクイック スタートを完了できます。You can use the Azure Cloud Shell or a local installation of the Azure CLI to complete this quickstart. Azure CLI をローカルで使用する場合は、バージョン 2.0.55 以降をお勧めします。If you'd like to use it locally, version 2.0.55 or later is recommended. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

リソース グループの作成Create a resource group

Azure のコンテナー インスタンスは、すべての Azure リソースと同様に、リソース グループにデプロイする必要があります。Azure container instances, like all Azure resources, must be deployed into a resource group. リソース グループを使用すると、関連する Azure リソースを整理して管理できます。Resource groups allow you to organize and manage related Azure resources.

まず、次の az group create コマンドを使用して、myResourceGroup という名前のリソース グループを eastus の場所に作成します。First, create a resource group named myResourceGroup in the eastus location with the following az group create command:

az group create --name myResourceGroup --location eastus

コンテナーを作成するCreate a container

リソース グループを作成すると、Azure でコンテナーを実行できます。Now that you have a resource group, you can run a container in Azure. Azure CLI を使用してコンテナー インスタンスを作成するには、リソース グループ名、コンテナー インスタンス名、および Docker コンテナー イメージを az container create コマンドに渡します。To create a container instance with the Azure CLI, provide a resource group name, container instance name, and Docker container image to the az container create command. このクイック スタートでは、パブリックの mcr.microsoft.com/azuredocs/aci-helloworld イメージを使用します。In this quickstart, you use the public mcr.microsoft.com/azuredocs/aci-helloworld image. このイメージには、静的な HTML ページを返す、Node.js で作成された小さな Web アプリがパッケージされています。This image packages a small web app written in Node.js that serves a static HTML page.

1 つまたは複数の開くポート、DNS 名ラベル、またはその両方を指定することで、コンテナーをインターネットに公開することができます。You can expose your containers to the internet by specifying one or more ports to open, a DNS name label, or both. このクイック スタートでは、Web アプリにパブリックに到達できるよう、DNS 名ラベルを指定してコンテナーをデプロイします。In this quickstart, you deploy a container with a DNS name label so that the web app is publicly reachable.

次のようなコマンドを実行して、コンテナー インスタンスを開始します。Execute a command similar to the following to start a container instance. --dns-name-label の値は、インスタンスを作成する Azure リージョン内で一意の値を設定してください。Set a --dns-name-label value that's unique within the Azure region where you create the instance. エラー メッセージ "DNS 名ラベルは利用できません" が表示された場合は、別の DNS 名ラベルを試してください。If you receive a "DNS name label not available" error message, try a different DNS name label.

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80

数秒以内に、Azure CLI からデプロイが完了したことを示す応答を受信します。Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. az container show コマンドを使用して、コンテナーの状態を確認します。Check its status with the az container show command:

az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

コマンドを実行すると、コンテナーの完全修飾ドメイン名 (FQDN) とそのプロビジョニング状態が表示されます。When you run the command, the container's fully qualified domain name (FQDN) and its provisioning state are displayed.

$ az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

コンテナーの ProvisioningState[Succeeded](成功) と表示されている場合は、ブラウザーでその FQDN に移動します。If the container's ProvisioningState is Succeeded, navigate to its FQDN in your browser. 次のような Web ページが表示されたら成功です。If you see a web page similar to the following, congratulations! Docker コンテナーで実行されているアプリケーションが Azure に正常にデプロイされました。You've successfully deployed an application running in a Docker container to Azure.

Azure コンテナー インスタンスで実行されているアプリケーションを示すブラウザー スクリーンショット

最初にアプリケーションが表示されない場合は、DNS が反映されるまで数秒待った後、ブラウザーを更新してみてください。If at first the application isn't displayed, you might need to wait a few seconds while DNS propagates, then try refreshing your browser.

コンテナー ログを取り込むPull the container logs

コンテナーまたはコンテナーで実行されているアプリケーションのトラブルシューティングを行うことが必要になった場合 (またはその出力を確認するだけの場合) は、コンテナー インスタンスのログを表示することから始めます。When you need to troubleshoot a container or the application it runs (or just see its output), start by viewing the container instance's logs.

az container logs コマンドを使用して、コンテナー インスタンスのログをプルします。Pull the container instance logs with the az container logs command:

az container logs --resource-group myResourceGroup --name mycontainer

出力はコンテナーのログを表示し、ブラウザーでアプリケーションを表示したときに生成された HTTP GET 要求が表示されます。The output displays the logs for the container, and should show the HTTP GET requests generated when you viewed the application in your browser.

$ az container logs --resource-group myResourceGroup --name mycontainer
listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

出力ストリームのアタッチAttach output streams

ログを表示するだけでなく、ローカルの標準出力ストリームと標準エラー ストリームをコンテナーのストリームにアタッチすることができます。In addition to viewing the logs, you can attach your local standard out and standard error streams to that of the container.

最初に az container attach コマンドを実行して、ローカルのコンソールをコンテナーの出力ストリームにアタッチします。First, execute the az container attach command to attach your local console to the container's output streams:

az container attach --resource-group myResourceGroup --name mycontainer

アタッチしたら、ブラウザーを数回更新して、追加の出力を生成します。Once attached, refresh your browser a few times to generate some additional output. 完了したら、Control+C キーを押してコンソールをデタッチします。When you're done, detach your console with Control+C. 次のような出力が表示されます。You should see output similar to the following:

$ az container attach --resource-group myResourceGroup --name mycontainer
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container

Start streaming logs:
listening on port 80

::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:47:01 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.56 - - [21/Mar/2019:17:47:12 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

リソースのクリーンアップClean up resources

コンテナーを使い終えたら、az container delete コマンドを使用して、そのコンテナーを削除します。When you're done with the container, remove it using the az container delete command:

az container delete --resource-group myResourceGroup --name mycontainer

コンテナーが削除されたことを確認するには、az container list コマンドを実行します。To verify that the container has been deleted, execute the az container list command:

az container list --resource-group myResourceGroup --output table

mycontainer コンテナーは、コマンドの出力に表示されません。The mycontainer container should not appear in the command's output. リソース グループに別のコンテナーがない場合、出力は表示されません。If you have no other containers in the resource group, no output is displayed.

myResourceGroup リソース グループとそこに含まれるすべてのリソースの操作が終了したら、az group delete コマンドを使用してそれを削除します。If you're done with the myResourceGroup resource group and all the resources it contains, delete it with the az group delete command:

az group delete --name myResourceGroup

次の手順Next steps

このクイック スタートでは、パブリック Microsoft イメージを使用して Azure コンテナー インスタンスを作成しました。In this quickstart, you created an Azure container instance by using a public Microsoft image. コンテナー イメージをビルドし、プライベート Azure コンテナー レジストリからデプロイする場合は、Azure Container Instances のチュートリアルに進んでください。If you'd like to build a container image and deploy it from a private Azure container registry, continue to the Azure Container Instances tutorial.

Azure のオーケストレーション システムでコンテナーを実行するためのオプションを試すには、Azure Kubernetes Service (AKS) のクイック スタートを参照してください。To try out options for running containers in an orchestration system on Azure, see the Azure Kubernetes Service (AKS) quickstarts.