Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit Visual Studio können Sie containerisierte .NET-, ASP.NET- und ASP.NET Core-Apps ganz einfach erstellen, debuggen und ausführen und sie in Azure Container Registry, Docker Hub, Azure App Service oder Ihrer eigenen Containerregistrierung veröffentlichen. In diesem Artikel veröffentlichen Sie eine ASP.NET Core-App in azure Container Registry.
Voraussetzungen
- Docker Desktop oder Podman Desktop.
- Visual Studio oder für Podman-Unterstützung , Visual Studio 2026, mit installierter ASP.NET und Webentwicklung, Azure-Entwicklungsarbeitsauslastung und/oder .NET-Desktopentwicklungsworkload .
- Zum Veröffentlichen in Azure Container Registry ist ein Azure-Abonnement erforderlich. Registrieren Sie sich für eine kostenlose Testversion.
Voraussetzungen
- Docker Desktop.
- Visual Studio mit installierter ASP.NET- und Webentwicklung, Azure-Entwicklungsarbeitsauslastung und/oder .NET-Desktopentwicklungsworkload .
- Zum Veröffentlichen in Azure Container Registry ist ein Azure-Abonnement erforderlich. Registrieren Sie sich für eine kostenlose Testversion.
Installation und Einrichtung
Überprüfen Sie bei der Docker-Installation zunächst die Informationen unter Docker Desktop für Windows: Was Sie vor der Installation wissen sollten. Installieren Sie als Nächstes Docker Desktop.
Installation und Einrichtung
Überprüfen Sie bei der Docker-Installation zunächst die Informationen unter Docker Desktop für Windows: Was Sie vor der Installation wissen sollten. Installieren Sie als Nächstes Docker Desktop.
Um Podman als Containerplattform zu verwenden, laden Sie Podman Desktop für Windows herunter, und folgen Sie dann dem Lernprogramm bei Podman für Windows , um einen Podman-Computer zu initialisieren und zu starten.
Hinzufügen eines Projekts zu einem Container
Bevor Sie das Visual Studio-Projekt erstellen, stellen Sie sicher, dass Docker Desktop den Typ von Containern (Windows oder Linux) ausführt, die Sie in Ihrem Visual Studio-Projekt verwenden möchten.
Um den von Docker Desktop verwendeten Containertyp zu ändern, klicken Sie mit der rechten Maustaste auf das Docker-Symbol (Wal) in der Taskleiste, und wählen Sie entweder zu Linux-Containern wechseln oder zu Windows-Containern wechseln.
Warnung
Wenn Sie den Containertyp nach dem Erstellen des Visual Studio-Projekts wechseln, können die Docker-Imagedateien möglicherweise nicht geladen werden.
Erstellen Sie ein neues Projekt mithilfe der ASP.NET Core Web App-Vorlage .
Stellen Sie auf dem Bildschirm " Neue Webanwendung erstellen" sicher, dass das Kontrollkästchen "Containerunterstützung aktivieren " aktiviert ist.
Der Screenshot zeigt die neueste Version mit .NET 8.0.
Wählen Sie den gewünschten Containertyp (Windows oder Linux) und dann "Erstellen" aus.
Übersicht über Dockerfile
Visual Studio erstellt eine Dockerfile-Datei in Ihrem Projekt, die das Rezept zum Erstellen eines endgültigen Docker-Images bereitstellt. Weitere Informationen finden Sie in der Dockerfile-Referenz zu den befehlen, die in der Dockerfile-Datei verwendet werden.
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyWepApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "./MyWebApp/./MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Die vorhergehende Dockerfile basiert auf dem Microsoft syndicates Containerkatalog .NET 8-Image und enthält Anweisungen zum Ändern des Basisimages, indem das Projekt mit dem Namen MyWebApp erstellt und dem Container hinzugefügt wird. Wenn Sie .NET Framework verwenden, unterscheidet sich das Basisimage.
Wenn das Kontrollkästchen " Für HTTPS konfigurieren " des neuen Projektdialogfelds aktiviert ist, macht dockerfile zwei Ports verfügbar. Ein Port wird für HTTP-Datenverkehr verwendet; der andere Port wird für HTTPS verwendet. Wenn das Kontrollkästchen nicht aktiviert ist, wird ein einzelner Port (80 oder 8080) für HTTP-Datenverkehr verfügbar gemacht.
Beim Ausrichten auf .NET 8 und höher haben Sie den Vorteil, dass Sie Ihre App sicherer als normaler Benutzer ausführen können, statt mit erhöhten Berechtigungen. Die von Visual Studio für .NET 8-Projekte generierte Dockerfile-Standarddatei ist für die Ausführung als normaler Benutzer konfiguriert. Um dieses Verhalten für ein vorhandenes Projekt zu aktivieren, fügen Sie die Zeile USER app der Dockerfile im Basisimage hinzu. Da Port 80 für normale Benutzer eingeschränkt ist, machen Sie ports 8080 und 8081 anstelle von 80 und 443 verfügbar. Port 8080 wird für HTTP-Datenverkehr verwendet, und Port 8081 wird für HTTPS verwendet. Zum Ausführen als normaler Benutzer muss der Container ein .NET 8-Basisimage verwenden, und die App muss als .NET 8-App ausgeführt werden. Wenn Sie ordnungsgemäß konfiguriert sind, sollte Ihre Dockerfile Code wie im folgenden Beispiel enthalten:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Die Standardvorlagen für .NET 8 und höher verwenden die Umgebungsvariable APP_UID für die Identität des normalen Benutzers.
Fehlerbehebung
Wählen Sie Docker aus der Dropdownliste "Debuggen" in der Symbolleiste aus, und starten Sie das Debuggen der App. Möglicherweise wird eine Meldung mit einer Eingabeaufforderung zum Vertrauen auf ein Zertifikat angezeigt. Wählen Sie aus, dass dem Zertifikat vertraut wird, um den Vorgang fortzusetzen.
Die Option "Containertools " im Ausgabefenster zeigt an, welche Aktionen ausgeführt werden. Beim ersten Mal kann es eine Weile dauern, bis das Basisimage heruntergeladen wird, aber bei nachfolgenden Ausführungen ist es schneller.
Nach Abschluss des Builds wird der Browser geöffnet und zeigt die Startseite Ihrer App an. In der Adressleiste des Browsers sehen Sie die localhost URL und die Portnummer für das Debuggen.
Anmerkung
Wenn Sie Ports für das Debuggen ändern müssen, können Sie dies in der launchSettings.json Datei tun. Siehe Containerstarteinstellungen.
Fenster „Container“
Im Fenster Container werden auf Ihrem Computer ausgeführte Container und andere verfügbare Images angezeigt.
Öffnen Sie das Fenster "Container ", indem Sie das Suchfeld in der IDE verwenden ( drücken Sie STRG+Q , um es zu verwenden), geben Sie ein container, und wählen Sie in der Liste das Fenster "Container " aus.
Sie können das Containerfenster an einem praktischen Ort, z. B. unterhalb des Editors, einbinden, indem Sie es bewegen und den Fensterplatzierungshandbüchern folgen.
Suchen Sie im Fenster Ihren Container, und durchlaufen Sie die einzelnen Registerkarten, um die Umgebungsvariablen, Portzuordnungen, Protokolle und das Dateisystem anzuzeigen.
Weitere Informationen finden Sie unter Verwenden des Fensters "Container".
Veröffentlichen von Docker-Images
Sobald der Entwicklungs- und Debugzyklus der App abgeschlossen ist, können Sie ein Produktionsbild der App erstellen.
Ändern Sie die Dropdownliste für die Konfiguration in "Freigeben ", und erstellen Sie die App.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, und wählen Sie "Veröffentlichen" aus.
Wählen Sie im Dialogfeld " Veröffentlichen " die Registerkarte "Docker Container Registry " aus.
Wählen Sie "Neue Azure-Containerregistrierung erstellen" aus.
Tragen Sie Ihre gewünschten Werte in der Erstellen Sie eine neue Azure-Containerregistrierung ein.
Einstellung Vorgeschlagener Wert Beschreibung DNS-Präfix Global eindeutiger Name Der Name, der Ihre Containerregistrierung eindeutig identifiziert. Abonnement Wählen Sie Ihr Abonnement aus Das zu verwendende Azure-Abonnement. Ressourcengruppe meineRessourcengruppe Name der Ressourcengruppe, in der Die Containerregistrierung erstellt werden soll. Wählen Sie "Neu" aus, um eine neue Ressourcengruppe zu erstellen. SKU Norm Dienstebene der Containerregistrierung Registrierungsort Ein Ort in der Nähe von Ihnen Wählen Sie einen Standort in einer Region in Ihrer Nähe oder in der Nähe anderer Dienste aus, die Ihre Containerregistrierung verwenden können.
Wählen Sie "Erstellen" aus. Im Dialogfeld " Veröffentlichen " wird nun die erstellte Registrierung angezeigt.
Wählen Sie "Fertig stellen" aus, um den Vorgang zum Veröffentlichen Ihres Containerimages in der neu erstellten Registrierung in Azure abzuschließen.
Nächste Schritte
Sie können den Container jetzt aus der Registrierung auf jeden Host abrufen, der Docker-Images ausführen kann, z. B. Azure-Containerinstanzen.
Hinzufügen eines Projekts zu einem Container
Bevor Sie das Visual Studio-Projekt erstellen, stellen Sie sicher, dass Docker Desktop den Typ von Containern (Windows oder Linux) ausführt, die Sie in Ihrem Visual Studio-Projekt verwenden möchten.
Um den von Docker Desktop verwendeten Containertyp zu ändern, klicken Sie mit der rechten Maustaste auf das Docker-Symbol (Wal) in der Taskleiste, und wählen Sie entweder zu Linux-Containern wechseln oder zu Windows-Containern wechseln.
Warnung
Wenn Sie den Containertyp nach dem Erstellen des Visual Studio-Projekts wechseln, können die Docker-Imagedateien möglicherweise nicht geladen werden.
Erstellen Sie ein neues Projekt mithilfe der ASP.NET Core Web App-Vorlage .
Stellen Sie auf dem Bildschirm " Neue Webanwendung erstellen " sicher, dass das Kontrollkästchen "Containerunterstützung aktivieren " aktiviert ist.
Der Screenshot zeigt die neueste Version mit .NET 8.0.
Wählen Sie den gewünschten Containertyp (Windows oder Linux) und dann "Erstellen" aus.
Übersicht über Dockerfile
Visual Studio erstellt eine Dockerfile-Datei in Ihrem Projekt, die das Rezept zum Erstellen eines endgültigen Docker-Images bereitstellt. Weitere Informationen finden Sie in der Dockerfile-Referenz zu den befehlen, die in der Dockerfile-Datei verwendet werden.
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyWepApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "./MyWebApp/./MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Die vorhergehende Dockerfile basiert auf dem Microsoft syndicates Containerkatalog .NET 8-Image und enthält Anweisungen zum Ändern des Basisimages, indem das Projekt mit dem Namen MyWebApp erstellt und dem Container hinzugefügt wird.
Wenn das Kontrollkästchen " Für HTTPS konfigurieren " des neuen Projektdialogfelds aktiviert ist, macht dockerfile zwei Ports verfügbar. Ein Port wird für HTTP-Datenverkehr verwendet; der andere Port wird für HTTPS verwendet. Wenn das Kontrollkästchen nicht aktiviert ist, wird ein einzelner Port (80 oder 8080) für HTTP-Datenverkehr verfügbar gemacht.
Beim Ausrichten auf .NET 8 und höher haben Sie den Vorteil, dass Sie Ihre App sicherer als normaler Benutzer ausführen können, statt mit erhöhten Berechtigungen. Die von Visual Studio für .NET 8-Projekte generierte Dockerfile-Standarddatei ist für die Ausführung als normaler Benutzer konfiguriert. Um dieses Verhalten für ein vorhandenes Projekt zu aktivieren, fügen Sie die Zeile USER app der Dockerfile im Basisimage hinzu. Da Port 80 für normale Benutzer eingeschränkt ist, machen Sie ports 8080 und 8081 anstelle von 80 und 443 verfügbar. Port 8080 wird für HTTP-Datenverkehr verwendet, und Port 8081 wird für HTTPS verwendet. Zum Ausführen als normaler Benutzer muss der Container ein .NET 8-Basisimage verwenden, und die App muss als .NET 8-App ausgeführt werden. Wenn Sie ordnungsgemäß konfiguriert sind, sollte Ihre Dockerfile Code wie im folgenden Beispiel enthalten:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Die Standardvorlagen verwenden die Umgebungsvariable APP_UID für die Identität des normalen Benutzers.
Fehlerbehebung
Wählen Sie Docker aus der Dropdownliste "Debuggen" in der Symbolleiste aus, und starten Sie das Debuggen der App. Möglicherweise wird eine Meldung mit einer Eingabeaufforderung zum Vertrauen auf ein Zertifikat angezeigt. Wählen Sie aus, dass dem Zertifikat vertraut wird, um den Vorgang fortzusetzen.
Die Option "Containertools " im Ausgabefenster zeigt an, welche Aktionen ausgeführt werden. Beim ersten Mal kann es eine Weile dauern, bis das Basisimage heruntergeladen wird, aber bei nachfolgenden Ausführungen ist es schneller.
Nach Abschluss des Builds wird der Browser geöffnet und zeigt die Startseite Ihrer App an. In der Adressleiste des Browsers sehen Sie die localhost URL und die Portnummer für das Debuggen.
Anmerkung
Wenn Sie Ports für das Debuggen ändern müssen, können Sie dies in der launchSettings.json Datei tun. Siehe Containerstarteinstellungen.
Fenster „Container“
Im Fenster Container werden auf Ihrem Computer ausgeführte Container und andere verfügbare Images angezeigt.
Öffnen Sie das Fenster "Container ", indem Sie das Suchfeld in der IDE verwenden ( drücken Sie STRG+Q , um es zu verwenden), geben Sie ein container, und wählen Sie in der Liste das Fenster "Container " aus.
Sie können das Containerfenster an einem praktischen Ort, z. B. unterhalb des Editors, einbinden, indem Sie es bewegen und den Fensterplatzierungshandbüchern folgen.
Suchen Sie im Fenster Ihren Container, und durchlaufen Sie die einzelnen Registerkarten, um die Umgebungsvariablen, Portzuordnungen, Protokolle und das Dateisystem anzuzeigen.
Weitere Informationen finden Sie unter Verwenden des Fensters "Container".
Veröffentlichen von Docker-Images
Sobald der Entwicklungs- und Debugzyklus der App abgeschlossen ist, können Sie ein Produktionsbild der App erstellen.
Ändern Sie die Dropdownliste für die Konfiguration in "Freigeben ", und erstellen Sie die App.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, und wählen Sie "Veröffentlichen" aus.
Wählen Sie im Dialogfeld " Veröffentlichen " die Registerkarte "Docker Container Registry " aus.
Wählen Sie "Neue Azure-Containerregistrierung erstellen" aus.
Tragen Sie Ihre gewünschten Werte in der Erstellen Sie eine neue Azure-Containerregistrierung ein.
Einstellung Vorgeschlagener Wert Beschreibung DNS-Präfix Global eindeutiger Name Der Name, der Ihre Containerregistrierung eindeutig identifiziert. Abonnement Wählen Sie Ihr Abonnement aus Das zu verwendende Azure-Abonnement. Ressourcengruppe meineRessourcengruppe Name der Ressourcengruppe, in der Die Containerregistrierung erstellt werden soll. Wählen Sie "Neu" aus, um eine neue Ressourcengruppe zu erstellen. SKU Norm Dienstebene der Containerregistrierung Registrierungsort Ein Ort in der Nähe von Ihnen Wählen Sie einen Standort in einer Region in Ihrer Nähe oder in der Nähe anderer Dienste aus, die Ihre Containerregistrierung verwenden können.
Wählen Sie "Erstellen" aus. Im Dialogfeld " Veröffentlichen " wird nun die erstellte Registrierung angezeigt.
Wählen Sie "Fertig stellen" aus, um den Vorgang zum Veröffentlichen Ihres Containerimages in der neu erstellten Registrierung in Azure abzuschließen.
Nächste Schritte
Sie können den Container jetzt aus der Registrierung auf jeden Host abrufen, der Docker-Images ausführen kann, z. B. Azure-Containerinstanzen.