Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za pomocą programu Visual Studio można łatwo kompilować, debugować i uruchamiać konteneryzowane aplikacje .NET, ASP.NET i ASP.NET Core oraz publikować je w usłudze Azure Container Registry, Docker Hub, aplikacja systemu Azure Service lub własnym rejestrze kontenerów. W tym artykule opublikujesz aplikację ASP.NET Core w usłudze Azure Container Registry.
Wymagania wstępne
- Docker Desktop lub Podman Desktop.
- Visual Studio lub dla obsługi Podman Visual Studio 2026 z zainstalowanymi pakietami roboczymi tworzenie aplikacji ASP.NET i aplikacji sieci Web, Programowanie na platformie Azure i/lub tworzenie aplikacji klasycznych platformy .NET.
- Aby opublikować w usłudze Azure Container Registry, potrzebna jest subskrypcja platformy Azure. Utwórz konto w celu uzyskania bezpłatnej wersji próbnej.
Wymagania wstępne
- Docker Desktop.
- Program Visual Studio, który ma zainstalowane pakiety do tworzenia ASP.NET i aplikacji internetowych, rozwoju aplikacji na platformie Azure, i/lub rozwoju aplikacji desktopowych .NET.
- Aby opublikować w usłudze Azure Container Registry, potrzebna jest subskrypcja platformy Azure. Utwórz konto w celu uzyskania bezpłatnej wersji próbnej.
Instalacja i konfiguracja
W przypadku instalacji platformy Docker najpierw zapoznaj się z informacjami w witrynie Docker Desktop dla systemu Windows: co należy wiedzieć przed zainstalowaniem. Następnie zainstaluj program Docker Desktop.
Instalacja i konfiguracja
W przypadku instalacji platformy Docker najpierw zapoznaj się z informacjami w witrynie Docker Desktop dla systemu Windows: co należy wiedzieć przed zainstalowaniem. Następnie zainstaluj program Docker Desktop.
Aby użyć Podman jako platformy kontenerowej, pobierz program Podman Desktop dla systemu Windows, a następnie postępuj zgodnie z samouczkiem Podman for Windows, aby zainicjować i uruchomić maszynę Podman.
Dodawanie projektu do kontenera
Przed utworzeniem projektu programu Visual Studio upewnij się, że program Docker Desktop uruchamia typ kontenerów (Windows lub Linux), które mają być używane w projekcie programu Visual Studio.
Aby zmienić typ kontenera używany przez program Docker Desktop, kliknij prawym przyciskiem myszy ikonę platformy Docker (wieloryb) na pasku zadań i wybierz pozycję Przełącz do kontenerów systemu Linux lub Przełącz do kontenerów systemu Windows.
Ostrzeżenie
Jeśli zmienisz typ kontenera po utworzeniu projektu programu Visual Studio, ładowanie plików obrazów platformy Docker może zakończyć się niepowodzeniem.
Utwórz nowy projekt przy użyciu szablonu ASP.NET Core Web App .
Na ekranie Tworzenie nowej aplikacji internetowej upewnij się, że zaznaczono pole wyboru Włącz obsługę kontenerów .
Zrzut ekranu przedstawia najnowszą wersję z platformą .NET 8.0.
Wybierz odpowiedni typ kontenera (Windows lub Linux), a następnie wybierz pozycję Utwórz.
Plik Dockerfile — przegląd
Program Visual Studio tworzy plik Dockerfile w projekcie, który zawiera przepis na sposób tworzenia końcowego obrazu platformy Docker. Aby uzyskać więcej informacji, zobacz dokumentację pliku Dockerfile, aby uzyskać szczegółowe informacje o poleceniach używanych w pliku Dockerfile.
#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"]
Powyższy plik Dockerfile jest oparty na obrazie .NET 8 z katalogu kontenerów Microsoft i zawiera instrukcje dotyczące modyfikowania obrazu bazowego przez zbudowanie projektu o nazwie MyWebApp i dodanie go do kontenera. Jeśli używasz programu .NET Framework, obraz podstawowy jest inny.
Po zaznaczeniu pola wyboru Konfiguruj pod kątem protokołu HTTPS w oknie dialogowym nowego projektu plik Dockerfile uwidacznia dwa porty. Jeden port jest używany na potrzeby ruchu HTTP; drugi port jest używany dla protokołu HTTPS. Jeśli pole wyboru nie jest zaznaczone, dla ruchu HTTP jest uwidoczniony pojedynczy port (80 lub 8080).
W przypadku korzystania z platformy .NET 8 i nowszych masz korzyść z możliwości bezpiecznego uruchamiania aplikacji jako zwykły użytkownik, a nie z podwyższonymi uprawnieniami. Domyślny plik Dockerfile generowany przez program Visual Studio dla projektów platformy .NET 8 jest skonfigurowany do uruchamiania jako zwykły użytkownik. Aby włączyć to zachowanie w istniejącym projekcie, dodaj wiersz USER app do pliku Dockerfile w obrazie podstawowym. Ponadto, ponieważ port 80 jest ograniczony dla zwykłych użytkowników, uwidacznia porty 8080 i 8081 zamiast 80 i 443. Port 8080 jest używany dla ruchu HTTP, a port 8081 jest używany dla protokołu HTTPS. Aby uruchomić go jako zwykły użytkownik, kontener musi używać obrazu podstawowego platformy .NET 8, a aplikacja musi działać jako aplikacja platformy .NET 8. Po poprawnym skonfigurowaniu plik Dockerfile powinien zawierać kod, jak w poniższym przykładzie:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Domyślne szablony dla platformy .NET 8 i nowszej używają zmiennej APP_UID środowiskowej dla tożsamości normalnego użytkownika.
Debugowanie
Wybierz pozycję Docker z listy rozwijanej debugowania na pasku narzędzi i rozpocznij debugowanie aplikacji. Może zostać wyświetlony komunikat z monitem o zaufanie certyfikatowi; wybierz opcję zaufania certyfikatowi, aby kontynuować.
Opcja Narzędzia kontenera w oknie Dane wyjściowe pokazuje, jakie akcje mają miejsce. Po raz pierwszy pobranie obrazu podstawowego może zająć trochę czasu, ale jest szybsze w kolejnych uruchomieniach.
Po zakończeniu kompilacji zostanie otwarta przeglądarka i zostanie wyświetlona strona główna aplikacji. Na pasku adresu przeglądarki można zobaczyć localhost adres URL i numer portu na potrzeby debugowania.
Uwaga / Notatka
Jeśli musisz zmienić porty na potrzeby debugowania, możesz to zrobić w launchSettings.json pliku. Zobacz Ustawienia uruchamiania kontenera.
Okno kontenerów
Możesz użyć okna Kontenery , aby wyświetlić uruchomione kontenery na maszynie i inne dostępne obrazy.
Otwórz okno Kontenery przy użyciu pola wyszukiwania w środowisku IDE (naciśnij Ctrl+Q, aby go użyć), wpisz , containera następnie wybierz okno Kontenery z listy.
Okno Kontenery można zainstalować w wygodnym miejscu, takim jak poniżej edytora, przenosząc je i postępując zgodnie z przewodnikami umieszczania okien.
W oknie znajdź kontener i przejdź przez każdą kartę, aby wyświetlić zmienne środowiskowe, mapowania portów, dzienniki i system plików.
Aby uzyskać więcej informacji, zobacz Używanie okna Kontenera.
Publikowanie obrazów platformy Docker
Po zakończeniu cyklu tworzenia i debugowania aplikacji możesz utworzyć obraz produkcyjny aplikacji.
Zmień listę rozwijaną konfiguracji na Release i skompiluj aplikację.
Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz polecenie Publikuj.
W oknie dialogowym Publikowanie wybierz kartę Docker Container Registry.
Wybierz pozycję Utwórz nowy rejestr kontenerów platformy Azure.
Wypełnij żądane wartości w obszarze Tworzenie nowego rejestru kontenerów platformy Azure.
Ustawienia Sugerowana wartość Opis Prefiks DNS Nazwa unikatowa w skali globalnej Nazwa, która jednoznacznie identyfikuje rejestr kontenerów. Subskrypcja Wybieranie subskrypcji Subskrypcja platformy Azure, która ma być używana. Grupa zasobów GrupaZasobówMoja Nazwa grupy zasobów, w której ma zostać utworzony rejestr kontenerów. Wybierz pozycję Nowy , aby utworzyć nową grupę zasobów. Numer jednostki magazynowej Standard Poziom usługi rejestru kontenerów Lokalizacja rejestru Lokalizacja blisko ciebie Wybierz lokalizację w regionie blisko Ciebie lub w pobliżu innych usług, które mogą korzystać z rejestru kontenerów.
Wybierz Utwórz. W oknie dialogowym Publikowanie zostanie wyświetlony utworzony rejestr.
Wybierz pozycję Zakończ , aby ukończyć proces publikowania obrazu kontenera w nowo utworzonym rejestrze na platformie Azure.
Dalsze kroki
Teraz możesz ściągnąć kontener z rejestru do dowolnego hosta, który może uruchamiać obrazy Docker, na przykład Azure Container Instances.
Dodawanie projektu do kontenera
Przed utworzeniem projektu programu Visual Studio upewnij się, że program Docker Desktop uruchamia typ kontenerów (Windows lub Linux), które mają być używane w projekcie programu Visual Studio.
Aby zmienić typ kontenera używany przez program Docker Desktop, kliknij prawym przyciskiem myszy ikonę platformy Docker (wieloryb) na pasku zadań i wybierz pozycję Przełącz do kontenerów systemu Linux lub Przełącz do kontenerów systemu Windows.
Ostrzeżenie
Jeśli zmienisz typ kontenera po utworzeniu projektu programu Visual Studio, ładowanie plików obrazów platformy Docker może zakończyć się niepowodzeniem.
Utwórz nowy projekt przy użyciu szablonu ASP.NET Core Web App .
Na ekranie Tworzenie nowej aplikacji internetowej upewnij się, że zaznaczono pole wyboru Włącz obsługę kontenerów .
Zrzut ekranu przedstawia najnowszą wersję z platformą .NET 8.0.
Wybierz odpowiedni typ kontenera (Windows lub Linux), a następnie wybierz pozycję Utwórz.
Plik Dockerfile — przegląd
Program Visual Studio tworzy plik Dockerfile w projekcie, który zawiera przepis na sposób tworzenia końcowego obrazu platformy Docker. Aby uzyskać więcej informacji, zobacz dokumentację pliku Dockerfile, aby uzyskać szczegółowe informacje o poleceniach używanych w pliku Dockerfile.
#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"]
Powyższy plik Dockerfile jest oparty na obrazie .NET 8 z katalogu kontenerów Microsoft i zawiera instrukcje dotyczące modyfikowania obrazu bazowego przez zbudowanie projektu o nazwie MyWebApp i dodanie go do kontenera.
Po zaznaczeniu pola wyboru Konfiguruj pod kątem protokołu HTTPS w oknie dialogowym nowego projektu plik Dockerfile uwidacznia dwa porty. Jeden port jest używany na potrzeby ruchu HTTP; drugi port jest używany dla protokołu HTTPS. Jeśli pole wyboru nie jest zaznaczone, dla ruchu HTTP jest uwidoczniony pojedynczy port (80 lub 8080).
W przypadku korzystania z platformy .NET 8 i nowszych masz korzyść z możliwości bezpiecznego uruchamiania aplikacji jako zwykły użytkownik, a nie z podwyższonymi uprawnieniami. Domyślny plik Dockerfile generowany przez program Visual Studio dla projektów platformy .NET 8 jest skonfigurowany do uruchamiania jako zwykły użytkownik. Aby włączyć to zachowanie w istniejącym projekcie, dodaj wiersz USER app do pliku Dockerfile w obrazie podstawowym. Ponadto, ponieważ port 80 jest ograniczony dla zwykłych użytkowników, uwidacznia porty 8080 i 8081 zamiast 80 i 443. Port 8080 jest używany dla ruchu HTTP, a port 8081 jest używany dla protokołu HTTPS. Aby uruchomić go jako zwykły użytkownik, kontener musi używać obrazu podstawowego platformy .NET 8, a aplikacja musi działać jako aplikacja platformy .NET 8. Po poprawnym skonfigurowaniu plik Dockerfile powinien zawierać kod, jak w poniższym przykładzie:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Szablony domyślne używają zmiennej APP_UID środowiskowej dla tożsamości normalnego użytkownika.
Debugowanie
Wybierz pozycję Docker z listy rozwijanej debugowania na pasku narzędzi i rozpocznij debugowanie aplikacji. Może zostać wyświetlony komunikat z monitem o zaufanie certyfikatowi; wybierz opcję zaufania certyfikatowi, aby kontynuować.
Opcja Narzędzia kontenera w oknie Dane wyjściowe pokazuje, jakie akcje mają miejsce. Po raz pierwszy pobranie obrazu podstawowego może zająć trochę czasu, ale jest szybsze w kolejnych uruchomieniach.
Po zakończeniu kompilacji zostanie otwarta przeglądarka i zostanie wyświetlona strona główna aplikacji. Na pasku adresu przeglądarki można zobaczyć localhost adres URL i numer portu na potrzeby debugowania.
Uwaga / Notatka
Jeśli musisz zmienić porty na potrzeby debugowania, możesz to zrobić w launchSettings.json pliku. Zobacz Ustawienia uruchamiania kontenera.
Okno kontenerów
Możesz użyć okna Kontenery , aby wyświetlić uruchomione kontenery na maszynie i inne dostępne obrazy.
Otwórz okno Kontenery przy użyciu pola wyszukiwania w środowisku IDE (naciśnij Ctrl+Q, aby go użyć), wpisz , containera następnie wybierz okno Kontenery z listy.
Okno Kontenery można zainstalować w wygodnym miejscu, takim jak poniżej edytora, przenosząc je i postępując zgodnie z przewodnikami umieszczania okien.
W oknie znajdź kontener i przejdź przez każdą kartę, aby wyświetlić zmienne środowiskowe, mapowania portów, dzienniki i system plików.
Aby uzyskać więcej informacji, zobacz Używanie okna Kontenera.
Publikowanie obrazów platformy Docker
Po zakończeniu cyklu tworzenia i debugowania aplikacji możesz utworzyć obraz produkcyjny aplikacji.
Zmień listę rozwijaną konfiguracji na Release i skompiluj aplikację.
Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz polecenie Publikuj.
W oknie dialogowym Publikowanie wybierz kartę Docker Container Registry.
Wybierz pozycję Utwórz nowy rejestr kontenerów platformy Azure.
Wypełnij żądane wartości w obszarze Tworzenie nowego rejestru kontenerów platformy Azure.
Ustawienia Sugerowana wartość Opis Prefiks DNS Nazwa unikatowa w skali globalnej Nazwa, która jednoznacznie identyfikuje rejestr kontenerów. Subskrypcja Wybieranie subskrypcji Subskrypcja platformy Azure, która ma być używana. Grupa zasobów GrupaZasobówMoja Nazwa grupy zasobów, w której ma zostać utworzony rejestr kontenerów. Wybierz pozycję Nowy , aby utworzyć nową grupę zasobów. Numer jednostki magazynowej Standard Poziom usługi rejestru kontenerów Lokalizacja rejestru Lokalizacja blisko ciebie Wybierz lokalizację w regionie blisko Ciebie lub w pobliżu innych usług, które mogą korzystać z rejestru kontenerów.
Wybierz Utwórz. W oknie dialogowym Publikowanie zostanie wyświetlony utworzony rejestr.
Wybierz pozycję Zakończ , aby ukończyć proces publikowania obrazu kontenera w nowo utworzonym rejestrze na platformie Azure.
Dalsze kroki
Teraz możesz ściągnąć kontener z rejestru do dowolnego hosta, który może uruchamiać obrazy Docker, na przykład Azure Container Instances.