Kurz: Vytvoření image kontejneru pro nasazení do služby Azure Container InstancesTutorial: Create a container image for deployment to Azure Container Instances

Azure Container Instances umožňuje nasazení kontejnerů Dockeru na infrastrukturu Azure bez zřizování virtuálních počítačů nebo využívání služby vyšší úrovně.Azure Container Instances enables deployment of Docker containers onto Azure infrastructure without provisioning any virtual machines or adopting a higher-level service. V tomto kurzu zabalíte malou webovou aplikaci Node.js do image kontejneru, kterou bude možné spustit pomocí služby Azure Container Instances.In this tutorial, you package a small Node.js web application into a container image that can be run using Azure Container Instances.

V tomto článku, který je první částí série, se naučíte:In this article, part one of the series, you:

  • Klonování zdrojového kódu aplikace z GitHubuClone application source code from GitHub
  • Vytvoření image kontejneru ze zdroje aplikaceCreate a container image from application source
  • Testování image v místním prostředí DockeruTest the image in a local Docker environment

V druhé a třetím kurzu nahrajete svou image do služby Azure Container Registry a potom ji nasadíte do služby Azure Container Instances.In tutorial parts two and three, you upload your image to Azure Container Registry, and then deploy it to Azure Container Instances.

Než začneteBefore you begin

Abyste mohli absolvovat tento kurz, musíte splňovat následující požadavky:You must satisfy the following requirements to complete this tutorial:

Azure CLI: Musíte mít Azure CLI verze 2.0.29 nebo novější nainstalován v místním počítači.Azure CLI: You must have Azure CLI version 2.0.29 or later installed on your local computer. 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 rozhraní příkazového řádku Azure CLI.If you need to install or upgrade, see Install the Azure CLI.

Docker: V tomto kurzu se předpokládá základní znalost klíčových konceptů Dockeru, jako jsou kontejnery, Image kontejnerů a základní docker příkazy.Docker: This tutorial assumes a basic understanding of core Docker concepts like containers, container images, and basic docker commands. Základní informace o Dockeru a kontejnerech najdete v článku Docker Overview (Přehled Dockeru).For a primer on Docker and container basics, see the Docker overview.

Modul docker: K dokončení tohoto kurzu, budete potřebovat místně nainstalovaný modul Docker.Docker Engine: To complete this tutorial, you need Docker Engine installed locally. Docker poskytuje balíčky, které nakonfigurují prostředí Dockeru v systému macOS, Windows a Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux.

Důležité

Vzhledem k tomu, že Azure Cloud Shell neobsahuje démona Dockeru, k dokončení tohoto kurzu musíte nainstalovat Azure CLI i modul Docker na svůj místní počítač.Because the Azure Cloud shell does not include the Docker daemon, you must install both the Azure CLI and Docker Engine on your local computer to complete this tutorial. Pro účely tohoto kurzu není možné použít Azure Cloud Shell.You cannot use the Azure Cloud Shell for this tutorial.

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

Ukázková aplikace v tomto kurzu je jednoduchá webová aplikace vytvořená v Node.js.The sample application in this tutorial is a simple web app built in Node.js. Tato aplikace slouží jako statická stránka HTML a vypadá podobně jako následující snímek obrazovky:The application serves a static HTML page, and looks similar to the following screenshot:

Ukázková aplikace zobrazená v prohlížeči

Pomocí Gitu naklonujte úložiště ukázkové aplikace:Use Git to clone the sample application's repository:

git clone https://github.com/Azure-Samples/aci-helloworld.git

Archiv ZIP můžete také stáhnout přímo z GitHubu.You can also download the ZIP archive from GitHub directly.

Sestavení image kontejneruBuild the container image

Soubor Dockerfile v ukázkové aplikaci ukazuje postup sestavení kontejneru.The Dockerfile in the sample application shows how the container is built. Začíná od oficiální image Node.js založené na systému Alpine Linux, malé distribuci vhodné pro použití s kontejnery.It starts from an official Node.js image based on Alpine Linux, a small distribution that is well suited for use with containers. Potom zkopíruje soubory aplikace do kontejneru, nainstaluje závislosti pomocí Node Package Manageru a nakonec aplikaci spustí.It then copies the application files into the container, installs dependencies using the Node Package Manager, and finally, starts the application.

FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/ /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js

Pomocí příkazu docker build vytvořte image kontejneru a označte ji jako aci-tutorial-app:Use the docker build command to create the container image and tag it as aci-tutorial-app:

docker build ./aci-helloworld -t aci-tutorial-app

Výstup příkazu docker build je podobný následujícímu výstupu (zkrácenému pro lepší čitelnost):Output from the docker build command is similar to the following (truncated for readability):

$ docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon  119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
 ---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
 ---> Running in f4a1ea099eec
 ---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest

Pomocí příkazu docker images zobrazte sestavenou image:Use the docker images command to see the built image:

docker images

Nově vytvořená image by se měla objevit na seznamu:Your newly built image should appear in the list:

$ docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 seconds ago    68.1 MB

Místní spuštění kontejneruRun the container locally

Než kontejner nasadíte do služby Azure Container Instances, spusťte ho místně pomocí příkazu docker run a ověřte, že funguje.Before you deploy the container to Azure Container Instances, use docker run to run it locally and confirm that it works. Přepínač -d umožňuje spuštění kontejneru na pozadí, zatímco přepínač -p umožňuje mapování libovolného portu vašeho počítače na port 80 kontejneru.The -d switch lets the container run in the background, while -p allows you to map an arbitrary port on your computer to port 80 in the container.

docker run -d -p 8080:80 aci-tutorial-app

Pokud byl příkaz docker run úspěšný, výstup z něj zobrazí ID spuštěného kontejneru:Output from the docker run command displays the running container's ID if the command was successful:

$ docker run -d -p 8080:80 aci-tutorial-app
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf

Teď ve svém prohlížeči přejděte na adresu http://localhost:8080 a ověřte, že je kontejner spuštěný.Now, navigate to http://localhost:8080 in your browser to confirm that the container is running. Zobrazená webová stránka by měla vypadat přibližně takto:You should see a web page similar to the following:

Místní spuštění aplikace v prohlížeči

Další postupNext steps

V tomto kurzu jste vytvořili image kontejneru, kterou je možné nasadit do služby Azure Container Instances a ověřit, že běží místně.In this tutorial, you created a container image that can be deployed in Azure Container Instances, and verified that it runs locally. Zatím jste provedli následující:So far, you've done the following:

  • Klonování zdroje aplikace z GitHubuCloned the application source from GitHub
  • Vytvoření image kontejneru ze zdroje aplikaceCreated a container image from the application source
  • Místní test kontejneruTested the container locally

Přejděte k dalšímu kurzu v sérii, ve kterém se seznámíte s ukládáním image kontejneru do služby Azure Container Registry:Advance to the next tutorial in the series to learn about storing your container image in Azure Container Registry: