Konfigurera din app så att den använder en gMSA
Gäller för: Windows Server 2025, Windows Server 2022, Windows Server 2019
I den typiska konfigurationen får en container bara ett grupphanterat tjänstkonto (gMSA) som används när containerdatorkontot försöker autentisera mot nätverksresurser. Det innebär att din app måste köras som local system eller Network Service om den behöver använda gMSA-identiteten. Containrar kan också konfigureras med ytterligare gMSA:er, om du vill köra en tjänst eller ett program i containern som en annan identitet än containerdatorkontot.
Köra en IIS-apppool som nätverkstjänst
Om du är värd för en IIS-webbplats i containern behöver du bara använda gMSA för att ställa in din apppoolidentitet på Network Service-. Du kan göra det i Dockerfile genom att lägga till följande kommando:
RUN %windir%\system32\inetsrv\appcmd.exe set AppPool DefaultAppPool -'processModel.identityType':NetworkService
Om du tidigare använde autentiseringsuppgifter för statiska användare för din IIS-apppool bör du överväga gMSA som ersättning för dessa autentiseringsuppgifter. Du kan ändra gMSA mellan utvecklings-, test- och produktionsmiljöer och IIS hämtar automatiskt den aktuella identiteten utan att behöva ändra containeravbildningen.
Kör en Windows-tjänst som nätverkstjänst
Om din containerbaserade app körs som en Windows-tjänst kan du ange att tjänsten ska köras som Nätverkstjänst i Dockerfile:
RUN sc.exe config "YourServiceName" obj= "NT AUTHORITY\NETWORK SERVICE" password= ""
Köra godtyckliga konsolappar som nätverkstjänst
För allmänna konsolappar som inte finns i IIS eller Service Manager är det ofta enklast att köra containern som Network Service så att appen automatiskt ärver gMSA-kontexten. Den här funktionen är tillgänglig från och med Windows Server version 1709.
Lägg till följande rad i Dockerfile så att den körs som nätverkstjänst som standard:
USER "NT AUTHORITY\NETWORK SERVICE"
Du kan också ansluta till en container som nätverkstjänst på engångsbasis med docker exec
. Detta är särskilt användbart om du felsöker anslutningsproblem i en container som körs när containern normalt inte körs som nätverkstjänst.
# Opens an interactive PowerShell console in the container (id = 85d) as the Network Service account
docker exec -it --user "NT AUTHORITY\NETWORK SERVICE" 85d powershell
Relaterat innehåll
Förutom att konfigurera appar kan du även använda gMSAs för att:
Om du stöter på problem under installationen kan du läsa vår felsökningsguide för efter möjliga lösningar.