Meister Azure Docker-Bereitstellung: Schritt-für-Schritt-Anleitung

Für dieses ATA-Projekt erhalten Sie einen Einblick, wie Docker in Azure funktioniert. In diesem Azure Docker-Tutorial erfahren Sie mehr über den Azure Container Instance (ACI) Service von Microsoft.

Der Azure Container Instance ist ein gehosteter Kubernetes-Cluster über das Azure Docker-Hosting. Es ermöglicht Ihnen, beliebige Docker-Images (Windows und Linux) bereitzustellen und als Container auszuführen. Jeder Azure Docker-Container läuft als eigenständiger Container und verwendet seine eigene zugewiesene CPU und den eigenen Speicher.

In diesem Projekt lernen Sie, wie Sie Ihre erste Azure Container Instance basierend auf einem Beispiel-ASP.NET-Container-Image von Microsoft in der Azure Public Cloud bereitstellen und ausführen können.

Am Ende dieses Projekts haben Sie eine ASP.NET-Website, die in einem Docker-Container gehostet wird, der vom Azure Container Instance Service bereitgestellt wird.

Umgebung und Wissensvoraussetzungen

Um das Beste aus diesem Azure Docker-Tutorial herauszuholen, sollten Sie Folgendes haben:

  1. A local Windows 10 client with Docker Desktop installed.
  2. A Microsoft Azure account
  3. Zugriff auf ein Azure-Konto mit Berechtigungen zum Bereitstellen eines Containers in Azure Container Registry
  4. Die Windows Azure CLI installiert. Sie werden von der Kommandozeile aus lernen.
  5. A beginner understanding of containers and Docker.
  6. A registered Docker ID.

Wenn Ihnen das im Azure Docker-Tutorial gewählte Beispiel nicht gefällt, können Sie jederzeit ein anderes Container-Image auf dem Docker Hub verwenden.

Ohne weitere Umschweife, lassen Sie uns mit dem Aufbau dieses Projekts beginnen!

Das Ausführen eines Docker-Containers

Um spätere Frustrationen zu vermeiden, wenn etwas nicht funktioniert, überprüfen Sie immer zuerst, ob der Docker-Engine ausgeführt wird. Öffnen Sie dazu eine Eingabeaufforderung oder PowerShell-Sitzung und führen Sie docker info aus.

Sie können unten sehen, welche Art von Ausgabe Sie erhalten sollten.

Inspecting information about the local Docker installation

Zum Überprüfen eines Docker-Containers führen Sie docker run hello-world aus. Im Hintergrund führt der Befehl docker einige Schritte aus:

  1. Sucht nach einem Container namens hello-word lokal auf Ihrem Windows 10-Computer.
  2. Wenn nicht gefunden, greift er auf das öffentliche Docker Hub-Repository zu, um nach der neuesten Version eines Containers mit dem Namen hello-world zu suchen.
  3. Wenn der Container gefunden wird, wird er dann aus dem Docker Hub-Repository heruntergeladen.
  4. Nach dem Herunterladen wird der Container gestartet und führt die im Bild des verwendeten Containers bereitgestellten Startanweisungen aus.

Sie können unten einige Beispielausgaben sehen.

Download a sample Docker container called hello-world

Starten eines Beispiels für einen ASP.NET-Container

Jetzt, da Sie wissen, wie Sie einen Docker-Container herunterladen und ausführen können, laden Sie jetzt den Container herunter und führen Sie ihn aus, mit dem Sie in diesem Projekt arbeiten werden. Dieser Docker-Container ist ein Bild einer ASP.Net Core-Webanwendung.

Um das Bild dieses Azure Docker-Tutorials herunterzuladen, führen Sie bitte den folgenden Befehl aus:

> docker run --name aspnetcore_sample --rm -it -p 8000:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

Dieser Befehl bewirkt folgendes:

  1. Da das Docker-Image lokal nicht verfügbar ist, lädt Docker einen Container namens aspnetapp von einem anderen öffentlichen Container-Register herunter, das von Microsoft gehostet wird und sich unter mcr.microsoft.com im Verzeichnis dotnet/core/samples befindet. Das Container-Register mcr.microsoft.com ähnelt dem öffentlichen Docker Hub, wird jedoch von Microsoft verwaltet und hostet nur Microsoft Container-Images.
  2. Führt den Container auf Ihrem lokalen Computer aus.
  3. (-p 8000:80) – Mapt den lauschenden TCP-Port 80 des Containers auf den TCP-Port 8000. Dadurch können Sie auf die Web-App lokal über den Port 8000 zugreifen.
  4. (-it) – Der Container wird interaktiv gestartet, was bedeutet, dass Sie sofort in die Konsole wechseln, wenn er startet.
  5. (—rm) – Wenn der Container gestoppt wird, wird er entfernt.

Sie können unten die erwartete Ausgabe sehen.

Downloading a container instance from Microsoft

6.   Verbinden Sie sich von Ihrem Browser aus mit dieser laufenden Container-Anwendung, indem Sie zu http://localhost:8000 navigieren. Sie sollten die Beispiel-ASP.Net-Web-App sehen.

Sample ASP.NET web app

Erstellen einer Azure Container Registry (ACR) Instanz

Sobald Sie den ASP.NET-Container auf Ihren lokalen Computer heruntergeladen haben, ist es nun an der Zeit, ihn auf das Azure Docker-Hosting mit ACI zu migrieren und diesen Container in Azure auszuführen. Dazu werden wir den Demo-Container in das Azure Container Registry (ACR) hochladen. ACR ist ein Dienst, der es Ihnen ermöglicht, Docker-Container direkt in Azure bereitzustellen und auszuführen.

  1. Melden Sie sich im Azure-Portal an.
  2. Klicken Sie oben auf das Symbol für die Befehlszeile, um die Azure Cloud Shell zu starten.
Starting Azure Cloud Shell

3. Stellen Sie sicher, dass Sie die Bash-Shell wie unten gezeigt auswählen.

Bash in Azure Cloud Shell

4. Erstellen Sie eine Azure-Ressourcengruppe, um eine Instanz von ACR zu platzieren, indem Sie den Befehl az group create wie unten gezeigt verwenden.

> az group create --name <RGname> --location <Azure Region of choice>
Creating a resource group

5. Erstellen Sie nun das ACR innerhalb der Ressourcengruppe mit dem Befehl az acr create. Unten sehen Sie ein Beispiel für die Erstellung eines ACR mit einer Basic-SKU unter Verwendung des Parameters admin-enabled, der auf true gesetzt ist. Dies wird auf true gesetzt, weil es Ihnen später ermöglicht, die Ressourcenverwaltung durchzuführen.

> az acr create --resource-group <RGname> --name <ACRname> --sku Basic
 --admin-enabled true
Creating an Azure Container Registry

–admin-enabled true

Wenn Sie fertig sind, sollte jetzt eine ACR-Instanz in Ihrer Ressourcengruppe ausgeführt werden. Azure Docker-Hosting ist zur Rettung!

Verbindung mit der ACR-Instanz lokal herstellen

  1. Jetzt müssen Sie von der Azure Cloud Shell zu Ihrem lokalen Windows-Computer wechseln, um die Einrichtung abzuschließen.
  2. Auf Ihrer lokalen Maschine starten Sie PowerShell oder ein Eingabeaufforderungsfenster mit Administratorrechten. Ich werde PowerShell verwenden.
  3. Melden Sie sich bei Azure mit der Azure CLI an, indem Sie den Befehl az login ausführen, und folgen Sie den Anweisungen, um Ihre Anmeldedaten bereitzustellen.
Authenticating to Azure

Nach erfolgreicher Authentifizierung sollten Sie einige JSON-Ausgaben sehen, die den Benutzer anzeigen, mit dem Sie sich gerade authentifiziert haben.

> az acr login --name <ACR-Name> --resource-group <RG Name>
Logging onto ACR

4. Authentifizieren Sie sich anschließend bei der ACR-Instanz, die Sie gerade in der Azure Cloud Shell erstellt haben, mit dem Befehl az acr login mit folgendem Befehl. Unten sehen Sie, dass ich mich mit einer ACR-Instanz namens nopacr1 in der Azure-Ressourcengruppe NOPRG verbinde.

Aktualisieren Sie den Docker-Image-Tag

  1. Sie sind nun bereit, Ihr lokales Docker-Image in Ihre ACR-Instanz in Azure Docker Hosting oder ACI zu pushen. Sie müssen jedoch zuerst eine ACR-Abhängigkeit erfüllen. Alle Docker-Images, die zu einer ACR-Instanz gepusht werden, müssen den Namen der ACR-Instanz im Bildnamen haben.
Finding the ACR Docker image

Finden Sie die Docker-Image-ID oder den Bildnamen mit dem Befehl docker images.

> docker tag mcr.microsoft.com/dotnet/core/samples:aspnetapp <ACRName>.azurecr.io/<imagenameofchoice>
Updating the Docker tag

2. Aktualisieren Sie den Docker-Image-Tag für das Docker-Image, indem Sie den Befehl docker tag wie unten gezeigt ausführen. Wenn Sie der Namenskonvention folgen, verwenden Sie den ACR-Namen NOPACR1 und definieren Sie den Tag als nopacr1.azurecr.io. Für das Bild selbst verwenden Sie den Namen dotnetsample.

Verifying Docker tag

3. Überprüfen Sie, ob der Tag mithilfe des Befehls docker images erneut angewendet wurde. Sie sollten jetzt sehen, dass der Tag aktualisiert wurde.

  1. Hochladen des Docker-Images in die ACR-Instanz und Überprüfen
> docker push <ACRName>.azurecr.io/<nameofimage>
Pushing Docker image to ACR

Jetzt laden Sie das lokale Bild auf die ACR-Instanz hoch, indem Sie den Befehl docker push wie unten gezeigt verwenden und das DNS-Label angeben, an dem sich die ACR-Instanz befindet.

Inspecting ACR instance in Azure portal

2. Nachdem Sie es hochgeladen haben, überprüfen Sie, ob der Upload zur ACR-Instanz erfolgreich war, indem Sie das Azure-Portal aufrufen und zu Alle Dienste —> Azure Containerregistrierungen navigieren und die ACR-Instanz auswählen, die Sie zuvor erstellt haben.

Inspecting Docker repo

3. Klicken Sie im linken Bereich des Klingenmenüs unter dem Abschnitt Dienste auf Repositories. Das gerade auf Ihre ACR-Instanz verschobene Docker-Image sollte hier angezeigt werden.

Inspecting Docker image

4. Klicken Sie auf das Bild, um seine Version und einige andere nützliche Informationen anzuzeigen.

Ausführen der Azure-Containerinstanz (ACI)

  1. Sie haben nun eine ACR-Instanz erstellt, ein Docker-Containerimage mit dem ACR-Namen als Referenz versehen und das Bild auf die ACR-Instanz hochgeladen. Jetzt ist es an der Zeit, die Azure Containerinstanz (ACI) zu verwenden, um das Docker-Image aus Ihrer ACR-Instanz auszuführen.
Creating a container instance

Fahren Sie mit dem vorherigen Schritt fort, klicken Sie auf das … neben latest und wählen Sie Instanz ausführen. Dadurch wird die Containerinstanz erstellen-Klinge geöffnet.

  • 2. Füllen Sie die Felder im Feld Containerinstanz erstellen unten mit den folgenden Informationen aus:
  • Containername – beliebiger Name, den Sie für diesen laufenden Container verwenden möchten
  • Betriebssystemtyp – Linux (Dies hängt vom Quellcontainer ab. Wenn Sie denselben Container in diesem Projekt verwenden, kann dies Windows sein.)
  • Abonnement – Ihr Azure-Abonnement
  • Resource Group – Jede vorhandene oder neue Azure-Ressourcengruppe, in die der Container-Instanz hinzugefügt werden soll

Ort – basierend auf der Ressourcengruppe

Creating a container instance

Für dieses Azure Docker-Tutorial können Sie alle anderen Einstellungen unverändert lassen. In einer Produktionsumgebung müssen Sie je nachdem, was der Container ausführt, möglicherweise diese Einstellungen ändern.

Successful container instance deployment

3.   Drücken Sie OK, um die Containerinstanz zu erstellen.
4.   Sobald die Containerinstanz bereitgestellt wurde, sollten Sie eine Seite sehen, die wie das folgende Beispiel aussieht.

Inspecting created container instance

5.   Sobald die Bereitstellung abgeschlossen ist, öffnen Sie die ACI im Portal, indem Sie zu Alle Dienste navigieren —> Containerinstanzen. Wenn Sie hier sind, navigieren Sie zu der Azure-Containerinstanz (ACI), die gerade erstellt wurde. Sie sollten die Instanz wie unten gezeigt sehen.

Sample ASP.NET Core webpage

6.   Kopieren Sie die IP-Adresse in der oberen rechten Ecke und fügen Sie sie in einen Webbrowser ein. Ihre Beispiel-ASP.NET-Webanwendung sollte von Ihrer Azure-Containerinstanz (ACI) geladen und eine Webseite angezeigt werden, wie unten gezeigt.

Wenn Sie mit diesem Container fertig sind, können Sie dann den Befehl az container delete verwenden, um den Container zu löschen.

Abschluss

Source:
https://adamtheautomator.com/azure-docker-tutorial/