Kurz: Vytváření imagí kontejneru v clusteru Service Fabric s LinuxemTutorial: Create container images on a Linux Service Fabric cluster

Tento kurz je součástí série kurzů, která demonstruje používání kontejnerů v clusteru Service Fabric s Linuxem.This tutorial is part one of a tutorial series that demonstrates how to use containers in a Linux Service Fabric cluster. V tomto kurzu je pro použití s prostředkem Service Fabric připravena vícekontejnerová aplikace.In this tutorial, a multi-container application is prepared for use with Service Fabric. V následujících kurzech jsou tyto image použity jako součást aplikace Service Fabric.In subsequent tutorials, these images are used as part of a Service Fabric application. V tomto kurzu se naučíte:In this tutorial you learn how to:

  • Klonovat zdroj aplikace z GitHubuClone application source from GitHub
  • Vytvořit image kontejneru ze zdroje aplikaceCreate a container image from the application source
  • Nasadit instanci služby Azure Container Registry (ACR)Deploy an Azure Container Registry (ACR) instance
  • Označit image kontejneru pro službu ACRTag a container image for ACR
  • Odeslat image do služby ACRUpload the image to ACR

V této sérii kurzů se naučíte:In this tutorial series, you learn how to:

PožadavkyPrerequisites

  • Vývojové prostředí Linux nastavené pro Service Fabric.Linux development environment set up for Service Fabric. Při nastavování prostředí Linux postupujte podle pokynů zde.Follow the instructions here to set up your Linux environment.
  • Tento kurz vyžaduje použití Azure CLI verze 2.0.4 nebo novější.This tutorial requires that you are running the Azure CLI version 2.0.4 or later. Verzi zjistíte spuštěním příkazu az --version.Run az --version to find the version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.If you need to install or upgrade, see Install the Azure CLI.
  • Navíc se vyžaduje, abyste měli k dispozici předplatné Azure.Additionally, it requires that you have an Azure subscription available. Další informace o bezplatné zkušební verzi najdete zde.For more information on a free trial version, go here.

Získání kódu aplikaceGet application code

Ukázkovou aplikací používanou v tomto kurzu je hlasovací aplikace.The sample application used in this tutorial is a voting app. Aplikace se skládá z front-end webové součásti a back-end instance Redis.The application consists of a front-end web component and a back-end Redis instance. Součásti jsou sbaleny do imagí kontejneru.The components are packaged into container images.

Pomocí gitu si stáhněte kopii aplikace do vývojového prostředí.Use git to download a copy of the application to your development environment.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

Řešení obsahuje dvě složky a soubor docker-compose.yml.The solution contains two folders and a 'docker-compose.yml' file. Složka azure-vote obsahuje front-end službu Python spolu se souborem Dockerfile sloužícím k sestavení image.The 'azure-vote' folder contains the Python frontend service along with the Dockerfile used to build the image. Adresář Voting obsahuje balíček aplikace Service Fabric, který je nasazený do clusteru.The 'Voting' directory contains the Service Fabric application package that is deployed to the cluster. Tyto adresáře obsahují prostředky potřebné pro tento kurz.These directories contain the necessary assets for this tutorial.

Vytváření imagí kontejneruCreate container images

V adresáři azure-vote vytvořte image pro front-end webovou komponentu spuštěním následujícího příkazu.Inside the azure-vote directory, run the following command to build the image for the front-end web component. Tento příkaz používá k sestavení image soubor Dockerfile v tomto adresáři.This command uses the Dockerfile in this directory to build the image.

docker build -t azure-vote-front .

Poznámka

Pokud se zobrazí oznámení o odepření oprávnění, postupujte podle této dokumentace, která popisuje práci s Dockerem bez příkazu sudo.If you are getting permission denied then follow this documentation on how to work with docker without sudo.

Zpracování tohoto příkazu může chvíli trvat, protože je třeba načíst všechny potřebné závislosti z centra Dockeru.This command can take some time since all the necessary dependencies need to be pulled from Docker Hub. Po dokončení můžete vytvořené image zobrazit pomocí příkazu docker images.When completed, use the docker images command to see the created images.

docker images

Všimněte si, že byly staženy nebo vytvořeny dvě image.Notice that two images have been downloaded or created. Image azure-vote-front obsahuje aplikaci.The azure-vote-front image contains the application. Je odvozená z image python z centra Dockeru.It was derived from a python image from Docker Hub.

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   708MB
tiangolo/uwsgi-nginx-flask   python3.6           590e17342131        5 days ago           707MB

Nasazení služby Azure Container RegistryDeploy Azure Container Registry

Při prvním spuštění az login příkaz pro přihlášení ke svému účtu Azure.First run the az login command to sign in to your Azure account.

az login

Pak pomocí příkazu az account zvolte předplatné pro vytvoření registru kontejneru Azure.Next, use the az account command to choose your subscription to create the Azure Container registry. Místo parametru <subscription_id> je třeba zadat ID předplatného Azure.You have to enter the subscription ID of your Azure subscription in place of <subscription_id>.

az account set --subscription <subscription_id>

Pokud chcete nasadit službu Azure Container Registry, nejprve potřebujete skupinu prostředků.When deploying an Azure Container Registry, you first need a resource group. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.An Azure resource group is a logical container into which Azure resources are deployed and managed.

Vytvořte skupinu prostředků pomocí příkazu az group create.Create a resource group with the az group create command. V tomto příkladu se vytvoří skupina prostředků s názvem myResourceGroup v oblasti westus.In this example, a resource group named myResourceGroup is created in the westus region.

az group create --name <myResourceGroup> --location westus

Pomocí příkazu az acr create vytvořte registr kontejneru Azure.Create an Azure Container registry with the az acr create command. Nahraďte parametr <acrName> názvem registru kontejneru, který chcete v rámci svého předplatného vytvořit.Replace <acrName> with the name of the container registry you want to create under your subscription. Tento název smí obsahovat jen alfanumerické znaky a musí být jedinečný.This name must be alphanumeric and unique.

az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true

V celé zbývající části tohoto kurzu používáme položku „acrName“ jako zástupný symbol pro název registru kontejneru, který jste zvolili.Throughout the rest of this tutorial, we use "acrName" as a placeholder for the container registry name that you chose. Poznamenejte si tuto hodnotu.Please make note of this value.

Přihlaste se do vašeho registru kontejneruSign in to your container registry

Přihlaste se k vaší instanci služby ACR před nahráním Image do ní.Sign in to your ACR instance before pushing images to it. Dokončete operaci pomocí příkazu az acr login.Use the az acr login command to complete the operation. Uveďte jedinečný název zadaný pro registr kontejneru při jeho vytvoření.Provide the unique name given to the container registry when it was created.

az acr login --name <acrName>

Příkaz po dokončení vrátí zprávu Login Succeeded (Přihlášení proběhlo úspěšně).The command returns a 'Login Succeeded’ message once completed.

Označování imagí kontejneruTag container images

Každá image kontejneru musí být označena názvem loginServer registru.Each container image needs to be tagged with the loginServer name of the registry. Tato značka se používá pro směrování při nahrávání imagí kontejneru do registru imagí.This tag is used for routing when pushing container images to an image registry.

Pokud chcete zobrazit seznam aktuálních imagí, použijte příkaz docker images.To see a list of current images, use the docker images command.

docker images

Výstup:Output:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   708MB
tiangolo/uwsgi-nginx-flask   python3.6           590e17342131        5 days ago           707MB

Pokud chcete zjistit název loginServer, spusťte následující příkaz:To get the loginServer name, run the following command:

az acr show --name <acrName> --query loginServer --output table

Výstupem je tabulka s následujícími výsledky.This outputs a table with the following results. Výsledek se použije pro označení vaší image azure-vote-front před jejím nahráním do registru kontejneru v dalším kroku.This result will be used to tag your azure-vote-front image before pushing it to the container registry in the next step.

Result
------------------
<acrName>.azurecr.io

Nyní, označte image azure-vote-front názvem loginServer registru kontejneru.Now, tag the azure-vote-front image with the loginServer of your container registry. Na konec názvu image také přidejte řetězec :v1.Also, add :v1 to the end of the image name. Tato značka označuje verzi image.This tag indicates the image version.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

Po označení operaci ověřte spuštěním příkazu docker images.Once tagged, run 'docker images' to verify the operation.

Výstup:Output:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      708MB
<acrName>.azurecr.io/azure-vote-front   v1                  052c549a75bf       23 minutes ago      708MB
tiangolo/uwsgi-nginx-flask             python3.6           590e17342131        5 days ago          707MB

Nahrávání imagí do registruPush images to registry

Nahrajte image azure-voice-front do registru.Push the azure-vote-front image to the registry.

Podle následujícího příkladu nahraďte název loginServer služby ACR názvem loginServer ze svého prostředí.Using the following example, replace the ACR loginServer name with the loginServer from your environment.

docker push <acrName>.azurecr.io/azure-vote-front:v1

Dokončení příkazů docker push trvá několik minut.The docker push commands take a couple of minutes to complete.

Výpis imagí v registruList images in registry

Pokud chcete vrátit seznam imagí, které byly nahrány do vašeho registru kontejneru Azure, použijte příkaz az acr repository list.To return a list of images that have been pushed to your Azure Container registry, use the az acr repository list command. Aktualizujte příkaz s použitím názvu instance služby ACR.Update the command with the ACR instance name.

az acr repository list --name <acrName> --output table

Výstup:Output:

Result
----------------
azure-vote-front

Na konci kurzu byla image kontejneru uložena v privátní instanci služby Azure Container Registry.At tutorial completion, the container image has been stored in a private Azure Container Registry instance. Tato image bude nasazena ze služby ACR do clusteru Service Fabric v následných kurzech.This image is deployed from ACR to a Service Fabric cluster in subsequent tutorials.

Další postupNext steps

V tomto kurzu byla z Githubu přijata aplikace a imagí kontejneru byly vytvořeny a nahrány do registru.In this tutorial, an application was pulled from GitHub and container images were created and pushed to a registry. Dokončili jste následující kroky:The following steps were completed:

  • Klonovat zdroj aplikace z GitHubuClone application source from GitHub
  • Vytvořit image kontejneru ze zdroje aplikaceCreate a container image from the application source
  • Nasadit instanci služby Azure Container Registry (ACR)Deploy an Azure Container Registry (ACR) instance
  • Označit image kontejneru pro službu ACRTag a container image for ACR
  • Odeslat image do služby ACRUpload the image to ACR

Po přechodu k dalšímu kurzu se dozvíte o balení kontejnerů do aplikace Service Fabric pomocí Yeomanu.Advance to the next tutorial to learn about packaging containers into a Service Fabric application using Yeoman.