Szybki Start: Wdrażanie wystąpienia kontenera na platformie Azure przy użyciu interfejsu wiersza polecenia platformy AzureQuickstart: Deploy a container instance in Azure using the Azure CLI

Używanie Azure Container Instances do uruchamiania kontenerów platformy Docker bez serwera na platformie Azure z prostotą i szybkością.Use Azure Container Instances to run serverless Docker containers in Azure with simplicity and speed. Wdróż aplikację w wystąpieniu kontenera na żądanie, gdy nie potrzebujesz pełnej platformy aranżacji kontenerów, takiej jak usługa Azure Kubernetes.Deploy an application to a container instance on-demand when you don't need a full container orchestration platform like Azure Kubernetes Service.

W tym przewodniku szybki start użyjesz interfejsu wiersza polecenia platformy Azure, aby wdrożyć izolowany kontener platformy Docker i udostępnić swoją aplikację za pomocą w pełni kwalifikowanej nazwy domeny (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). Kilka sekund po wykonaniu jednego polecenia wdrożenia można przejść do aplikacji działającej w kontenerze:A few seconds after you execute a single deployment command, you can browse to the application running in the container:

Wyświetlanie aplikacji wdrożonej do Azure Container Instances w przeglądarce

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem Utwórz bezpłatne konto .If you don't have an Azure subscription, create a free account before you begin.

Wymagania wstępnePrerequisites

  • Skorzystaj z usługi Azure Cloud Shell za pośrednictwem środowiska Bash.Use Azure Cloud Shell using the Bash environment.

    Uruchamianie środowiska Cloud Shell w nowym oknieLaunch Cloud Shell in a new window

  • Jeśli chcesz, zainstaluj interfejs wiersza polecenia platformy Azure, aby móc uruchamiać polecenia referencyjne interfejsu CLI.If you prefer, install the Azure CLI to run CLI reference commands.

  • Ten przewodnik Szybki Start wymaga wersji 2.0.55 lub nowszej interfejsu wiersza polecenia platformy Azure.This quickstart requires version 2.0.55 or later of the Azure CLI. W przypadku korzystania z Azure Cloud Shell Najnowsza wersja jest już zainstalowana.If using Azure Cloud Shell, the latest version is already installed.

Tworzenie grupy zasobówCreate a resource group

Wystąpienia kontenerów platformy Azure, tak jak wszystkie zasoby platformy Azure, muszą zostać wdrożone w grupie zasobów.Azure container instances, like all Azure resources, must be deployed into a resource group. Grupy zasobów umożliwiają organizowanie powiązanych zasobów platformy Azure i zarządzanie nimi.Resource groups allow you to organize and manage related Azure resources.

Najpierw utwórz grupę zasobów o nazwie myResourceGroup w lokalizacji eastus za pomocą następującego polecenia 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

Tworzenie konteneraCreate a container

Teraz, gdy masz już grupę zasobów, możesz uruchomić kontener na platformie Azure.Now that you have a resource group, you can run a container in Azure. Aby utworzyć wystąpienie kontenera przy użyciu interfejsu wiersza polecenia platformy Azure, podaj nazwę grupy zasobów, nazwę wystąpienia kontenera i obraz kontenera Docker w poleceniu 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. W tym przewodniku szybki start użyjesz mcr.microsoft.com/azuredocs/aci-helloworld obrazu publicznego.In this quickstart, you use the public mcr.microsoft.com/azuredocs/aci-helloworld image. Ten obraz zawiera małą aplikację internetową napisaną w języku Node.js, która udostępnia statyczną stronę HTML.This image packages a small web app written in Node.js that serves a static HTML page.

Możesz uwidocznić swoje kontenery w Internecie, określając co najmniej jeden port do otworzenia, etykietę nazwy DNS lub obie te informacje.You can expose your containers to the internet by specifying one or more ports to open, a DNS name label, or both. W tym przewodniku Szybki start wdrożysz kontener z etykietą nazwy DNS, aby skonfigurować tę aplikację internetową jako publicznie dostępną.In this quickstart, you deploy a container with a DNS name label so that the web app is publicly reachable.

Wykonaj polecenie podobne do poniższego, aby uruchomić wystąpienie kontenera.Execute a command similar to the following to start a container instance. Ustaw --dns-name-label wartość unikatową w regionie świadczenia usługi Azure, w którym tworzysz wystąpienie.Set a --dns-name-label value that's unique within the Azure region where you create the instance. Jeśli zostanie wyświetlony komunikat o błędzie „Etykieta nazwy DNS nie jest dostępna”, spróbuj użyć innej etykiety nazwy 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

W ciągu kilku sekund powinna pojawić się odpowiedź z interfejsu wiersza polecenia platformy Azure, wskazująca ukończenie wdrażania.Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Sprawdź jego stan za pomocą polecenia 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

Po uruchomieniu polecenia zostanie wyświetlona w pełni kwalifikowana nazwa domeny (FQDN) kontenera i stan jego aprowizacji.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

Jeśli kontener ProvisioningState zakończył się pomyślnie , przejdź do jego nazwy FQDN w przeglądarce.If the container's ProvisioningState is Succeeded , go to its FQDN in your browser. Jeśli zostanie wyświetlona strona internetowa podobna do poniższej — gratulacje!If you see a web page similar to the following, congratulations! Aplikacja działającą w kontenerze Docker została pomyślne wdrożona na platformie Azure.You've successfully deployed an application running in a Docker container to Azure.

Wyświetlanie aplikacji wdrożonej do Azure Container Instances w przeglądarce

Jeśli początkowo aplikacja nie jest widoczna, być może trzeba poczekać kilka sekund na zakończenie propagowania systemu DNS, a następnie spróbować odświeżyć stronę przeglądarki.If at first the application isn't displayed, you might need to wait a few seconds while DNS propagates, then try refreshing your browser.

Ściąganie dzienników konteneraPull the container logs

Jeśli trzeba rozwiązać problem z kontenerem lub z uruchomioną na nim aplikacją (lub po prostu wyświetlić dane wyjściowe), zacznij od wyświetlenia dzienników wystąpienia kontenera.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.

Dzienniki wystąpienia kontenera można ściągnąć przy użyciu polecenia az container logs:Pull the container instance logs with the az container logs command:

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

W dziennikach kontenera powinny być widoczne żądania HTTP GET utworzone podczas przeglądania aplikacji w przeglądarce.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"

Dołączanie strumieni wyjściowychAttach output streams

Oprócz wyświetlenia dzienników można dołączyć lokalne strumienie Standardowe wyjście i Błąd standardowy do ich odpowiedników należących do kontenera.In addition to viewing the logs, you can attach your local standard out and standard error streams to that of the container.

Najpierw wykonaj polecenie az container attach, aby dołączyć konsolę lokalną do strumieni danych wyjściowych kontenera: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

Po jej dołączeniu odśwież kilka razy przeglądarkę, aby wygenerować trochę dodatkowych danych wyjściowych.Once attached, refresh your browser a few times to generate some additional output. Po zakończeniu odłącz swoją konsolę kombinacją klawiszy Control+C.When you're done, detach your console with Control+C. Wyświetlone dane wyjściowe powinny przypominać następujące dane: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"

Czyszczenie zasobówClean up resources

Po zakończeniu pracy z kontenerem możesz go usunąć przy użyciu polecenia 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

Aby się upewnić, że kontener został usunięty, uruchom polecenie 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

W danych wyjściowych polecenia nie powinien pojawić się kontener mycontainer .The mycontainer container should not appear in the command's output. Jeśli nie ma innych kontenerów w grupie zasobów, nie powinny zostać wyświetlone żadne dane wyjściowe.If you have no other containers in the resource group, no output is displayed.

Gdy skończysz pracę z grupą zasobów myResourceGroup i wszystkimi zawartymi w niej zasobami, usuń ją za pomocą polecenia 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

Następne krokiNext steps

W tym przewodniku szybki start utworzono wystąpienie kontenera platformy Azure przy użyciu publicznego obrazu firmy Microsoft.In this quickstart, you created an Azure container instance by using a public Microsoft image. Jeśli chcesz skompilować obraz kontenera i wdrożyć go za pomocą prywatnej usługi Azure Container Registry, przejdź do samouczka dotyczącego usługi 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.

Aby wypróbować opcje uruchamiania kontenerów w systemie aranżacji na platformie Azure, zobacz przewodnik Szybki start Azure Kubernetes Service (AKS).To try out options for running containers in an orchestration system on Azure, see the Azure Kubernetes Service (AKS) quickstarts.