Kurz: Vytvoření image kontejneru pro nasazení do 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ě. V tomto kurzu zabalíte malou webovou aplikaci Node.js do image kontejneru, kterou bude možné spustit pomocí služby Azure Container Instances.

V tomto článku, který je první částí série, se naučíte:

  • Klonování zdrojového kódu aplikace z GitHubu
  • Vytvoření image kontejneru ze zdroje aplikace
  • Testování image v místním prostředí Dockeru

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.

Než začnete

Abyste mohli absolvovat tento kurz, musíte splňovat následující požadavky:

Azure CLI: Na svém místním počítači musíte mít nainstalované Azure CLI verze 2.0.29 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace rozhraní příkazového řádku 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í příkazy docker. Základní informace o Dockeru a kontejnerech najdete v článku Docker Overview (Přehled Dockeru).

Docker: K dokončení tohoto kurzu potřebujete místně nainstalovaný Docker. Docker poskytuje balíčky, které nakonfigurují prostředí Dockeru v systému macOS, Windows a 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č. Pro účely tohoto kurzu není možné použít Azure Cloud Shell.

Získání kódu aplikace

Ukázková aplikace v tomto kurzu je jednoduchá webová aplikace vytvořená v Node.js. Tato aplikace slouží jako statická stránka HTML a vypadá podobně jako následující snímek obrazovky:

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

Pomocí Gitu naklonujte úložiště ukázkové aplikace:

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

Archiv ZIP můžete také stáhnout přímo z GitHubu.

Sestavení image kontejneru

Soubor Dockerfile v ukázkové aplikaci ukazuje postup sestavení kontejneru. Začíná od oficiální image Node.js založené na systému Alpine Linux, malé distribuci vhodné pro použití s kontejnery. Potom zkopíruje soubory aplikace do kontejneru, nainstaluje závislosti pomocí Node Package Manageru a nakonec aplikaci spustí.

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:

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):

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:

docker images

Nově vytvořená image by se měla objevit na seznamu:

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

Místní spuštění kontejneru

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. 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.

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:

docker run -d -p 8080:80 aci-tutorial-app
```output
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ý. Zobrazená webová stránka by měla vypadat přibližně takto:

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

Další kroky

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ě. Zatím jste provedli následující:

  • Klonování zdroje aplikace z GitHubu
  • Vytvoření image kontejneru ze zdroje aplikace
  • Místní test kontejneru

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: