Udostępnij za pośrednictwem


Uruchamianie niestandardowego kontenera na platformie Azure

Usługa Azure App Service udostępnia wstępnie zdefiniowane stosy aplikacji w systemie Windows, takie jak ASP.NET lub Node.js, działające w usługach IIS. Jednak wstępnie skonfigurowane stosy aplikacji blokują system operacyjny i uniemożliwiają dostęp niskiego poziomu. Niestandardowe kontenery systemu Windows nie mają tych ograniczeń i pozwalają deweloperom w pełni dostosować kontenery i zapewnić konteneryzowanym aplikacjom pełny dostęp do funkcji systemu Windows.

W tym przewodniku Szybki start pokazano, jak wdrożyć aplikację ASP.NET na obrazie systemu Windows w usłudze Azure Container Registry z poziomu programu Visual Studio. Aplikacja jest uruchamiana w kontenerze niestandardowym w usłudze aplikacja systemu Azure Service.

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

1 — Tworzenie aplikacji internetowej ASP.NET

Utwórz aplikację internetową ASP.NET, wykonując następujące kroki:

  1. Otwórz program Visual Studio, a następnie wybierz pozycję Utwórz nowy projekt.

  2. W obszarze Tworzenie nowego projektu znajdź i wybierz pozycję ASP.NET Aplikacja internetowa (.NET Framework) dla języka C#, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie nowego projektu.

  3. W obszarze Konfigurowanie nowego projektu w obszarze Nazwa projektu nadaj aplikacji nazwę myfirstazurewebapp. W obszarze Framework wybierz pozycję .NET Framework 4.8, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający projekt Konfigurowanie aplikacji internetowej.

  4. Na platformie Azure można wdrożyć dowolny typ aplikacji internetowej platformy ASP.NET. Na potrzeby tego przewodnika Szybki start wybierz szablon MVC .

  5. W obszarze Uwierzytelnianie wybierz pozycję Brak. W obszarze Zaawansowane wybierz pozycję Obsługa platformy Docker i usuń zaznaczenie pola wyboru Konfiguruj dla protokołu HTTPS. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie aplikacji internetowej ASP.NET.

  6. Jeśli plik Dockerfile nie zostanie automatycznie otwarty, otwórz go w Eksploratorze rozwiązań.

  7. Potrzebujesz obsługiwanego obrazu nadrzędnego. Zmień obraz nadrzędny, zastępując wiersz FROM następującym kodem i zapisując plik:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. Z menu programu Visual Studio wybierz pozycję Debuguj>rozpocznij bez debugowania, aby uruchomić aplikację internetową lokalnie.

    Zrzut ekranu przedstawiający aplikację uruchomioną lokalnie.

2 — Publikowanie w usłudze Azure Container Registry

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt myfirstazurewebapp i wybierz polecenie Publikuj.

  2. W obszarze Cel wybierz pozycję Docker Container Registry, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający ekran Select Docker Container Registry (Wybieranie rejestru kontenerów platformy Docker).

  3. W obszarze Określony element docelowy wybierz pozycję Azure Container Registry, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający stronę przeglądu publikowania z projektu.

  4. W obszarze Publikuj upewnij się, że wybrano poprawną subskrypcję. W obszarze Rejestry kontenerów wybierz przycisk , + aby utworzyć nowy rejestr kontenerów platformy Azure.

    Zrzut ekranu przedstawiający ekran Tworzenie nowego rejestru kontenerów platformy Azure.

  5. W obszarze Utwórz nową upewnij się, że wybrano poprawną subskrypcję. W obszarze Grupa zasobów wybierz pozycję Nowy i wpisz nazwę myResourceGroup , a następnie wybierz przycisk OK. W obszarze JEDNOSTKA SKU wybierz pozycję Podstawowa. W obszarze Lokalizacja rejestru wybierz lokalizację rejestru, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający szczegóły usługi Azure Container Registry.

  6. W obszarze Publikowanie w obszarze Container Registry wybierz utworzony rejestr, a następnie wybierz pozycję Zakończ.

    Zrzut ekranu Przedstawiający ekran Wybieranie istniejącej usługi Azure Container Registry.

    Zaczekaj na zakończenie wdrażania. Na stronie Publikowanie jest teraz wyświetlana nazwa repozytorium. Wybierz przycisk kopiowania, aby skopiować nazwę repozytorium do późniejszego użycia.

    Zrzut ekranu z wyróżnioną nazwą repozytorium.

3 — Tworzenie niestandardowego kontenera systemu Windows

  1. Zaloguj się w witrynie Azure Portal.

  2. W lewym górnym rogu okna witryny Azure Portal wybierz pozycję Utwórz zasób.

  3. W obszarze Popularne usługi wybierz pozycję Utwórz w obszarze Aplikacja internetowa.

  4. W obszarze Tworzenie aplikacji internetowej wybierz subskrypcję i grupę zasobów. W razie potrzeby możesz utworzyć nową grupę zasobów.

  5. Podaj nazwę aplikacji, taką jak win-container-demo. Wybierz pozycję Kontener platformy Docker dla pozycji Publikuj i Windows dla systemu operacyjnego. Wybierz pozycję Dalej: Platforma Docker , aby kontynuować.

    Zrzut ekranu przedstawiający tworzenie aplikacji internetowej dla kontenerów.

  6. W polu Źródło obrazu wybierz pozycję Docker Hub, a w polu Obraz i tag wprowadź nazwę repozytorium skopiowaną w obszarze Publikowanie w usłudze Azure Container Registry.

    Zrzut ekranu przedstawiający konfigurowanie aplikacji internetowej dla kontenerów.

    Jeśli masz obraz niestandardowy dla aplikacji internetowej w innym miejscu, na przykład w usłudze Azure Container Registry lub w innym prywatnym repozytorium, możesz skonfigurować go tutaj. Wybierz pozycję Przejrzyj i utwórz , aby kontynuować.

  7. Sprawdź wszystkie szczegóły, a następnie wybierz pozycję Utwórz i poczekaj, aż platforma Azure utworzy wymagane zasoby. Zrzut ekranu przedstawiający tworzenie aplikacji internetowej dla kontenerów.

4 — Przechodzenie do kontenera niestandardowego

Po zakończeniu operacji platformy Azure zostanie wyświetlone okno powiadomienia.

Zrzut ekranu przedstawiający pomyślne wdrożenie.

  1. Kliknij opcję Przejdź do zasobu.

  2. W przeglądzie tego zasobu postępuj zgodnie z linkiem obok adresu URL.

Zostanie otwarta nowa strona przeglądarki na następującej stronie:

Zrzut ekranu przedstawiający uruchamianie niestandardowego kontenera systemu Windows.

Poczekaj kilka minut i spróbuj ponownie, dopóki nie zostanie wyświetlona domyślna strona główna aplikacji ASP.NET:

Zrzut ekranu przedstawiający uruchomiony kontener niestandardowy systemu Windows.

Gratulacje! Uruchamiasz swój pierwszy niestandardowy kontener systemu Windows w usłudze Azure App Service.

5 — Zobacz dzienniki uruchamiania kontenera

Może upłynąć trochę czasu, zanim kontener systemu Windows zostanie załadowany. Aby wyświetlić postęp, przejdź do następującego adresu URL, zastępując <app_name> nazwą aplikacji.

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

Przesyłane strumieniowo dzienniki wyglądają następująco:

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 — Aktualizowanie lokalnie i ponowne wdrażanie

  1. W programie Visual Studio w Eksplorator rozwiązań otwórz plik Views>Home>Index.cshtml.

  2. Znajdź tag HTML <div class="jumbotron"> u góry i zastąp cały element następującym kodem:

    <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. Aby ponownie wdrożyć na platformie Azure, kliknij prawym przyciskiem myszy projekt myfirstazurewebapp w Eksplorator rozwiązań i wybierz polecenie Publikuj.

  4. Na stronie publikowania wybierz pozycję Publikuj i poczekaj na ukończenie procesu publikowania.

  5. Aby nakazać usłudze App Service ściągnięcie obrazu z usługi Docker Hub, uruchom ponownie aplikację. Na stronie aplikacji w portalu kliknij pozycję Uruchom ponownie>Tak.

    Zrzut ekranu przedstawiający przegląd usługi App Service z wyróżnionym przyciskiem Uruchom ponownie.

Przejdź ponownie do kontenera niestandardowego. Po odświeżeniu strony internetowej najpierw powinna być widoczna strona „Uruchamianie”, a następnie po kilku minutach powinna zostać wyświetlona zaktualizowana strona internetowa.

Zrzut ekranu przedstawiający zaktualizowaną aplikację internetową na platformie Azure.

7 — Czyszczenie zasobów

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.

W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.

Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.

Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.

Następne kroki

usługa aplikacja systemu Azure w systemie Linux udostępnia wstępnie zdefiniowane stosy aplikacji w systemie Linux z obsługą języków, takich jak .NET, PHP, Node.js i inne. Możesz również użyć niestandardowego obrazu platformy Docker, aby uruchomić aplikację internetową na stosie aplikacji, który nie jest jeszcze zdefiniowany na platformie Azure. W tym przewodniku Szybki start pokazano, jak wdrożyć obraz z usługi Azure Container Registry (ACR) w usłudze App Service.

Uwaga

Aby uzyskać informacje dotyczące uruchamiania konteneryzowanych aplikacji w środowisku bezserwerowym, zobacz Container Apps.

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

1 — Tworzenie rejestru kontenerów

Ten przewodnik Szybki start używa usługi Azure Container Registry jako wybranego rejestru. Możesz korzystać z innych rejestrów, ale kroki mogą się nieznacznie różnić.

Utwórz rejestr kontenerów, postępując zgodnie z instrukcjami w przewodniku Szybki start: tworzenie prywatnego rejestru kontenerów przy użyciu witryny Azure Portal.

Ważne

Pamiętaj, aby ustawić opcję Użytkownik administracyjny na Wartość Włącz podczas tworzenia rejestru kontenerów platformy Azure. Można ją również ustawić w sekcji Klucze dostępu strony rejestru w witrynie Azure Portal. To ustawienie jest wymagane dla dostępu do usługi App Service. Aby uzyskać informacje o tożsamości zarządzanej, zobacz Wdrażanie z samouczka usługi ACR.

2 — Logowanie

  1. Uruchom program Visual Studio Code.

  2. Wybierz logo platformy Azure na pasku działań, przejdź do eksploratora usługi APP SERVICE, a następnie wybierz pozycję Zaloguj się do platformy Azure i postępuj zgodnie z instrukcjami.

    Zrzut ekranu przedstawiający logowanie się do platformy Azure w programie Visual Studio Code.

  3. Na pasku stanu u dołu sprawdź swój adres e-mail konta platformy Azure. W Eksploratorze usługi APP SERVICE twoja subskrypcja powinna być wyświetlana.

  4. Na pasku działań wybierz logo platformy Docker . W eksploratorze REGISTRIES sprawdź, czy zostanie wyświetlony utworzony rejestr kontenerów.

    Zrzut ekranu przedstawia wartość Rejestry z rozwiniętym platformą Azure.

3 — Sprawdzanie wymagań wstępnych

Sprawdź, czy masz zainstalowaną i uruchomioną platformę Docker. Następujące polecenie wyświetli wersję platformy Docker, jeśli jest uruchomiona.

docker --version

4 — Tworzenie i kompilowanie obrazu

  1. W programie Visual Studio Code otwórz pusty folder i dodaj plik o nazwie Dockerfile. W pliku Dockerfile wklej zawartość na podstawie żądanej struktury językowej:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

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

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

W tym pliku Dockerfile obraz nadrzędny jest jednym z wbudowanych kontenerów platformy .NET usługi App Service.

  1. Otwórz paletę poleceń i wpisz Docker Images: Build Image (Obrazy platformy Docker: Kompiluj obraz). Wpisz Enter, aby uruchomić polecenie.

  2. W polu tagu obrazu określ żądany tag w następującym formacie: <acr-name>.azurecr.io/<image-name>:<tag>, gdzie <acr-name> jest nazwą utworzonego rejestru kontenerów. Naciśnij klawisz Enter.

  3. Po zakończeniu kompilowania obrazu kliknij pozycję Odśwież w górnej części eksploratora IMAGES i sprawdź, czy obraz został skompilowany pomyślnie.

    Zrzut ekranu przedstawia utworzony obraz z tagiem.

5 — Wdrażanie w rejestrze kontenerów

  1. Na pasku działań kliknij ikonę Platformy Docker . W eksploratorze IMAGES znajdź utworzony obraz.

  2. Rozwiń obraz, kliknij prawym przyciskiem myszy odpowiedni tag, a następnie kliknij pozycję Wypchnij.

  3. Upewnij się, że tag obrazu zaczyna się od <acr-name>.azurecr.io i naciśnij Enter.

  4. Gdy program Visual Studio Code zakończy wypychanie obrazu do rejestru kontenerów, kliknij przycisk Odśwież w górnej części eksploratora REGISTRIES i sprawdź, czy obraz został wypchnięty pomyślnie.

    Zrzut ekranu przedstawia obraz wdrożony w rejestrze kontenerów platformy Azure.

6 — Wdrażanie w usłudze App Service

  1. W eksploratorze REJESTRY rozwiń obraz, kliknij prawym przyciskiem myszy tag, a następnie wybierz polecenie Wdróż obraz, aby aplikacja systemu Azure Service.
  2. Postępuj zgodnie z monitami, aby wybrać subskrypcję, globalnie unikatową nazwę aplikacji, grupę zasobów i plan usługi App Service. Wybierz pozycję B1 Podstawowa dla warstwy cenowej i regionu w pobliżu.

Po wdrożeniu aplikacja jest dostępna pod adresem http://<app-name>.azurewebsites.net.

Grupa zasobów to nazwana kolekcja wszystkich zasobów aplikacji na platformie Azure. Na przykład grupa zasobów może zawierać odwołanie do witryny internetowej, bazy danych i funkcji platformy Azure.

Plan usługi App Service definiuje zasoby fizyczne, które będą używane do hostowania witryny internetowej. W tym przewodniku Szybki start jest używany podstawowy plan hostingu w infrastrukturze systemu Linux , co oznacza, że witryna będzie hostowana na maszynie z systemem Linux wraz z innymi witrynami internetowymi. Jeśli zaczniesz od planu podstawowego, możesz użyć witryny Azure Portal do skalowania w górę, aby twoja witryna jest jedyną witryną uruchomioną na maszynie. Aby uzyskać informacje o cenach, zobacz Cennik usługi App Service.

7 — Przeglądanie witryny internetowej

Na panelu Dane wyjściowe jest wyświetlany stan operacji wdrażania. Po zakończeniu operacji wybierz pozycję Otwórz witrynę w wyskakującym powiadomieniu, aby otworzyć witrynę w przeglądarce.

8 — Czyszczenie zasobów

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.

W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.

Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.

Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.

Następne kroki

Gratulacje. Pomyślnie ukończono ten przewodnik Szybki start.

Aplikacja usługi App Service pobiera z rejestru kontenerów za każdym razem, gdy jest uruchamiana. Jeśli ponownie skompilujesz obraz, wystarczy wypchnąć go do rejestru kontenerów, a aplikacja ściąga zaktualizowany obraz po ponownym uruchomieniu. Aby poinformować aplikację o natychmiastowym ściągnięciu zaktualizowanego obrazu, uruchom go ponownie.

Inne rozszerzenia platformy Azure:

usługa aplikacja systemu Azure w systemie Linux udostępnia wstępnie zdefiniowane stosy aplikacji w systemie Linux z obsługą języków, takich jak .NET, PHP, Node.js i inne. Możesz również użyć niestandardowego obrazu platformy Docker, aby uruchomić aplikację internetową na stosie aplikacji, który nie jest jeszcze zdefiniowany na platformie Azure. W tym przewodniku Szybki start pokazano, jak wdrożyć obraz z usługi Azure Container Registry w usłudze aplikacja systemu Azure Service.

Uwaga

Aby uzyskać informacje dotyczące uruchamiania konteneryzowanych aplikacji w środowisku bezserwerowym, zobacz Container Apps.

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

1 — Klonowanie przykładowego repozytorium

Sklonuj przykładową aplikację platformy .NET 6.0 za pomocą następującego polecenia:

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

2 — Wypychanie obrazu do usługi Azure Container Registry

Upewnij się, że znajdujesz się w folderze głównym sklonowanego repozytorium. To repozytorium zawiera plik Dockerfile.linux .

  1. Zaloguj się do interfejsu wiersza polecenia platformy Azure.

    az login
    
  2. Zaloguj się do usługi Azure Container Registry.

    az acr login -n <your_registry_name>
    
  3. Skompiluj obraz kontenera. Nazywamy obraz dotnetcore-docs-hello-world-linux.

    docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux . 
    
  4. Wypchnij obraz kontenera do usługi Azure Container Registry.

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

    Uwaga

    Plik Dockerfile ustawia numer portu na 80 wewnętrznie. Aby uzyskać więcej informacji na temat konfigurowania kontenera, zobacz Konfigurowanie kontenera niestandardowego.

3 — Wdrażanie na platformie Azure

Logowanie do witryny Azure Portal

Zaloguj się w witrynie Azure Portal.

Tworzenie zasobów platformy Azure

  1. Wpisz usługi app services w wyszukiwaniu. W obszarze Usługi wybierz pozycję App Services.

    Zrzut ekranu przedstawiający wyszukiwanie

  2. Na stronie App Services wybierz pozycję + Utwórz.

  3. Na karcie Podstawy w obszarze Szczegóły projektu upewnij się, że wybrano poprawną subskrypcję, a następnie wybierz pozycję Utwórz nową grupę zasobów. Wpisz nazwę myResourceGroup.

    Zrzut ekranu przedstawiający sekcję Szczegóły projektu z wybraną subskrypcją platformy Azure i grupą zasobów dla aplikacji internetowej.

  4. W obszarze Szczegóły wystąpienia wpisz globalnie unikatową nazwę aplikacji internetowej i wybierz pozycję Kontener platformy Docker. Wybierz pozycję Linux dla systemu operacyjnego. Wybierz region, z którego chcesz obsługiwać aplikację.

    Zrzut ekranu przedstawiający sekcję Szczegóły wystąpienia, w której podano nazwę maszyny wirtualnej i wybierz jej region, obraz i rozmiar.

  5. W obszarze Plan usługi App Service wybierz pozycję Utwórz nowy plan usługi App Service. Wpisz myAppServicePlan jako nazwę. Aby przejść do warstwy Bezpłatna, wybierz pozycję Zmień rozmiar, wybierz kartę Tworzenie i testowanie , wybierz pozycję F1 i wybierz przycisk Zastosuj w dolnej części strony.

    Zrzut ekranu przedstawiający opcje planu usługi App Service.

  6. Wybierz przycisk Dalej: Platforma Docker > w dolnej części strony.

  7. Na karcie Docker wybierz pozycję Pojedynczy kontener w obszarze Opcje i Usługę Azure Container Registry dla źródła obrazu. W obszarze Opcje rejestru kontenerów platformy Azure ustaw następujące wartości:

    • Rejestr: wybierz usługę Azure Container Registry.
    • Obraz: Wybierz pozycję dotnetcore-docs-hello-world-linux.
    • Tag: wybierz pozycję Latest (Najnowsza wersja).

    Zrzut ekranu przedstawiający opcje usługi Azure Container Registry.

  8. Wybierz przycisk Przejrzyj i utwórz w dolnej części strony.

    Zrzut ekranu przedstawiający przycisk Przejrzyj i utwórz w dolnej części strony.

  9. Po uruchomieniu walidacji wybierz przycisk Utwórz w dolnej części strony.

  10. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

    Zrzut ekranu przedstawiający następny krok przechodzenia do zasobu.

4 — Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji w przeglądarce internetowej pod adresem URL http://<app-name>.azurewebsites.net.

Zrzut ekranu przedstawiający wdrożoną aplikację.

5 — Czyszczenie zasobów

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.

W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.

Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.

Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.

Następne kroki

Gratulacje. Pomyślnie ukończono ten przewodnik Szybki start.

Aplikacja usługi App Service pobiera z rejestru kontenerów za każdym razem, gdy jest uruchamiana. Jeśli ponownie skompilujesz obraz, wystarczy wypchnąć go do rejestru kontenerów, a aplikacja ściąga zaktualizowany obraz po ponownym uruchomieniu. Aby poinformować aplikację o natychmiastowym ściągnięciu zaktualizowanego obrazu, uruchom go ponownie.

Usługa Azure App Service udostępnia wstępnie zdefiniowane stosy aplikacji w systemie Windows, takie jak ASP.NET lub Node.js, działające w usługach IIS. Jednak wstępnie skonfigurowane stosy aplikacji blokują system operacyjny i uniemożliwiają dostęp niskiego poziomu. Niestandardowe kontenery systemu Windows nie mają tych ograniczeń i pozwalają deweloperom w pełni dostosować kontenery i zapewnić konteneryzowanym aplikacjom pełny dostęp do funkcji systemu Windows.

W tym przewodniku Szybki start pokazano, jak wdrożyć aplikację ASP.NET w obrazie systemu Windows z usługi Azure Container Registry w usłudze aplikacja systemu Azure Service.

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

1 — Klonowanie przykładowego repozytorium

Sklonuj przykładową aplikację platformy .NET 6.0 za pomocą następującego polecenia:

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

2 — Wypychanie obrazu do usługi Azure Container Registry

Upewnij się, że znajdujesz się w folderze głównym sklonowanego repozytorium. To repozytorium zawiera plik Dockerfile.windows . Będziemy używać systemu Windows Nano Server Long Term Servicing Channel (LTSC) 2022 jako podstawowego systemu operacyjnego, jawnie nazywając naszą bazę systemu Windows.

Uwaga

Mimo że jest to kontener systemu Windows, ścieżki nadal muszą używać ukośników do przodu. Aby uzyskać więcej informacji, zobacz Pisanie pliku Dockerfile .

  1. Zaloguj się do interfejsu wiersza polecenia platformy Azure.

    az login
    
  2. Zaloguj się do usługi Azure Container Registry.

    az acr login -n <your_registry_name>
    
  3. Skompiluj obraz kontenera. Nazywamy obraz dotnetcore-docs-hello-world-windows.

    docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows . 
    
  4. Wypchnij obraz kontenera do usługi Azure Container Registry.

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

    Uwaga

    Plik Dockerfile ustawia numer portu na 80 wewnętrznie. Aby uzyskać więcej informacji na temat konfigurowania kontenera, zobacz Konfigurowanie kontenera niestandardowego.

3 — Wdrażanie na platformie Azure

Logowanie do witryny Azure Portal

Zaloguj się w witrynie Azure Portal.

Tworzenie zasobów platformy Azure

  1. Wpisz usługi app services w wyszukiwaniu. W obszarze Usługi wybierz pozycję App Services.

    Zrzut ekranu przedstawiający wyszukiwanie

  2. Na stronie App Services wybierz pozycję + Utwórz.

  3. Na karcie Podstawy w obszarze Szczegóły projektu upewnij się, że wybrano poprawną subskrypcję, a następnie wybierz pozycję Utwórz nową grupę zasobów. Wpisz nazwę myResourceGroup.

    Zrzut ekranu przedstawiający sekcję Szczegóły projektu z wybraną subskrypcją platformy Azure i grupą zasobów dla aplikacji internetowej.

  4. W obszarze Szczegóły wystąpienia wpisz globalnie unikatową nazwę aplikacji internetowej i wybierz pozycję Kontener platformy Docker. Wybierz pozycję Windows dla systemu operacyjnego. Wybierz region, z którego chcesz obsługiwać aplikację.

    Zrzut ekranu przedstawiający sekcję Szczegóły wystąpienia, w której podano nazwę maszyny wirtualnej i wybierz jej region, obraz i rozmiar.

  5. W obszarze Plan usługi App Service wybierz pozycję Utwórz nowy plan usługi App Service. Wpisz myAppServicePlan jako nazwę. Aby przejść do warstwy Bezpłatna, wybierz pozycję Zmień rozmiar, wybierz kartę Tworzenie i testowanie , wybierz pozycję P1v3 i wybierz przycisk Zastosuj w dolnej części strony.

    Zrzut ekranu przedstawiający opcje planu usługi App Service.

  6. Wybierz przycisk Dalej: Platforma Docker > w dolnej części strony.

  7. Na karcie Docker wybierz pozycję Azure Container Registry dla źródła obrazu. W obszarze Opcje rejestru kontenerów platformy Azure ustaw następujące wartości:

    • Rejestr: wybierz usługę Azure Container Registry.
    • Obraz: Wybierz pozycję dotnetcore-docs-hello-world-windows.
    • Tag: wybierz pozycję Latest (Najnowsza wersja).

    Zrzut ekranu przedstawiający opcje usługi Azure Container Registry.

  8. Wybierz przycisk Przejrzyj i utwórz w dolnej części strony.

    Zrzut ekranu przedstawiający przycisk Przejrzyj i utwórz w dolnej części strony.

  9. Po uruchomieniu walidacji wybierz przycisk Utwórz w dolnej części strony.

  10. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

    Zrzut ekranu przedstawiający następny krok przechodzenia do zasobu.

4 — Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji w przeglądarce internetowej pod adresem URL http://<app-name>.azurewebsites.net.

Zrzut ekranu usługi App Service systemu Windows z obsługą komunikatów, które kontenery bez uwidocznionego portu będą działać w trybie w tle.

Pamiętaj, że w stopce pojawi się system operacyjny Host, potwierdzając, że działamy w kontenerze systemu Windows.

5 — Czyszczenie zasobów

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.

W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.

Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.

Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.

Następne kroki

Gratulacje. Pomyślnie ukończono ten przewodnik Szybki start.

Aplikacja usługi App Service pobiera z rejestru kontenerów za każdym razem, gdy jest uruchamiana. Jeśli ponownie skompilujesz obraz, wystarczy wypchnąć go do rejestru kontenerów, a aplikacja ściąga zaktualizowany obraz po ponownym uruchomieniu. Aby poinformować aplikację o natychmiastowym ściągnięciu zaktualizowanego obrazu, uruchom go ponownie.

Usługa Azure App Service udostępnia wstępnie zdefiniowane stosy aplikacji w systemie Windows, takie jak ASP.NET lub Node.js, działające w usługach IIS. Jednak wstępnie skonfigurowane stosy aplikacji blokują system operacyjny i uniemożliwiają dostęp niskiego poziomu. Niestandardowe kontenery systemu Windows nie mają tych ograniczeń i pozwalają deweloperom w pełni dostosować kontenery i zapewnić konteneryzowanym aplikacjom pełny dostęp do funkcji systemu Windows.

W tym przewodniku Szybki start pokazano, jak wdrożyć aplikację ASP.NET na obrazie systemu Windows z Rejestr Artefaktów Microsoft do usługi aplikacja systemu Azure.

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

1 — Nawiązywanie połączenia z platformą Azure

Zaloguj się do konta platformy Azure przy użyciu Connect-AzAccount polecenia i wykonaj następujące polecenie:

Connect-AzAccount

2 — Tworzenie grupy zasobów

Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.

W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus. Aby wyświetlić wszystkie obsługiwane lokalizacje dla usługi App Service, uruchom polecenie Get-AzLocation.

New-AzResourceGroup -Name myResourceGroup -Location eastus

Po ukończeniu polecenie zwraca ciąg Login Succeeded.

3 — Tworzenie planu usługi App Service

Utwórz nowy plan usługi App Service przy użyciu polecenia New-AzAppServicePlan .

Poniższy przykład tworzy plan usługi App Service o nazwie myAppServicePlan w warstwie cenowej PremiumV3 (-Tier PremiumV3). Parametr -HyperV określa kontener systemu Windows.

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

4 — Tworzenie aplikacji internetowej

Utwórz nową aplikację przy użyciu polecenia New-AzWebApp :

New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Parametr Name określa nazwę aplikacji internetowej.
  • Parametr AppServicePlan określa nazwę planu usługi App Service.
  • Parametr Location określa lokalizację.
  • Parametr ResourceGroupName określa nazwę grupy zasobów.
  • Parametr ContainerImageName określa nazwę obrazu kontenera i opcjonalny tag.

Wykonanie polecenia może potrwać kilka minut.

5 — Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji w przeglądarce internetowej pod adresem URL http://<app-name>.azurewebsites.net.

Zrzut ekranu usługi App Service systemu Windows z obsługą komunikatów, które kontenery bez uwidocznionego portu będą działać w trybie w tle.

6 — Czyszczenie zasobów

Usuń grupę zasobów za pomocą polecenia Remove-AzResourceGroup :

Remove-AzResourceGroup myResourceGroup

Następne kroki

Gratulacje. Pomyślnie ukończono ten przewodnik Szybki start.

Aplikacja usługi App Service pobiera z rejestru kontenerów za każdym razem, gdy jest uruchamiana. Jeśli ponownie skompilujesz obraz, wystarczy wypchnąć go do rejestru kontenerów, a aplikacja ściąga zaktualizowany obraz po ponownym uruchomieniu. Aby poinformować aplikację o natychmiastowym ściągnięciu zaktualizowanego obrazu, uruchom go ponownie.

Usługa Azure App Service udostępnia wstępnie zdefiniowane stosy aplikacji w systemie Windows, takie jak ASP.NET lub Node.js, działające w usługach IIS. Jednak wstępnie skonfigurowane stosy aplikacji blokują system operacyjny i uniemożliwiają dostęp niskiego poziomu. Niestandardowe kontenery systemu Windows nie mają tych ograniczeń i pozwalają deweloperom w pełni dostosować kontenery i zapewnić konteneryzowanym aplikacjom pełny dostęp do funkcji systemu Windows.

W tym przewodniku Szybki start pokazano, jak wdrożyć aplikację ASP.NET na obrazie systemu Windows z Rejestr Artefaktów Microsoft do usługi aplikacja systemu Azure.

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

1 — Nawiązywanie połączenia z platformą Azure

Zaloguj się do konta platformy Azure przy użyciu az login polecenia i wykonaj następujące polecenie:

az login

2 — Tworzenie grupy zasobów

Utwórz grupę zasobów za pomocą polecenia az group create. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.

W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus. Aby wyświetlić wszystkie obsługiwane lokalizacje dla usługi App Service, uruchom polecenie az appservice list-locations.

az group create --name myResourceGroup --location eastus

3 — Tworzenie planu usługi App Service

Utwórz plan usługi App Service w grupie zasobów za az appservice plan create pomocą polecenia .

Poniższy przykład tworzy plan usługi App Service o nazwie myAppServicePlan w warstwie cenowej P1V3 (--sku P1V3).

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

Uwaga

Jeśli wystąpi błąd "Zachowanie tego polecenia zostało zmienione przez następujące rozszerzenie: appservice-kube", usuń appservice-kube rozszerzenie.

4 — Tworzenie aplikacji internetowej

Utwórz niestandardową aplikację internetową kontenera w myAppServicePlan planie usługi App Service za pomocą polecenia az webapp create. Nie zapomnij zastąpić myContainerApp unikatową nazwą aplikacji (prawidłowe znaki to a-z, 0-9i -).

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
  • Parametr Name określa nazwę aplikacji internetowej.
  • Parametr AppServicePlan określa nazwę planu usługi App Service.
  • Parametr Location określa lokalizację.
  • Parametr ResourceGroupName określa nazwę grupy zasobów.
  • Parametr deployment-container-image-name określa nazwę obrazu kontenera i opcjonalny tag.

5 — Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji w przeglądarce internetowej pod adresem URL http://<app-name>.azurewebsites.net.

Zrzut ekranu usługi App Service systemu Windows z obsługą komunikatów, które kontenery bez uwidocznionego portu będą działać w trybie w tle.

6 — Czyszczenie zasobów

Usuń grupę zasobów przy użyciu polecenia az group delete :

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

Następne kroki

Gratulacje. Pomyślnie ukończono ten przewodnik Szybki start.

Aplikacja usługi App Service pobiera z rejestru kontenerów za każdym razem, gdy jest uruchamiana. Jeśli ponownie skompilujesz obraz, wystarczy wypchnąć go do rejestru kontenerów, a aplikacja ściąga zaktualizowany obraz po ponownym uruchomieniu. Aby poinformować aplikację o natychmiastowym ściągnięciu zaktualizowanego obrazu, uruchom go ponownie.