Tutorial: Erstellen eines Containerimages für die Bereitstellung in 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. In diesem Tutorial verpacken Sie eine kleine Node.js-Webanwendung in einem Containerimage, das mit Azure Container Instances ausgeführt werden kann.
Dieser Artikel ist der erste Teil der Reihe und umfasst Folgendes:
- Klonen des Anwendungsquellcodes von GitHub
- Erstellen eines Containerimages aus der Anwendungsquelle
- Testen der Images in einer lokalen Docker-Umgebung
Im zweiten und dritten Tutorialteil laden Sie eigene Images in Azure Container Registry hoch und stellen sie in Azure Container Instances bereit.
Vorbereitungen
Für dieses Tutorial müssen folgende Voraussetzungen erfüllt sein:
Azure CLI: Auf dem lokalen Computer muss mindestens Version 2.0.29 der Azure-Befehlszeilenschnittstelle installiert sein. Führen Sie az --version
aus, um die Version zu finden. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.
Docker: In diesem Tutorial wird vorausgesetzt, dass zentrale Docker-Konzepte wie Container und Containerimages sowie grundlegende docker
-Befehle bekannt sind. Eine Einführung in Docker und Container finden Sie in der Docker-Übersicht.
Docker: Für dieses Tutorial muss Docker lokal installiert sein. Für die Docker-Umgebung stehen Konfigurationspakete für macOS, Windows und Linux zur Verfügung.
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. Azure Cloud Shell kann für dieses Tutorial nicht verwendet werden.
Abrufen von Anwendungscode
Die Beispielanwendung in diesem Tutorial ist eine einfache Web-App, die in Node.js erstellt wird. Die Anwendung dient als statische HTML-Seite und sieht in etwa wie im folgenden Screenshot aus:
Verwenden Sie Git, um das Repository der Beispielanwendung zu klonen:
git clone https://github.com/Azure-Samples/aci-helloworld.git
Sie können das ZIP-Archiv auch direkt von GitHub herunterladen.
Erstellen des Containerimages
Die Dockerfile in der Beispielanwendung veranschaulicht, wie der Container erstellt wird. Ausgangspunkt ist ein offizielles Node.js-Image auf der Grundlage von Alpine Linux (einer kleinen Distribution, die sich gut für Container eignet). Anschließend werden die Anwendungsdateien in den Container kopiert und Abhängigkeiten mithilfe des Knotenpaket-Managers installiert, bevor schließlich die Anwendung gestartet wird.
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:
docker build ./aci-helloworld -t aci-tutorial-app
Die Ausgabe des Befehls docker build ähnelt dem folgenden (zur besseren Lesbarkeit gekürzten) Beispiel:
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:
docker images
Ihr neu erstelltes Image sollte in der Liste angezeigt werden:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 seconds ago 68.1 MB
Lokales Ausführen des Containers
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. 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.
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:
docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf
Navigieren Sie in Ihrem Browser jetzt zu http://localhost:8080
, um sicherzustellen, dass der Container ausgeführt wird. Die daraufhin angezeigte Seite sollte in etwa wie im folgenden Screenshot aussehen:
Nächste Schritte
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. Bisher haben Sie folgende Schritte ausgeführt:
- Anwendungsquelle von GitHub wurde geklont.
- Erstellen eines Containerimages aus der Anwendungsquelle
- Container wurde lokal getestet.
Fahren Sie mit dem nächsten Tutorial der Reihe fort, um sich über das Speichern Ihres Containerimages in Azure Container Registry zu informieren: