Ausführen eines benutzerdefinierten Containers in Azure

Azure App Service stellt vordefinierte Anwendungsstapel unter Windows wie ASP.NET oder Node.js bereit (ausgeführt unter IIS). Die vorkonfigurierten Anwendungsstapel sperren jedoch das Betriebssystem und verhindern den Zugriff auf niedriger Ebene. Für benutzerdefinierte Windows-Container gelten diese Einschränkungen nicht, und Entwickler können die Container vollständig anpassen und Containeranwendungen Vollzugriff auf Windows-Funktionen erteilen.

In dieser Schnellstartanleitung erfahren Sie, wie Sie über Visual Studio in Azure Container Registry eine ASP.NET-App (in einem Windows-Image) bereitstellen. Die App wird in einem benutzerdefinierten Container in Azure App Service ausgeführt.

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

  • Installieren Sie Docker für Windows
  • Stellen Sie Docker so um, dass es Windows-Container ausführt.
  • Installieren Sie Visual Studio 2022 mit den Workloads ASP.NET und Webentwicklung und Azure-Entwicklung. Vergewissern Sie sich in Visual Studio 2022 Community, dass die Komponente .NET Framework project and item templates (Projekt- und Elementvorlagen für .NET Framework) mit der Workload ASP.NET und Webentwicklung aktiviert ist. Sie haben Visual Studio 2022 bereits installiert:
    • Installieren Sie in Visual Studio die neuesten Updates, indem Sie Hilfe>Nach Updates suchen auswählen.
    • Fügen Sie in Visual Studio die Workloads hinzu, indem Sie Tools>Tools und Features abrufen auswählen.

1. Erstellen einer ASP.NET-Web-App

Führen Sie zum Erstellen einer ASP.NET-Web-App die folgenden Schritte aus:

  1. Öffnen Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus.

  2. Suchen Sie unter Neues Projekt erstellen die Option ASP.NET-Webanwendung (.NET Framework) für C#, und wählen Sie sie aus. Wählen Sie anschließend Weiter aus.

    Screenshot of the Create a new project dialog.

  3. Geben Sie unter Neues Projekt konfigurieren unter Projektname den Namen myfirstazurewebapp für die Anwendung ein. Wählen Sie unter Framework die Option .NET Framework 4.8 und dann Erstellen aus.

    Screenshot of the Configure your web app project.

  4. Sie können jede Art von ASP.NET Web-App für Azure bereitstellen. Wählen Sie für diese Schnellstartanleitung die Vorlage MVC aus.

  5. Wählen Sie unter Authentifizierung die Option Keine aus. Wählen Sie unter Erweitert die Option Docker-Unterstützung aus, und deaktivieren Sie die Option Für HTTPS konfigurieren. Klicken Sie auf Erstellen.

    Screenshot of the Create ASP.NET Web Application dialog.

  6. Wenn die Dockerfile-Datei nicht automatisch geöffnet wird, öffnen Sie sie im Projektmappen-Explorer.

  7. Sie benötigen ein unterstütztes übergeordnetes Image. Ändern Sie das übergeordnete Image, indem Sie die Zeile FROM durch den folgenden Code ersetzen und die Datei dann speichern:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. Wählen Sie im Visual Studio-Menü Debuggen>Starten ohne Debugging aus, um die Web-App lokal auszuführen.

    Screenshot of the app running locally.

2. Veröffentlichen in der Azure Container Registry

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt myfirstazurewebapp, und wählen Sie Veröffentlichen aus.

  2. Wählen Sie unter Ziel die Option Docker-Containerregistrierung aus, und wählen Sie anschließend Weiter aus.

    Screenshot of the Select Docker Container Registry screen.

  3. Wählen Sie unter Bestimmtes Ziel die Option Azure Container Registry aus, und klicken Sie anschließend auf Weiter.

    Screenshot of the Publish from project overview page.

  4. Vergewissern Sie sich unter Veröffentlichen, dass das richtige Abonnement ausgewählt ist. Wählen Sie unter Containerregistrierungen die Schaltfläche + aus, um eine neue Azure Container Registry-Instanz zu erstellen.

    Screenshot of the Create new Azure Container Registry screen.

  5. Vergewissern Sie sich unter Neu erstellen, dass das richtige Abonnement ausgewählt ist. Wählen Sie unter Ressourcengruppe die Option Neu aus, geben Sie myResourceGroup als Namen ein, und klicken Sie auf OK. Wählen Sie unter SKU die Option Basic aus. Wählen Sie unter Registrierungsspeicherort einen Speicherort für die Registrierung und anschließend Erstellen aus.

    Screenshot of Azure Container Registry details.

  6. Wählen Sie in Veröffentlichen unter Containerregistrierung die von Ihnen erstellte Registrierung und anschließend Fertig stellen aus.

    Screenshot of the Select existing Azure Container Registry screen.

    Warten Sie, bis die Bereitstellung abgeschlossen ist. Auf der Seite Veröffentlichen wird jetzt der Name des Repositorys angezeigt. Wählen Sie die Schaltfläche Kopieren aus, um den Repositorynamen zur späteren Verwendung zu kopieren.

    Screenshot that highlights the repository name.

3. Erstellen eines benutzerdefinierten Windows-Containers

  1. Melden Sie sich beim Azure-Portal an.

  2. Klicken Sie im Azure-Portal links oben auf Ressource erstellen.

  3. Wählen Sie unter Beliebte Dienste unter Web-App die Option Erstellen aus.

  4. Wählen Sie auf der Seite Web-App erstellen Ihr Abonnement und eine Ressourcengruppe aus. Bei Bedarf kann eine neue Ressourcengruppe erstellt werden.

  5. Geben Sie einen App-Namen an, z. B. win-container-demo. Wählen Sie für Veröffentlichen die Option Docker-Container und für Betriebssystem die Option Windows aus. Klicken Sie auf Weiter: Docker aus, um den Vorgang fortzusetzen.

    Screenshot of Create a Web App for Containers.

  6. Wählen Sie unter Imagequelle die Option Docker Hub aus, und geben Sie unter Image und Tag den Repositorynamen ein, den Sie im Schritt Veröffentlichen in der Azure Container Registry kopiert haben.

    Screenshot of Configure your a Web App for Containers.

    Wenn Sie an anderer Stelle, etwa in Azure Container Registry oder einem anderen privaten Repository, ein benutzerdefiniertes Image für Ihre Webanwendung besitzen, können Sie es hier konfigurieren. Wählen Sie zum Fortfahren Überprüfen + erstellen aus.

  7. Überprüfen Sie alle Details, wählen Sie dann Erstellen aus, und warten Sie, bis Azure die erforderlichen Ressourcen erstellt hat. Screenshot of Create your a Web App for Containers.

4. Navigieren zum benutzerdefinierten Container

Wenn der Azure-Vorgang abgeschlossen ist, wird ein Benachrichtigungsfeld angezeigt.

Screenshot of deployment succeeded.

  1. Klicken Sie auf Zu Ressource wechseln.

  2. Folgen Sie in der Übersicht dieser Ressource dem Link neben URL.

Daraufhin wird eine neue Browserseite geöffnet:

Screenshot of Windows custom container starting.

Warten Sie einige Minuten, und wiederholen Sie den Vorgang, bis die ASP.NET-Standardhomepage angezeigt wird:

Screenshot of Windows custom container running.

Herzlichen Glückwunsch! Sie führen Ihren ersten benutzerdefinierten Windows-Container in Azure App Service aus.

5. Anzeigen der Startprotokolle des Containers

Das Laden des Windows-Containers kann eine Weile dauern. Wenn Sie den Status anzeigen möchten, navigieren Sie zur folgenden URL. Ersetzen Sie dabei <app_name> durch den Namen Ihrer App.

https://<app_name>.scm.azurewebsites.net/api/logstream

Die gestreamten Protokolle sehen wie folgt aus:

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

6. Lokales Aktualisieren und erneutes Bereitstellen

  1. Öffnen Sie in Visual Studio im Projektmappen-Explorer unter Ihrem Projekt Ansichten>Start>Index.cshtml.

  2. Suchen Sie im oberen Bereich nach dem HTML-Tag <div class="jumbotron">, und ersetzen Sie das gesamte Element durch folgenden Code:

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. Klicken Sie zum erneuten Bereitstellen in Azure im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt myfirstazurewebapp, und wählen Sie Veröffentlichen aus.

  4. Wählen Sie auf der Seite „Veröffentlichen“ die Option Veröffentlichen aus, und warten Sie, bis die Veröffentlichung abgeschlossen ist.

  5. Damit App Service das neue Image von Docker Hub abruft, starten Sie die App neu. Klicken Sie auf der App-Seite im Portal auf Neu starten>Ja.

    Screenshot of the App Service Overview with the Restart button highlighted.

Navigieren Sie erneut zum benutzerdefinierten Container. Wenn Sie die Webseite aktualisieren, sollte die App zunächst zurück zur Seite „Starting up“ (Starten) wechseln und dann nach einigen Minuten wieder die aktualisierte Webseite anzeigen.

Screenshot of the updated web app in Azure.

7. Bereinigen der Ressourcen

In den vorherigen Schritten haben Sie Azure-Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe löschen.

Wählen Sie im Azure-Portalmenü oder auf der Startseite die Option Ressourcengruppen aus. Wählen Sie auf der Seite Ressourcengruppen die Option myResourceGroup aus.

Stellen Sie auf der Seite myResourceGroup sicher, dass die Ressourcen aufgelistet sind, die Sie löschen möchten.

Wählen Sie die Option Löschen aus, geben Sie zur Bestätigung im Textfeld myResourceGroup ein, und wählen Sie anschließend Löschen aus.

Nächste Schritte

Bei Azure App Service für Linux werden vordefinierte Anwendungsstapel unter Linux mit Unterstützung für verschiedene Sprachen bereitgestellt, z. B. .NET, PHP, Node.js und andere. Sie können auch ein benutzerdefiniertes Docker-Image verwenden, um Ihre Web-App in einem Anwendungsstapel auszuführen, der nicht bereits in Azure definiert ist. In dieser Schnellstartanleitung erfahren Sie, wie Sie ein Image aus einer Azure Container Registry-Instanz (ACR) in App Service bereitstellen.

Hinweis

Informationen zum Ausführen containerisierter Anwendungen in einer serverlosen Umgebung finden Sie unter Container-Apps.

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

1. Erstellen einer Containerregistrierung

In diesem Schnellstart wird Azure Container Registry als Registrierung ausgewählt. Sie können auch andere Registrierungen verwenden, aber die Schritte können sich dann geringfügig unterscheiden.

Verwenden Sie für das Erstellen einer Containerregistrierung die Anweisungen unter Schnellstart: Erstellen einer privaten Containerregistrierung im Azure-Portal.

Wichtig

Stellen Sie sicher, dass Sie beim Erstellen der Containerregistrierung in Azure die Option Administratorbenutzer auf Aktivieren festlegen. Sie können die Option auch im Azure-Portal im Abschnitt Zugriffsschlüssel Ihrer Registrierungsseite festlegen. Diese Einstellung ist für den App Service-Zugriff erforderlich. Informationen zur verwalteten Identität finden Sie unter Konfigurieren von App Service für die Bereitstellung des Images über die Registrierung.

2. Anmelden

  1. Starten Sie Visual Studio Code.

  2. Wählen Sie das Azure-Logo auf der Aktivitätsleiste aus, navigieren Sie zum APP SERVICE-Explorer, wählen Sie dann Bei Azure anmelden aus, und folgen Sie den Anweisungen.

    Screenshot of signing into Azure in Visual Studio Code.

  3. Überprüfen Sie unten auf der Statusleiste, die E-Mail-Adresse Ihres Azure-Kontos. Im APP SERVICE-Explorer sollte Ihr Abonnement angezeigt werden.

  4. Wählen Sie auf der Aktivitätsleiste das Docker-Logo aus. Überprüfen Sie im REGISTRIERUNGS-Explorer, ob die von Ihnen erstellte Containerregistrierung angezeigt wird.

    Screenshot shows the Registries value with Azure expanded.

3. Überprüfen der Voraussetzungen

Überprüfen Sie, ob Docker installiert ist und ausgeführt wird. Wenn Docker ausgeführt wird, zeigt der folgende Befehl die Version an.

docker --version

4. Erstellen und Kompilieren (Build) eines Images

  1. Öffnen Sie in Visual Studio Code einen leeren Ordner, und fügen Sie eine Datei mit dem Namen Dockerfile hinzu. Fügen Sie im Dockerfile den Inhalt basierend auf Ihrem gewünschten Sprachframework ein:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

ENV ASPNETCORE_URLS "http://*:${PORT}"

ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]

In diesem Dockerfile ist das übergeordnete Image einer der integrierten .NET-Container von App Service. Sie finden die zugehörigen Quelldateien im GitHub-Repository „Azure-App-Service/ImageBuilder“ unter „GenerateDockerFiles/dotnetcore“. Das Dockerfile kopiert eine einfache .NET-App in /defaulthome/hostingstart. Ihr Dockerfile startet einfach nur diese App.

  1. Öffnen Sie die Befehlspalette, und geben Sie Docker Images: Build Image ein. Drücken Sie die EINGABETASTE, um den Befehl auszuführen.

  2. Geben Sie im Feld „Imagetag“ das gewünschte Tag im Format <acr-name>.azurecr.io/<image-name>/<tag> an. Dabei ist <acr-name> der Name der von Ihnen erstellten Containerregistrierung. Drücken Sie die EINGABETASTE.

  3. Klicken Sie nach Abschluss der Imageerstellung oben im IMAGES-Explorer auf Aktualisieren und überprüfen Sie, ob das Image erfolgreich erstellt wurde.

    Screenshot shows the built image with tag.

5. Bereitstellen in der Containerregistrierung

  1. Klicken Sie auf der Aktivitätsleiste auf das Symbol Docker. Suchen Sie im IMAGES-Explorer nach dem Image, das Sie erstellt haben.

  2. Erweitern Sie das Image, klicken Sie mit der rechten Maustaste auf das gewünschte Tag, und klicken Sie auf Pushen.

  3. Achten Sie darauf, dass das Imagetag mit <acr-name>.azurecr.io beginnt, und drücken Sie die EINGABETASTE.

  4. Wenn Visual Studio Code das Pushen des Images in Ihre Containerregistrierung abgeschlossen hat, klicken Sie oben im REGISTRIERUNGS-Explorer auf Aktualisieren und vergewissern Sie sich, dass das Image erfolgreich gepusht wurde.

    Screenshot shows the image deployed to Azure container registry.

6. Bereitstellen in App Service

  1. Erweitern Sie das Image im REGISTRIERUNGS-Explorer, klicken Sie mit der rechten Maustaste auf das Tag, und klicken Sie dann auf Deploy image to Azure App Service (Image in Azure App Service bereitstellen).
  2. Befolgen Sie die Aufforderungen, um ein Abonnement, einen global eindeutigen App-Namen, eine Ressourcengruppe und einen App Service-Plan auszuwählen. Wählen Sie als Tarif B1 Basic sowie eine Region in Ihrer Nähe aus.

Nach der Bereitstellung ist Ihre App unter http://<app-name>.azurewebsites.net verfügbar.

Eine Ressourcengruppe ist eine benannte Sammlung aller Ressourcen Ihrer Anwendung in Azure. Eine Ressourcengruppe kann z. B. einen Verweis auf eine Website, eine Datenbank und eine Azure-Funktion enthalten.

Ein App Service-Plan definiert die physischen Ressourcen, die zum Hosten Ihrer Website verwendet werden. In diesem Schnellstart wird ein Hostingplan vom Typ Basic für die Linux-Infrastruktur verwendet. Dies bedeutet, dass die Website neben anderen Websites auf einem Linux-Computer gehostet wird. Wenn Sie mit dem Basic-Plan beginnen, können Sie das Azure-Portal zum zentralen Hochskalieren verwenden, sodass Ihre die einzige Website ist, die auf einem Computer ausgeführt wird. Eine Beschreibung der Preise finden Sie unter App Service – Preise.

7. Durchsuchen der Website

Im Bereich Ausgabe wird der Status der Bereitstellungsvorgänge angezeigt. Klicken Sie nach Abschluss des Vorgangs in der Popupbenachrichtigung auf Website öffnen, um die Website in Ihrem Browser zu öffnen.

8. Bereinigen der Ressourcen

In den vorherigen Schritten haben Sie Azure-Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe löschen.

Wählen Sie im Azure-Portalmenü oder auf der Startseite die Option Ressourcengruppen aus. Wählen Sie auf der Seite Ressourcengruppen die Option myResourceGroup aus.

Stellen Sie auf der Seite myResourceGroup sicher, dass die Ressourcen aufgelistet sind, die Sie löschen möchten.

Wählen Sie die Option Löschen aus, geben Sie zur Bestätigung im Textfeld myResourceGroup ein, und wählen Sie anschließend Löschen aus.

Nächste Schritte

Herzlichen Glückwunsch! Sie haben diesen Schnellstart erfolgreich abgeschlossen.

Die App Service-App führt bei jedem Start einen Pull aus der Containerregistrierung aus. Wenn Sie Ihr Image neu erstellen, müssen Sie es nur in Ihre Containerregistrierung pushen. Die App pullt dann das aktualisierte Image, wenn es neu gestartet wird. Wenn Ihre App das aktualisierte Image sofort pullen soll, starten Sie sie neu.

Weitere Azure-Erweiterungen:

Bei Azure App Service für Linux werden vordefinierte Anwendungsstapel unter Linux mit Unterstützung für verschiedene Sprachen bereitgestellt, z. B. .NET, PHP, Node.js und andere. Sie können auch ein benutzerdefiniertes Docker-Image verwenden, um Ihre Web-App in einem Anwendungsstapel auszuführen, der nicht bereits in Azure definiert ist. In dieser Schnellstartanleitung erfahren Sie, wie Sie ein Image aus der Azure Container Registry in Azure App Service bereitstellen.

Hinweis

Informationen zum Ausführen containerisierter Anwendungen in einer serverlosen Umgebung finden Sie unter Container-Apps.

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

1. Klonen des Beispielrepositorys

Klonen Sie die .NET 6.0-Beispiel-App mit dem folgenden Befehl:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

2. Pushen des Images in die Azure Container Registry

Stellen Sie sicher, dass Sie sich im Stammordner des geklonten Repositorys befinden. Dieses Repository enthält eine Dockerfile.linux-Datei.

  1. Anmelden bei der Azure CLI

    az login
    
  2. Melden Sie sich bei Azure Container Registry an.

    az acr login -n <your_registry_name>
    
  3. Erstellen des Containerimages Wir benennen das Image dotnetcore-docs-hello-world-linux.

    docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux . 
    
  4. Pushübertragung des Containerimages in die Azure-Containerregistrierung

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux:latest
    

    Hinweis

    Das Dockerfile legt die Portnummer intern auf 80 fest. Weitere Informationen zum Konfigurieren des Containers finden Sie unter Konfigurieren eines benutzerdefinierten Containers.

3. Bereitstellen in Azure

Anmelden beim Azure-Portal

Melden Sie sich beim Azure-Portal an.

Erstellen von Azure-Ressourcen

  1. Geben Sie app services in das Suchfeld ein. Wählen Sie unter Dienste die Option App Services aus.

    Screenshot of searching for 'app services' in the Azure portal.

  2. Wählen Sie auf der Seite App Services die Option + Erstellen aus.

  3. Vergewissern Sie sich auf der Registerkarte Grundlagen unter Projektdetails, dass das richtige Abonnement ausgewählt ist, und wählen Sie dann Neue Ressourcengruppe erstellen aus. Geben Sie als Namen myResourceGroup ein.

    Screenshot of the Project details section showing where you select the Azure subscription and the resource group for the web app.

  4. Geben Sie unter Details zur Instanz einen global eindeutigen Namen für Ihre Web-App ein, und wählen Sie Docker-Container aus. Wählen Sie unter Betriebssystem die Option Linux aus. Wählen Sie eine Region aus, aus der Sie Ihre App bereitstellen möchten.

    Screenshot of the Instance details section where you provide a name for the virtual machine and select its region, image and size.

  5. Wählen Sie unter App Service-Plan die Option Neu erstellen aus. Geben Sie als Name myAppServicePlan ein. Wenn Sie zum Free-Tarif (Kostenlos) wechseln möchten, wählen Sie Größe ändern und dann die Registerkarte Dev/Test > F1 und unten auf der Seite die Schaltfläche Anwenden aus.

    Screenshot of the Administrator account section where you provide the administrator username and password.

  6. Wählen Sie die Schaltfläche Weiter: Docker > unten auf der Seite aus.

  7. Wählen Sie auf der Registerkarte Docker unter Optionen die Option Einzelner Container und Azure Container Registry als Bildquelle aus. Legen Sie unter Azure Container Registry-Optionen die folgenden Werte fest:

    • Registrierung: Wählen Sie Ihre Azure Container Registry aus.
    • Image: Wählen Sie dotnetcore-docs-hello-world-linux aus.
    • Tag: Wählen Sie Neueste aus.

    Screenshot showing the Azure Container Registry options.

  8. Wählen Sie unten auf der Seite die Schaltfläche Überprüfen und erstellen aus.

    Screenshot showing the Review and create button at the bottom of the page.

  9. Wählen Sie nach der Überprüfung unten auf der Seite die Schaltfläche Erstellen aus.

  10. Wenn Ihre Bereitstellung abgeschlossen ist, wählen Sie Go to resource (Zu Ressource wechseln) aus.

    Screenshot showing the next step of going to the resource.

4. Navigieren zur App

Navigieren Sie in Ihrem Webbrowser zur an der URL http://<app-name>.azurewebsites.net bereitgestellten Anwendung.

Screenshot showing the deployed application.

5. Bereinigen von Ressourcen

In den vorherigen Schritten haben Sie Azure-Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe löschen.

Wählen Sie im Azure-Portalmenü oder auf der Startseite die Option Ressourcengruppen aus. Wählen Sie auf der Seite Ressourcengruppen die Option myResourceGroup aus.

Stellen Sie auf der Seite myResourceGroup sicher, dass die Ressourcen aufgelistet sind, die Sie löschen möchten.

Wählen Sie die Option Löschen aus, geben Sie zur Bestätigung im Textfeld myResourceGroup ein, und wählen Sie anschließend Löschen aus.

Nächste Schritte

Herzlichen Glückwunsch! Sie haben diesen Schnellstart erfolgreich abgeschlossen.

Die App Service-App führt bei jedem Start einen Pull aus der Containerregistrierung aus. Wenn Sie Ihr Image neu erstellen, müssen Sie es nur in Ihre Containerregistrierung pushen. Die App pullt dann das aktualisierte Image, wenn es neu gestartet wird. Wenn Ihre App das aktualisierte Image sofort pullen soll, starten Sie sie neu.

Azure App Service stellt vordefinierte Anwendungsstapel unter Windows wie ASP.NET oder Node.js bereit (ausgeführt unter IIS). Die vorkonfigurierten Anwendungsstapel sperren jedoch das Betriebssystem und verhindern den Zugriff auf niedriger Ebene. Für benutzerdefinierte Windows-Container gelten diese Einschränkungen nicht, und Entwickler können die Container vollständig anpassen und Containeranwendungen Vollzugriff auf Windows-Funktionen erteilen.

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine ASP.NET-App in einem Windows-Image aus der Azure Container Registry in Azure App Service bereitstellen.

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

1. Klonen des Beispielrepositorys

Klonen Sie die .NET 6.0-Beispiel-App mit dem folgenden Befehl:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

2. Pushen des Images in die Azure Container Registry

Stellen Sie sicher, dass Sie sich im Stammordner des geklonten Repositorys befinden. Dieses Repository enthält eine Dockerfile.windows-Datei. Wir verwenden Windows Nano Server Long Term Servicing Channel (LTSC) 2022 als Basisbetriebssystem, das explizit unsere Windows-Basis aufruft.

Hinweis

Obwohl dies ein Windows-Container ist, müssen die Pfade weiterhin normale Schrägstriche verwenden. Weitere Details finden Sie unter Schreiben eines Dockerfile.

  1. Anmelden bei der Azure CLI

    az login
    
  2. Melden Sie sich bei Azure Container Registry an.

    az acr login -n <your_registry_name>
    
  3. Erstellen des Containerimages Wir benennen das Image dotnetcore-docs-hello-world-windows.

    docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows . 
    
  4. Pushübertragung des Containerimages in die Azure-Containerregistrierung

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows:latest
    

    Hinweis

    Das Dockerfile legt die Portnummer intern auf 80 fest. Weitere Informationen zum Konfigurieren des Containers finden Sie unter Konfigurieren eines benutzerdefinierten Containers.

3. Bereitstellen in Azure

Anmelden beim Azure-Portal

Melden Sie sich beim Azure-Portal an.

Erstellen von Azure-Ressourcen

  1. Geben Sie app services in das Suchfeld ein. Wählen Sie unter Dienste die Option App Services aus.

    Screenshot of searching for 'app services' in the Azure portal.

  2. Wählen Sie auf der Seite App Services die Option + Erstellen aus.

  3. Vergewissern Sie sich auf der Registerkarte Grundlagen unter Projektdetails, dass das richtige Abonnement ausgewählt ist, und wählen Sie dann Neue Ressourcengruppe erstellen aus. Geben Sie als Namen myResourceGroup ein.

    Screenshot of the Project details section showing where you select the Azure subscription and the resource group for the web app.

  4. Geben Sie unter Details zur Instanz einen global eindeutigen Namen für Ihre Web-App ein, und wählen Sie Docker-Container aus. Wählen Sie als Betriebssystem die Option Windows aus. Wählen Sie eine Region aus, aus der Sie Ihre App bereitstellen möchten.

    Screenshot of the Instance details section where you provide a name for the virtual machine and select its region, image and size.

  5. Wählen Sie unter App Service-Plan die Option Neu erstellen aus. Geben Sie als Name myAppServicePlan ein. Wenn Sie zum Free-Tarif (Kostenlos) wechseln möchten, wählen Sie Größe ändern und dann die Registerkarte Dev/Test > P1v3 und unten auf der Seite die Schaltfläche Anwenden aus.

    Screenshot of the Administrator account section where you provide the administrator username and password.

  6. Wählen Sie die Schaltfläche Weiter: Docker > unten auf der Seite aus.

  7. Wählen Sie auf der Registerkarte Docker die Option Azure Container Registry als Bildquelle aus. Legen Sie unter Azure Container Registry-Optionen die folgenden Werte fest:

    • Registrierung: Wählen Sie Ihre Azure Container Registry aus.
    • Image: Wählen Sie dotnetcore-docs-hello-world-windows aus.
    • Tag: Wählen Sie Neueste aus.

    Screenshot showing the Azure Container Registry options.

  8. Wählen Sie unten auf der Seite die Schaltfläche Überprüfen und erstellen aus.

    Screenshot showing the Review and create button at the bottom of the page.

  9. Wählen Sie nach der Überprüfung unten auf der Seite die Schaltfläche Erstellen aus.

  10. Wenn Ihre Bereitstellung abgeschlossen ist, wählen Sie Go to resource (Zu Ressource wechseln) aus.

    Screenshot showing the next step of going to the resource.

4. Navigieren zur App

Navigieren Sie in Ihrem Webbrowser zur an der URL http://<app-name>.azurewebsites.net bereitgestellten Anwendung.

Screenshot of the Windows App Service with messaging that containers without a port exposed will run in background mode.

Beachten Sie, dass das Hostbetriebssystem in der Fußzeile angezeigt wird und bestätigt, dass die aktuelle Ausführung in einem Windows-Container erfolgt.

5. Bereinigen von Ressourcen

In den vorherigen Schritten haben Sie Azure-Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe löschen.

Wählen Sie im Azure-Portalmenü oder auf der Startseite die Option Ressourcengruppen aus. Wählen Sie auf der Seite Ressourcengruppen die Option myResourceGroup aus.

Stellen Sie auf der Seite myResourceGroup sicher, dass die Ressourcen aufgelistet sind, die Sie löschen möchten.

Wählen Sie die Option Löschen aus, geben Sie zur Bestätigung im Textfeld myResourceGroup ein, und wählen Sie anschließend Löschen aus.

Nächste Schritte

Herzlichen Glückwunsch! Sie haben diesen Schnellstart erfolgreich abgeschlossen.

Die App Service-App führt bei jedem Start einen Pull aus der Containerregistrierung aus. Wenn Sie Ihr Image neu erstellen, müssen Sie es nur in Ihre Containerregistrierung pushen. Die App pullt dann das aktualisierte Image, wenn es neu gestartet wird. Wenn Ihre App das aktualisierte Image sofort pullen soll, starten Sie sie neu.

Azure App Service stellt vordefinierte Anwendungsstapel unter Windows wie ASP.NET oder Node.js bereit (ausgeführt unter IIS). Die vorkonfigurierten Anwendungsstapel sperren jedoch das Betriebssystem und verhindern den Zugriff auf niedriger Ebene. Für benutzerdefinierte Windows-Container gelten diese Einschränkungen nicht, und Entwickler können die Container vollständig anpassen und Containeranwendungen Vollzugriff auf Windows-Funktionen erteilen.

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine ASP.NET-App in einem Windows-Image aus der Microsoft-Artefaktregistrierung in Azure App Service bereitstellen.

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

1. Herstellen einer Verbindung mit Azure

Melden Sie sich mithilfe des Befehls Connect-AzAccount bei Ihrem Azure-Konto an, und folgen Sie der Eingabeaufforderung:

Connect-AzAccount

2. Erstellen einer Ressourcengruppe

Erstellen Sie mit dem Befehl New-AzResourceGroup eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus. Wenn Sie alle unterstützten Standorte für App Service anzeigen möchten, führen Sie den Befehl Get-AzLocation aus.

New-AzResourceGroup -Name myResourceGroup -Location eastus

Der Befehl gibt nach Abschluss des Vorgangs Login Succeeded zurück.

3. Erstellen Ihres App Service-Plans

Erstellen Sie einen neuen App Service-Plan mithilfe des Befehls New-AzAppServicePlan.

Im folgenden Beispiel wird ein App Service-Plan namens myAppServicePlan im Tarif PremiumV3 (-Tier PremiumV3) erstellt: Der Parameter -HyperV gibt den Windows-Container an.

New-AzAppServicePlan -Name myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -Tier PremiumV3 -HyperV

4. Erstellen Ihrer Web-App

Erstellen Sie mithilfe des Befehls New-AzWebApp eine neue App.

New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Der Parameter „Name“ gibt den Namen der Web-App an.
  • Der Parameter „AppServicePlan“ gibt den Namen des App Service-Plans an.
  • Der Parameter „Location“ gibt den Standort an.
  • Der Parameter „ResourceGroupName“ gibt den Namen der Ressourcengruppe an.
  • Der Parameter „ContainerImageName“ gibt den Namen eines Containerimages und ein optionales Tag an.

Die Ausführung des Befehls kann einige Minuten dauern.

5. Navigieren zur App

Navigieren Sie in Ihrem Webbrowser zur an der URL http://<app-name>.azurewebsites.net bereitgestellten Anwendung.

Screenshot of the Windows App Service with messaging that containers without a port exposed will run in background mode.

6. Bereinigen der Ressourcen

Entfernen Sie die Ressourcengruppe mit dem Befehl Remove-AzResourceGroup:

Remove-AzResourceGroup myResourceGroup

Nächste Schritte

Herzlichen Glückwunsch! Sie haben diesen Schnellstart erfolgreich abgeschlossen.

Die App Service-App führt bei jedem Start einen Pull aus der Containerregistrierung aus. Wenn Sie Ihr Image neu erstellen, müssen Sie es nur in Ihre Containerregistrierung pushen. Die App pullt dann das aktualisierte Image, wenn es neu gestartet wird. Wenn Ihre App das aktualisierte Image sofort pullen soll, starten Sie sie neu.

Azure App Service stellt vordefinierte Anwendungsstapel unter Windows wie ASP.NET oder Node.js bereit (ausgeführt unter IIS). Die vorkonfigurierten Anwendungsstapel sperren jedoch das Betriebssystem und verhindern den Zugriff auf niedriger Ebene. Für benutzerdefinierte Windows-Container gelten diese Einschränkungen nicht, und Entwickler können die Container vollständig anpassen und Containeranwendungen Vollzugriff auf Windows-Funktionen erteilen.

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine ASP.NET-App in einem Windows-Image aus der Microsoft-Artefaktregistrierung in Azure App Service bereitstellen.

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:

1. Herstellen einer Verbindung mit Azure

Melden Sie sich mithilfe des Befehls az login bei Ihrem Azure-Konto an, und folgen Sie der Eingabeaufforderung:

az login

2. Erstellen einer Ressourcengruppe

Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus. Wenn Sie alle unterstützten Standorte für App Service anzeigen möchten, führen Sie den Befehl az appservice list-locations aus.

az group create --name myResourceGroup --location eastus

3. Erstellen Ihres App Service-Plans

Erstellen Sie mit dem Befehl az appservice plan create einen App Service-Plan in der Ressourcengruppe.

Im folgenden Beispiel wird ein App Service-Plan namens myAppServicePlan im Tarif P1V3 (--sku P1V3) erstellt.

az appservice plan create --resource-group myResourceGroup --location eastus --name myAppServicePlan --hyper-v --sku p1v3

Hinweis

Wenn der Fehler „Das Verhalten dieses Befehls wurde von der folgenden Erweiterung geändert: appservice-kube.“ auftritt, entfernen Sie die appservice-kube-Erweiterung.

4. Erstellen Ihrer Web-App

Erstellen Sie eine Web-App in einem benutzerdefinierten Container im App Service-Plan myAppServicePlan mithilfe des Befehls az webapp create. Vergessen Sie nicht, myContainerApp durch einen eindeutigen App-Namen zu ersetzen (gültige Zeichen sind a-z, 0-9 und -).

az webapp create --name myContainerApp --plan myAppServicePlan --location eastus --resource-group myResourceGroup --deployment-container-image-name mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Der Parameter „Name“ gibt den Namen der Web-App an.
  • Der Parameter „AppServicePlan“ gibt den Namen des App Service-Plans an.
  • Der Parameter „Location“ gibt den Standort an.
  • Der Parameter „ResourceGroupName“ gibt den Namen der Ressourcengruppe an.
  • Der Parameter „deployment-container-image-name“ gibt den Namen eines Containerimages und ein optionales Tag an.

5. Navigieren zur App

Navigieren Sie in Ihrem Webbrowser zur an der URL http://<app-name>.azurewebsites.net bereitgestellten Anwendung.

Screenshot of the Windows App Service with messaging that containers without a port exposed will run in background mode.

6. Bereinigen der Ressourcen

Entfernen Sie die Ressourcengruppe mit dem Befehl az group delete:

az group delete --no-wait --name <resource_group>

Nächste Schritte

Herzlichen Glückwunsch! Sie haben diesen Schnellstart erfolgreich abgeschlossen.

Die App Service-App führt bei jedem Start einen Pull aus der Containerregistrierung aus. Wenn Sie Ihr Image neu erstellen, müssen Sie es nur in Ihre Containerregistrierung pushen. Die App pullt dann das aktualisierte Image, wenn es neu gestartet wird. Wenn Ihre App das aktualisierte Image sofort pullen soll, starten Sie sie neu.