Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure App Service tillhandahåller fördefinierade programstackar, till exempel ASP.NET eller Node.js, på Windows. Dessa applikationsstackar körs på IIS. Den förkonfigurerade Windows-miljön låser ned operativsystemet genom att förhindra:
- Administrativ åtkomst.
- Programvaruinstallationer.
- Ändringar i den globala assembliescachen.
Mer information finns i operativsystemsfunktioner i App Service.
Du kan distribuera en specialkonfigurerad Windows-avbild från Visual Studio för att göra OS-ändringar som din app behöver. Det gör det enkelt att migrera en lokal app som kräver ett anpassat operativsystem och en egen programvarukonfiguration. Den här handledningen visar hur du migrerar en ASP.NET-app till App Service som använder anpassade teckensnitt som är installerade i Windows-teckensnittsbiblioteket. Du distribuerar en anpassad konfigurerad Windows-avbildning från Visual Studio till Azure Container Registry och kör den sedan i App Service.
Förutsättningar
- Registrera dig för ett Docker Hub-konto.
- Installera Docker för Windows.
- Konfigurera Docker för att köra Windows-containrar.
-
Installera Visual Studio 2022 med arbetsbelastningarna ASP.NET och webbutveckling och Azure-utveckling. Om du redan har Visual Studio 2022 installerat:
- Installera de senaste uppdateringarna i Visual Studio genom att välja Hjälp>Sök efter uppdateringar.
- Lägg till arbetsuppgifterna i Visual Studio genom att välja Verktyg>Hämta verktyg och funktioner.
Konfigurera appen lokalt
Hämta exemplet
I det här steget konfigurerar du det lokala .NET-projektet.
- Ladda ned exempelprojektet.
- Extrahera (packa upp) custom-font-win-container-master.zip-filen.
Exempelprojektet innehåller ett enkelt ASP.NET program som använder ett anpassat teckensnitt som är installerat i Windows-teckensnittsbiblioteket. Det är inte nödvändigt att installera teckensnitt. Exemplet är dock ett exempel på en app som är integrerad med det underliggande operativsystemet. För att migrera den här typen av app till App Service kan du antingen omorganisera din kod för att ta bort integrationen eller migrera den som den är i en anpassad Windows-container.
Installera teckensnittet
I Windows Explorer går du till custom-font-win-container-master/CustomFontSample, högerklickar på FrederickatheGreat-Regular.ttf och väljer Installera.
Det här teckensnittet är offentligt tillgängligt från Google Fonts.
Kör appen
Öppna filen custom-font-win-container-master/CustomFontSample.sln i Visual Studio.
Välj Ctrl+F5 för att köra appen utan att felsöka. Appen visas i din standardwebbläsare.
Eftersom appen använder ett installerat teckensnitt kan appen inte köras i Sandbox-miljön för App Service. Du kan dock distribuera den med hjälp av en Windows-container i stället, eftersom du kan installera teckensnittet i Windows-containern.
Konfigurera Windows-containern
I Prieskumník riešení högerklickar du på projektet CustomFontSample och väljer Projekt>Container Orchestration Support (Stöd för containerorkestrering).
Välj Docker Compose>OK.
Projektet är nu inställt på att köras i en Windows-container. En Dockerfile läggs till i CustomFontSample-projektet och ett docker-compose-projekt läggs till i lösningen.
Öppna Dockerfile från Prieskumník riešení.
Du måste använda en överordnad avbild som stöds. Ändra den överordnade basavbildningen genom att ersätta raden FROM med följande kod:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019
Lägg till följande rad i slutet av filen och spara filen:
RUN ${source:-obj/Docker/publish/InstallFont.ps1}
Du hittar InstallFont.ps1 i projektet CustomFontSample. Det är ett enkelt skript som installerar teckensnittet. Du hittar en mer komplex version av skriptet i PowerShell-galleriet.
Anmärkning
Om du vill testa Windows-containern lokalt kontrollerar du att Docker har startats på den lokala datorn.
Publicera till Azure Container Registry
Azure Container Registry kan lagra dina images för containerdistributioner. Du kan konfigurera App Service för att använda avbildningar som finns i Container Registry.
Öppna fönstret Publicera
Högerklicka på Projektet CustomFontSample i Prieskumník riešení och välj Publicera.
Skapa och publicera registret
I fönstret Publicera väljer du Azure och sedan Nästa.
Välj Azure Container Registry och välj sedan Nästa.
Välj den prenumeration där du vill publicera registryn och välj sedan Skapa ny.
Logga in med ett Azure-konto
I fönstret Azure Container Registry väljer du Lägg till ett konto och loggar sedan in på din Azure-prenumeration. Om du redan är inloggad väljer du det konto som innehåller den önskade prenumerationen från listrutan.
Konfigurera registret
Konfigurera det nya containerregistret med hjälp av de föreslagna värdena i följande tabell som en guide. När det är klart väljer du Skapa.
| Inställning | Föreslaget värde |
|---|---|
| DNS-prefix | Behåll det genererade registernamnet eller ändra det till ett annat unikt namn. |
| resursgrupp | Välj Ny, ange myResourceGroup och välj sedan OK. |
| SKU | Grundläggande. Mer information finns i Prisnivåer. |
| Plats i registret | Västeuropa |
Välj Slutför.
Ett terminalfönster öppnas och visar förloppet för distributionen av avbildningen. Vänta tills driftsättningen har slutförts.
Logga in på Azure
Logga in på Azure-portalen.
Skapa en webbapp
Välj Skapa en resurs och välj sedan Skapa under Webbapp.
Konfigurera grundläggande appinställningar
På fliken Grundläggande konfigurerar du inställningarna med hjälp av följande tabell som en guide.
| Inställning | Föreslaget värde |
|---|---|
| Abonnemang | Kontrollera att rätt prenumeration har valts. |
| resursgrupp | Välj Skapa ny, ange myResourceGroup och välj sedan OK. |
| Namn | Ange ett unikt namn. Webbadressen till webbappen är https://<app-name>.azurewebsites.net, där <app-name> är appens namn. |
| Publicera | Container |
| Operativsystem | Windows |
| Region | Västeuropa |
| Windows-plan | Välj Skapa ny, ange myAppServicePlan och välj sedan OK. |
Fliken Grundläggande bör se ut ungefär så här:
Konfigurera Windows-containern
På fliken Container konfigurerar du din anpassade Windows-container enligt följande tabell och väljer sedan Granska + skapa.
| Inställning | Föreslaget värde |
|---|---|
| Bildkälla | Azure Container Registry |
| Register | Välj det register som du skapade tidigare. |
| Bild | customfontsample |
| Tag | senaste |
Slutför skapandet av appen
Välj Skapa och vänta tills Azure har skapat de resurser som krävs.
Gå till webbappen
När driftsättningen är klar visas ett meddelande:
Välj Gå till resurs.
På appsidan väljer du länken under URL.
En ny webbläsarsida öppnas med följande innehåll:
Vänta några minuter och försök igen tills du får startsidan med det teckensnitt du förväntar dig:
Grattis! Du har migrerat ett ASP.NET-program till App Service i en Windows-container.
Visa containerns startloggar
Det kan ta lite tid innan Windows-containern läses in. Om du vill se förloppet går du till följande URL. (Ersätt <appnamn> med namnet på din app.)
https://<app-name>.scm.azurewebsites.net/api/logstream
De strömmade loggarna ser ut så här:
14/09/2018 23:16:19.889 INFO - Site: fonts-win-container - Creating container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest.
14/09/2018 23:16:19.928 INFO - Site: fonts-win-container - Create container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest succeeded. Container Id 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:23.405 INFO - Site: fonts-win-container - Start container succeeded. Container: 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Configuring container
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container start-up and configuration completed successfully
Azure App Service använder Docker-containerteknik för att vara värd för både inbyggda avbilder och anpassade avbilder. Om du vill se en lista över inbyggda avbildningar kör du Azure CLI-kommandot az webapp list-runtimes --os linux. Om dessa avbilder inte uppfyller dina behov kan du skapa och distribuera en anpassad avbildning.
Anmärkning
Din container bör vara avsedd för x86-64-arkitekturen. ARM64 stöds inte.
I den här självstudien får du lära dig hur du:
- Skicka en anpassad Docker-avbildning till Azure Container Registry.
- Distribuera den anpassade avbilden till App Service.
- Konfigurera miljövariabler.
- Hämta avbilden till App Service med hjälp av en hanterad identitet.
- Få åtkomst till diagnostikloggar.
- Aktivera CI/CD från Container Registry till App Service.
- Anslut till containern med hjälp av SSH.
Att slutföra den här självstudien medför en liten avgift i ditt Azure-konto för containerregistret och kan medföra ytterligare kostnader om du hostar containern längre än en månad.
Konfigurera din initiala miljö
Den här självstudien kräver version 2.0.80 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
- Se till att du har ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt, installera Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du uppmanas, installera Azure CLI-tillägget första gången du använder det. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Installera Docker, som du använder för att skapa Docker-avbildningar. Installation av Docker kan kräva en omstart av datorn.
När du har installerat Docker öppnar du ett terminalfönster och kontrollerar att docker har installerats:
docker --version
Klona eller ladda ned exempelappen
Du kan hämta exemplet för den här handledningen via Git-klon eller nedladdning.
Klona repot med hjälp av Git Bash
Klona exempelrepositoriet:
git clone https://github.com/Azure-Samples/docker-django-webapp-linux.git --config core.autocrlf=input
Se till att du inkluderar --config core.autocrlf=input argumentet för att garantera rätt radslut i filer som används i Linux-containern.
Navigera sedan till mappen:
cd docker-django-webapp-linux
Ladda ned ZIP från GitHub
I stället för att använda Git clone kan du gå till https://github.com/Azure-Samples/docker-django-webapp-linux och välja Code>Local>Download ZIP.
Packa upp ZIP-filen i en mapp med namnet docker-django-webapp-linux.
Öppna sedan ett terminalfönster i mappen docker-django-webapp-linux.
Förbered provbehållaren
Den nyare webbläsarterminalen och az webapp exec ger autentiserad åtkomst till körande Linux-containrar utan att behöva en SSH-server eller ett inbyggt SSH-lösenord i bilden. Legacy Kudu WebSSH och az webapp ssh åtkomst kan fortfarande kräva en SSH-server. Exempellagringsplatsen innehåller en äldre SSH-konfiguration. Innan du bygger, byt ut innehållet i dess Dockerfile med följande app-endast konfiguration:
FROM tiangolo/uwsgi-nginx-flask:python3.6
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt --no-cache-dir
ADD . /code/
COPY init.sh /usr/local/bin/
RUN chmod u+x /usr/local/bin/init.sh
EXPOSE 8000
ENTRYPOINT ["init.sh"]
Ersätt innehållet i init.sh med följande skript, och behåll Linux-radsluten:
#!/bin/bash
set -e
exec python /code/manage.py runserver 0.0.0.0:8000
Ta bort den äldre sshd_config-filen från din lokala sample-mapp så att ADD . /code/ inte kopierar den till avbilden.
Dockerfile installerar appens beroenden, kopierar appen och startskriptet och exponerar applikationens port. Entrypoint startar endast Python-applikationen. Dessa ändringar tar bort exemplets SSH-installation och inloggningsuppgifter. Bilden innehåller /bin/bash för den nyare webbläsarterminalen och standardskalet az webapp exec.
Skapa och testa imagen lokalt
Anmärkning
Docker Hub inför kvoter för antalet anonyma hämtningar per IP-adress och antalet autentiserade hämtningar per kostnadsfri användare. Om du märker att dina hämtningar från Docker Hub är begränsade kan du prova att köra docker login om du inte redan är inloggad.
Kör följande kommando för att bygga imagen:
docker build --tag appsvc-tutorial-custom-image .Testa att bygget fungerar genom att köra Docker-containern lokalt:
docker run -it -p 8000:8000 appsvc-tutorial-custom-imageDet här
docker runkommandot anger porten med hjälp-pav argumentet och innehåller namnet på avbildningen.-itgör att du kan stoppa det med hjälp av Ctrl+C.Tips
Om du kör i Windows och ser felet *standard_init_linux.go:211: exec user process caused "no such file or directory," beror det på att filen init.sh innehåller CRLF-radslut i stället för de förväntade LF-radsluten. Det här felet inträffar om du använde Git för att klona exempellagringsplatsen men utelämnade parametern
--config core.autocrlf=input. I det här fallet klonar du arkivet igen med--config-argumentet. Du kan också se felet om du redigerade init.sh och sparade det med CRLF-radslut. I det här fallet sparar du filen igen med endast LF-radbrytningar.Bläddra till
http://localhost:8000för att kontrollera att webbappen och containern fungerar korrekt.
Skapa en användartilldelad hanterad identitet
App Service kan använda antingen en standardhanterad identitet eller en användartilldelad hanterad identitet för att autentisera med ett containerregister. I den här självstudien använder du en användartilldelad hanterad identitet.
Kör kommandot az group create för att skapa en resursgrupp:
az group create --name msdocs-custom-container-tutorial --location westeuropeDu kan ändra värdet
--locationför att ange en region nära dig.Skapa en hanterad identitet i resursgruppen:
az identity create --name myID --resource-group msdocs-custom-container-tutorial
Skapa ett containerregister
Skapa ett containerregister med hjälp av följande
az acr createkommando. Ersätt<registry-name>med ett unikt namn för din registerdatabas. Namnet får bara innehålla bokstäver och siffror och måste vara unikt i hela Azure.az acr create --name <registry-name> --resource-group msdocs-custom-container-tutorial --sku Basic --admin-enabled trueMed
--admin-enabledparametern kan du skicka images till registret med hjälp av administrativa autentiseringsuppgifter.Hämta de administrativa autentiseringsuppgifterna genom att
az credential acr showköra kommandot:az acr credential show --resource-group msdocs-custom-container-tutorial --name <registry-name>JSON-utdata för det här kommandot innehåller två lösenord tillsammans med registrets användarnamn.
Pusha exempelimagen till Container Registry
I det här avsnittet skickar du imagen till Container Registry, som används av App Service senare.
Från den lokala terminalen där du byggde exempel-imagen använder du kommandot
docker loginför att logga in i containerregistret:docker login <registry-name>.azurecr.io --username <registry-username>Ersätt
<registry-name>och<registry-username>med värden från föregående steg. När du uppmanas till det skriver du in ett av lösenorden från föregående avsnitt.Använd samma registernamn i alla återstående steg i det här avsnittet.
När inloggningen lyckas tagga du din lokala Docker-avbildning för registret:
docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestAnvänd kommandot
docker pushför att skicka imagen till registryt:docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestDet kan ta några minuter att ladda upp bilden första gången eftersom den innehåller basavbildningen. Efterföljande uppladdningar går vanligtvis snabbare.
Medan du väntar kan du slutföra stegen i nästa avsnitt för att konfigurera App Service för att distribuera från registret.
Auktorisera den hanterade identiteten för ditt register
Den hanterade identitet som du skapade har ännu inte behörighet att hämta från containerregistret. I det här steget aktiverar du auktoriseringen.
Hämta principal-ID:t för den hanterade identiteten:
principalId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query principalId --output tsv)Hämta resurs-ID:t för containerregistret:
registryId=$(az acr show --resource-group msdocs-custom-container-tutorial --name <registry-name> --query id --output tsv)Ge den hanterade identiteten behörighet att komma åt containerregistret:
az role assignment create --assignee $principalId --scope $registryId --role "AcrPull"Mer information om dessa behörigheter finns i Vad är rollbaserad åtkomstkontroll i Azure?.
Skapa webbappen
Skapa en App Service-plan med hjälp av
az appservice plan create-kommandot:az appservice plan create --name myAppServicePlan --resource-group msdocs-custom-container-tutorial --is-linuxEn App Service-plan motsvarar den virtuella dator som är värd för webbappen. Som standard använder det tidigare kommandot en billig B1-prisnivå som är kostnadsfri under den första månaden. Du kan ange nivån med hjälp av parametern
--sku.Skapa webbappen
az webapp createmed kommandot :az webapp create --resource-group msdocs-custom-container-tutorial --plan myAppServicePlan --name <app-name> --deployment-container-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestErsätt
<app-name>med ett namn för webbappen. Namnet måste vara unikt i hela Azure. Ersätt<registry-name>även med namnet på registret från föregående avsnitt.Tips
Du kan hämta webbappens containerinställningar när som helst med kommandot
az webapp config container show --name <app-name> --resource-group msdocs-custom-container-tutorial. Avbildningen anges i propertynDOCKER_CUSTOM_IMAGE_NAME. När webbappen distribueras via Azure DevOps- eller Azure Resource Manager-mallar kan avbilden också visas i en egenskap med namnetLinuxFxVersion. Båda egenskaperna har samma syfte. Om båda finns i webbappens konfiguration,LinuxFxVersionhar företräde.
Konfigurera webbappen
I det här steget konfigurerar du webbappen på följande sätt:
- Konfigurera appen för att skicka begäranden till port 8000. Exempelcontainern lyssnar på port 8000 för webbbegäranden.
- Konfigurera din app så att den använder den hanterade identiteten för att hämta containeravbildningar från containerregistret.
- Konfigurera kontinuerlig driftsättning från containerregistret. (Varje push av en avbild till registret gör att appen hämtar den nya avbilden.) Det här steget behövs inte för att konfigurera webbappen att hämta från containerregistret, men det kan meddela webbappen när en ny avbild pushas till registret. Om du inte slutför det här steget måste du manuellt utlösa att en image hämtas genom att starta om webbappen.
Använd
az webapp config appsettings setför att ange miljövariabelnWEBSITES_PORTsom förväntat av appkoden:az webapp config appsettings set --resource-group msdocs-custom-container-tutorial --name <app-name> --settings WEBSITES_PORT=8000Ersätt
<app-name>med det namn som du använde i föregående steg.Aktivera den användartilldelade hanterade identiteten i webbappen
az webapp identity assignmed hjälp av kommandot :id=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query id --output tsv) az webapp identity assign --resource-group msdocs-custom-container-tutorial --name <app-name> --identities $idErsätt
<app-name>med det namn som du använde i föregående steg.Konfigurera din app att hämta från Container Registry med hjälp av hanterade identiteter.
appConfig=$(az webapp config show --resource-group msdocs-custom-container-tutorial --name <app-name> --query id --output tsv) az resource update --ids $appConfig --set properties.acrUseManagedIdentityCreds=TrueErsätt
<app-name>med det namn som du använde i föregående steg.Ange det klient-ID som webbappen använder för att hämta från Container Registry. Det här steget krävs inte om du använder den systemtilldelade hanterade identiteten.
clientId=$(az identity show --resource-group msdocs-custom-container-tutorial --name myID --query clientId --output tsv) az resource update --ids $appConfig --set properties.AcrUserManagedIdentityID=$clientIdAktivera CI/CD i App Service.
cicdUrl=$(az webapp deployment container config --enable-cd true --name <app-name> --resource-group msdocs-custom-container-tutorial --query CI_CD_URL --output tsv)CI_CD_URLär en URL som App Service genererar åt dig. registret bör använda den här URL:en för att meddela App Service att en push av en containeravbildning har inträffat. Den skapar faktiskt inte webhooken åt dig.Skapa en webhook i containerregistret. Använd CI_CD_URL du fick i det sista steget.
az acr webhook create --name appserviceCD --registry <registry-name> --uri $cicdUrl --actions push --scope appsvc-tutorial-custom-image:latestOm du vill testa om webhooken är korrekt konfigurerad pingar du webhooken och ser om du får ett 200 OK-svar.
eventId=$(az acr webhook ping --name appserviceCD --registry <registry-name> --query id --output tsv) az acr webhook list-events --name appserviceCD --registry <registry-name> --query "[?id=='$eventId'].eventResponseMessage"Tips
Om du vill se all information om alla webhook-händelser tar du bort parametern
--query.Om du strömmar containerloggen bör du se ett
Starting container for sitemeddelande efter webhookens ping eftersom webhooken utlöser att appen startas om.
Bläddra till webbappen
Om du vill testa appen går du till https://<app-name>.azurewebsites.net. Byt ut <app-name> mot namnet på din webbapp.
Första gången du försöker komma åt appen kan det ta lite tid för appen att svara eftersom App Service måste hämta hela imagen från registryt. Om webbläsaren överskrider tidsgränsen uppdaterar du bara sidan. När den första imagen har hämtats körs efterföljande tester mycket snabbare.
Öppna diagnostikloggar
Medan du väntar på att App Service ska hämta imagen är det bra att se exakt vad App Service gör genom att strömma containerloggarna till terminalen.
Aktivera containerloggning:
az webapp log config --name <app-name> --resource-group msdocs-custom-container-tutorial --docker-container-logging filesystemAktivera loggströmmen:
az webapp log tail --name <app-name> --resource-group msdocs-custom-container-tutorialOm du inte ser konsolloggarna omedelbart kan du titta efter igen efter 30 sekunder.
Du kan också granska loggfilerna från en webbläsare genom att gå till
https://<app-name>.scm.azurewebsites.net/api/logs/docker.Om du vill stoppa loggströmningen när som helst väljer du Ctrl+C.
Ändra appkoden och distribuera om
I det här avsnittet gör du en ändring i webbappkoden, återskapar avbildningen och push-överför den sedan till containerregistret. App Service hämtar sedan automatiskt den uppdaterade avbilden från registret för att uppdatera webbappen som körs.
Öppna filen app/templates/app/index.html i den lokala docker-django-webapp-linux-mappen.
Ändra det första HTML-elementet så att det matchar följande kod.
<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="#">Azure App Service - Updated Here!</a> </div> </div> </nav>Spara dina ändringar.
Gå till mappen docker-django-webapp-linux och återskapa imagen:
docker build --tag appsvc-tutorial-custom-image .Uppdatera bildens tagg till
latest:docker tag appsvc-tutorial-custom-image <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestByt ut
<registry-name>mot namnet på ditt registret.Skicka imagen till registryt:
docker push <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latestNär pushen av avbilden är klar meddelar webhooken App Service om pushen och App Service försöker hämta den uppdaterade avbilden. Vänta några minuter och kontrollera sedan att uppdateringen har distribuerats genom att gå till
https://<app-name>.azurewebsites.net.
Anslut till containern med hjälp av SSH
När containern körs kan du komma åt den via App Services autentiserade Kudu-proxy genom att använda den nyare webbläsarterminalen eller az webapp exec. Du behöver inte installera eller starta en SSH-server i imagen för dessa alternativ.
För åtkomstkrav och app- eller slotkontroller, se Öppna ett containerskal (SSH) och kör kommandon.
Öppna SSH-anslutningen till containern
Använd Azure CLI 2.90.0 eller senare och logga in på ditt Azure-konto. Öppna ett interaktivt skal i din lokala terminal med förhandsgranskningskommandot
az webapp exec:az webapp exec --resource-group msdocs-custom-container-tutorial --name <app-name>Undersök processerna som körs i appen genom att använda
top, om det finns tillgängligt i bilden.
För frikopplad kommandoexekvering istället för en interaktiv session, se Kör kommandon utan interaktiv session. Att en begäran accepteras bekräftar inte att ett kommando slutfördes framgångsrikt.
Rensa upp resurser
De resurser som du skapade i den här artikeln kan medföra löpande kostnader. Om du vill rensa resurserna behöver du bara ta bort den resursgrupp som innehåller dem:
az group delete --name msdocs-custom-container-tutorial
Nästa steg
Vad du lärt dig:
- Distribuera en anpassad image till ett privat containerregister.
- Distribuera den anpassade avbilden till App Service.
- Uppdatera och driftsätt om imagen.
- Öppna diagnostikloggar.
- Anslut till containern med hjälp av SSH.
- Skicka en anpassad Docker-avbildning till Container Registry.
- Distribuera den anpassade avbilden till App Service.
- Konfigurera miljövariabler.
- Hämta avbilden till App Service med hjälp av en hanterad identitet.
- Kom åt diagnostikloggar.
- Aktivera CI/CD från Container Registry till App Service.
- Anslut till containern med hjälp av SSH.
Gå till nästa självstudie:
Eller kolla in andra resurser: