Tutorial: Erstellen eines Containerimages für die Bereitstellung in Azure Container InstancesTutorial: Create a container image for deployment to Azure Container Instances

Azure Container Instances ermöglicht die Bereitstellung von Docker-Containern in der Azure-Infrastruktur ohne Bereitstellung virtueller Computer oder Einführung eines übergeordneten Diensts.Azure Container Instances enables deployment of Docker containers onto Azure infrastructure without provisioning any virtual machines or adopting a higher-level service. In diesem Tutorial verpacken Sie eine kleine Node.js-Webanwendung in einem Containerimage, das mit Azure Container Instances ausgeführt werden kann.In this tutorial, you package a small Node.js web application into a container image that can be run using Azure Container Instances.

Dieser Artikel ist der erste Teil der Reihe und umfasst Folgendes:In this article, part one of the series, you:

  • Klonen des Anwendungsquellcodes von GitHubClone application source code from GitHub
  • Erstellen eines Containerimages aus der AnwendungsquelleCreate a container image from application source
  • Testen der Images in einer lokalen Docker-UmgebungTest the image in a local Docker environment

Im zweiten und dritten Tutorialteil laden Sie eigene Images in Azure Container Registry hoch und stellen sie in Azure Container Instances bereit.In tutorial parts two and three, you upload your image to Azure Container Registry, and then deploy it to Azure Container Instances.

VoraussetzungenBefore you begin

Für dieses Tutorial müssen folgende Voraussetzungen erfüllt sein:You must satisfy the following requirements to complete this tutorial:

Azure CLI: Auf dem lokalen Computer muss mindestens Version 2.0.29 der Azure-Befehlszeilenschnittstelle installiert sein.Azure CLI: You must have Azure CLI version 2.0.29 or later installed on your local computer. Führen Sie az --version aus, um die Version zu finden.Run az --version to find the version. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.If you need to install or upgrade, see Install the Azure CLI.

Docker: In diesem Tutorial wird vorausgesetzt, dass zentrale Docker-Konzepte wie Container und Containerimages sowie grundlegende docker-Befehle bekannt sind.Docker: This tutorial assumes a basic understanding of core Docker concepts like containers, container images, and basic docker commands. Eine Einführung in Docker und Container finden Sie in der Docker-Übersicht.For a primer on Docker and container basics, see the Docker overview.

Docker-Engine: Für dieses Tutorial muss die Docker-Engine lokal installiert sein.Docker Engine: To complete this tutorial, you need Docker Engine installed locally. Für die Docker-Umgebung stehen Konfigurationspakete für macOS, Windows und Linux zur Verfügung.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux.

Wichtig

Da Azure Cloud Shell den Docker-Daemon nicht beinhaltet, müssen Sie sowohl die Azure-Befehlszeilenschnittstelle als auch die Docker-Engine auf Ihrem lokalen Computer installieren, um dieses Tutorial absolvieren zu können.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. Azure Cloud Shell kann für dieses Tutorial nicht verwendet werden.You cannot use the Azure Cloud Shell for this tutorial.

Abrufen von AnwendungscodeGet application code

Die Beispielanwendung in diesem Tutorial ist eine einfache Web-App, die in Node.js erstellt wird.The sample application in this tutorial is a simple web app built in Node.js. Die Anwendung dient als statische HTML-Seite und sieht in etwa wie im folgenden Screenshot aus:The application serves a static HTML page, and looks similar to the following screenshot:

Tutorial-App im Browser

Verwenden Sie Git, um das Repository der Beispielanwendung zu klonen:Use Git to clone the sample application's repository:

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

Sie können das ZIP-Archiv auch direkt von GitHub herunterladen.You can also download the ZIP archive from GitHub directly.

Erstellen des ContainerimagesBuild the container image

Die Dockerfile in der Beispielanwendung veranschaulicht, wie der Container erstellt wird.The Dockerfile in the sample application shows how the container is built. Ausgangspunkt ist ein offizielles Node.js-Image auf der Grundlage von Alpine Linux (einer kleinen Distribution, die sich gut für Container eignet).It starts from an official Node.js image based on Alpine Linux, a small distribution that is well suited for use with containers. Anschließend werden die Anwendungsdateien in den Container kopiert und Abhängigkeiten mithilfe des Knotenpaket-Managers installiert, bevor schließlich die Anwendung gestartet wird.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

Verwenden Sie den Befehl docker build, um das Containerimage zu erstellen, und kennzeichnen Sie es als 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

Die Ausgabe des Befehls docker build ähnelt dem folgenden (zur besseren Lesbarkeit gekürzten) Beispiel: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

Verwenden Sie den Befehl docker images, um das erstellte Image anzuzeigen:Use the docker images command to see the built image:

docker images

Ihr neu erstelltes Image sollte in der Liste angezeigt werden: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

Lokales Ausführen des ContainersRun the container locally

Verwenden Sie vor dem Bereitstellen des Containers in Azure Container Instances den Befehl docker run, um ihn lokal auszuführen und sich zu vergewissern, dass dies funktioniert.Before you deploy the container to Azure Container Instances, use docker run to run it locally and confirm that it works. Mit dem Switch -d können Sie den Container im Hintergrund ausführen, und mit -p können Sie einen beliebigen Port auf Ihrem Computer dem Port 80 des Containers zuordnen.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

In der Ausgabe des Befehls docker run wird die ID des ausgeführten Containers angezeigt, wenn der Befehl erfolgreich war: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

Navigieren Sie in Ihrem Browser jetzt zu http://localhost:8080, um sicherzustellen, dass der Container ausgeführt wird.Now, navigate to http://localhost:8080 in your browser to confirm that the container is running. Es wird eine Webseite angezeigt, die in etwa wie folgt aussieht:You should see a web page similar to the following:

Lokales Ausführen der App im Browser

Nächste SchritteNext steps

In diesem Tutorial haben Sie ein Containerimage erstellt, das in Azure Container Instances bereitgestellt werden kann, und sich vergewissert, dass die lokale Ausführung möglich ist.In this tutorial, you created a container image that can be deployed in Azure Container Instances, and verified that it runs locally. Bisher haben Sie Folgendes durchgeführt:So far, you've done the following:

  • Anwendungsquelle von GitHub wurde geklont.Cloned the application source from GitHub
  • Erstellen eines Containerimages aus der AnwendungsquelleCreated a container image from the application source
  • Container wurde lokal getestet.Tested the container locally

Fahren Sie mit dem nächsten Tutorial der Reihe fort, um sich über das Speichern Ihres Containerimages in Azure Container Registry zu informieren:Advance to the next tutorial in the series to learn about storing your container image in Azure Container Registry: