Início Rápido: Implantar uma instância de contêiner no Azure usando a CLI do AzureQuickstart: Deploy a container instance in Azure using the Azure CLI

Use as Instâncias de Contêiner do Azure para executar contêineres do Docker sem servidor no Azure de maneira simples e rápida.Use Azure Container Instances to run serverless Docker containers in Azure with simplicity and speed. Implante um aplicativo em uma instância de contêiner sob demanda quando você não precisa de uma plataforma de orquestração de contêiner completa como o Serviço de Kubernetes do Azure.Deploy an application to a container instance on-demand when you don't need a full container orchestration platform like Azure Kubernetes Service.

Neste início rápido, você usará a CLI do Azure para implantar um contêiner do Docker isolado e disponibilizar o respectivo aplicativo com um FQDN (nome de domínio totalmente qualificado).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). Alguns segundos depois de executar um comando único de implantação, é possível navegar para o aplicativo em execução no contêiner:A few seconds after you execute a single deployment command, you can browse to the application running in the container:

Exibir um aplicativo implantado nas Instâncias de Contêiner do Azure no navegador

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Usar o Azure Cloud ShellUse Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo sem precisar instalar nada no seu ambiente local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Para iniciar o Azure Cloud Shell:To start Azure Cloud Shell:

OpçãoOption Exemplo/LinkExample/Link
Selecione Experimente no canto superior direito de um bloco de código.Select Try It in the upper-right corner of a code block. Selecionar Experimente não copia automaticamente o código para o Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemplo de “Experimente” no Azure Cloud Shell
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Inicie o Cloud Shell em uma nova janelaLaunch Cloud Shell in a new window
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Botão Cloud Shell no portal do Azure

Para executar o código neste artigo no Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie o Cloud Shell.Start Cloud Shell.

  2. Clique no botão Copiar no bloco de código para copiá-lo.Select the Copy button on a code block to copy the code.

  3. Cole o código na sessão do Cloud Shell ao pressionar Ctrl+Shift+V no Windows e no Linux ou Cmd+Shift+V no macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Pressione Enter para executar o código.Select Enter to run the code.

Você pode usar o Azure Cloud Shell ou uma instalação local da CLI do Azure para concluir esse guia de início rápido.You can use the Azure Cloud Shell or a local installation of the Azure CLI to complete this quickstart. Se você quer usá-lo localmente, recomendamos usar a versão 2.0.55 ou posterior.If you'd like to use it locally, version 2.0.55 or later is recommended. Execute az --version para encontrar a versão.Run az --version to find the version. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.If you need to install or upgrade, see Install Azure CLI.

Criar um grupo de recursosCreate a resource group

Instâncias de Contêiner do Azure, assim como todos os recursos do Azure, precisam ser implantadas em um grupo de recursos.Azure container instances, like all Azure resources, must be deployed into a resource group. Os grupos de recursos facilitam organizar e gerenciar os recursos relacionados ao Azure.Resource groups allow you to organize and manage related Azure resources.

Primeiramente, crie um grupo de recursos denominado myResourceGroup no local eastus com o seguinte comando az group create: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

Criar um contêinerCreate a container

Agora que tem um grupo de recursos, você pode executar um contêiner no Azure.Now that you have a resource group, you can run a container in Azure. Para criar uma instância de contêiner com a CLI do Azure, forneça um nome de grupo de recursos, um nome da instância de contêiner e uma imagem de contêiner do Docker para o comando 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. Neste início rápido, você usa a imagem pública mcr.microsoft.com/azuredocs/aci-helloworld.In this quickstart, you use the public mcr.microsoft.com/azuredocs/aci-helloworld image. Esta imagem empacota um pequeno aplicativo Web escrito no Node.js que veicula a uma página HTML estática.This image packages a small web app written in Node.js that serves a static HTML page.

Você pode expor seus contêineres à Internet especificando um ou mais portas a serem abertas, um rótulo de nome DNS ou ambos.You can expose your containers to the internet by specifying one or more ports to open, a DNS name label, or both. Neste início rápido, você implanta um contêiner com um rótulo de nome DNS para que o aplicativo Web fique publicamente acessível.In this quickstart, you deploy a container with a DNS name label so that the web app is publicly reachable.

Execute um comando similar ao seguinte para iniciar uma instância de contêiner.Execute a command similar to the following to start a container instance. Defina um valor de --dns-name-label que seja exclusivo na região do Azure em que você criará a instância.Set a --dns-name-label value that's unique within the Azure region where you create the instance. Se você receber uma mensagem de erro “Rótulo de nome DNS não disponível”, tente usar um rótulo de nome DNS diferente.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

Em poucos segundos, você obterá uma resposta da CLI do Azure indicando que a implantação foi concluída.Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Verifique o status dele usando o comando 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

Ao executar o comando, o FQDN (nome de domínio totalmente qualificado) do contêiner e o estado de provisionamento dele são exibidos.When you run the command, the container's fully qualified domain name (FQDN) and its provisioning state are displayed.

FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

Se o ProvisioningState do contêiner for Êxito, vá até o FQDN dele no seu navegador.If the container's ProvisioningState is Succeeded, go to its FQDN in your browser. Se você encontrar uma página da Web semelhante à seguinte, parabéns!If you see a web page similar to the following, congratulations! Você implantou com êxito um aplicativo em execução em um contêiner do Docker no Azure.You've successfully deployed an application running in a Docker container to Azure.

Exibir um aplicativo implantado nas Instâncias de Contêiner do Azure no navegador

Se o aplicativo não for exibido inicialmente, poderá ser necessário aguardar alguns segundos enquanto o DNS é propagado e, em seguida, tente atualizar seu navegador.If at first the application isn't displayed, you might need to wait a few seconds while DNS propagates, then try refreshing your browser.

Acessar os logs de contêinerPull the container logs

Quando você precisar solucionar problemas de um contêiner ou do aplicativo que ele executa (ou apenas ver a saída dele), comece exibindo os logs da instância de contêiner.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.

Efetue pull nos logs da instância de contêiner com o comando az container logs:Pull the container instance logs with the az container logs command:

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

A saída exibe os logs para o contêiner e deve mostrar as solicitações HTTP GET geradas quando o aplicativo é exibido no navegador.The output displays the logs for the container, and should show the HTTP GET requests generated when you viewed the application in your browser.

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"

Anexar fluxos de saídaAttach output streams

Além de exibir os logs, é possível anexar a saída padrão local e os fluxos de erro padrão aos do contêiner.In addition to viewing the logs, you can attach your local standard out and standard error streams to that of the container.

Primeiro, execute o comando az container attach para anexar seu console local os fluxos de saída do contêiner: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

Depois de anexados, atualize seu navegador algumas vezes para gerar algumas saídas adicionais.Once attached, refresh your browser a few times to generate some additional output. Quando terminar, desanexe o console com Control+C.When you're done, detach your console with Control+C. Será exibida uma saída semelhante à seguinte:You should see output similar to the following:

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"

Limpar os recursosClean up resources

Quando você conclui o contêiner, remova-o usando o comando 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

Para verificar se o contêiner foi excluído, execute o comando 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

O contêiner mycontainer não deve aparecer na saída do comando.The mycontainer container should not appear in the command's output. Se você não tiver outros contêineres no grupo de recursos, não será exibida nenhuma saída.If you have no other containers in the resource group, no output is displayed.

Se tiver concluído com o grupo de recursos myResourceGroup e todos os recursos que ele contém, exclua-o com o comando 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

Próximas etapasNext steps

Neste início rápido, você criou uma instância de contêiner do Azure usando uma imagem da Microsoft pública.In this quickstart, you created an Azure container instance by using a public Microsoft image. Se você quiser criar uma imagem de contêiner e implantá-la usando um Registro de Contêiner do Azure privado, prossiga para o tutorial das Instâncias de Contêiner do Azure.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.

Para experimentar as opções para contêineres em execução em um sistema de orquestração no Azure, veja os inícios rápidos do AKS (Serviço de Kubernetes do Azure).To try out options for running containers in an orchestration system on Azure, see the Azure Kubernetes Service (AKS) quickstarts.