Definiera Windows Server- och Hyper-V-containrar och isoleringslägen

Slutförd

Contoso Windows Server-administratören måste förstå hur containrar körs i Windows Server och hur isolering av körningsmiljöer uppnås, främst processisolering och Hyper-V-isoleringslägen. Administratören måste också förstå hur olika isoleringslägen ska köras och under vilka omständigheter olika isoleringslägen är lämpliga eller nödvändiga.

Isoleringslägen

Windows-servern kan köra containrar i ett av två distinkta isoleringslägen. Båda lägena stöder identiska processer för att skapa, hantera och köra containrar. Det finns dock en skillnad mellan graden av isolering som tillhandahålls för containern och därmed säkerheten mellan containern, andra containrar och värdoperativsystemet.

Windows Server stöder följande lägen för containerisolering:

  • Processisolering. Containrar som körs i processisoleringsläge kan kallas Windows Server-containrar.

  • Hyper-V-isolering. Containrar som körs i Hyper-V-isoleringsläge kan kallas Hyper-V-containrar.

Processisoleringsläge för Windows Server-containrar

Processisoleringsläget anses vara det traditionella isoleringsläget för Windows Server-containrar och gör att flera containerinstanser kan köras samtidigt på en värd. När de körs i det här läget delar containrar samma kernel med varandra och med värdoperativsystemet. Varje etablerad container har ett eget användarläge så att Windows- och appprocesser kan köras isolerade från andra containrar. När du konfigurerar Windows-containrar till att använda processisoleringsläge kan containrar köra flera appar i isolerade tillstånd på samma dator, men de tillhandahåller inte säkerhetsförstärkt isolering.

Kommentar

Docker är en samling verktyg, lösningar och molnbaserade tjänster med öppen källkod som tillhandahåller en gemensam modell för paketering (kallas även containerbaserad) appkod i en standardiserad enhet för programvaruutveckling. Du får lära dig mer om Docker- och containerkörningar i nästa enhet.

När du startar en ny container kommunicerar Docker (eller standardcontainerkörningen) med beräkningstjänsterna för att skapa en ny container som baseras på en avbildning. För varje container skapar Docker en Windows-container. Varje Windows-container kräver en uppsättning systemprocesser, som alltid är desamma i varje container. Sedan kan du använda din egen programprocess för att särskilja varje container. För att göra detta kan du använda ett programramverk som .NET, en Windows Server-komponent som Internet Information Services (IIS) eller ett ramverk eller processer från tredje part som du kör i containern.

Hyper-V-isoleringsläge för Hyper-V-containrar

När containrar delar kerneln och minnet finns det en möjlighet att ett program, om en säkerhetsrisk utforskas av en angripare, kan bryta sig ut ur sandbox-miljön och oavsiktligt göra något skadligt. För att undvika detta tillhandahåller Windows en alternativ metod för att köra containrar som är säkrare än Hyper-V-isoleringsläget, som ibland kallas Hyper-V-containrar.

Med Hyper-V-isoleringsläge körs varje container i en mycket optimerad virtuell dator. Fördelen med Hyper-V-isoleringsläget är att varje container effektivt har sin egen kernel, vilket ger en förbättrad stabilitet och säkerhet. Den virtuella datorn ger ytterligare ett lager av isolering på maskinvarunivå mellan varje container och värddatorn. När den distribueras startar en container med Hyper-V-isoleringsläge på några sekunder, vilket är mycket snabbare än en virtuell dator med ett fullständigt Windows-operativsystem.

Kommentar

Windows-baserade containrar som körs på Windows Server använder standardläget för processisolering. Windows-baserade containrar som körs på Windows 10 Pro och Enterprise använder som standard Hyper-V-isoleringsläget.

Följande bild jämför arkitekturerna i Windows Server- och Hyper-V-containrar och deras två isoleringslägen. Bilden visar att värd-Windows-kerneln delas av värdanvändarläget och Windows Server. Körs på den delade kerneln är en virtuell dator, inuti vilken är en Hyper-V-container. Hyper-V-containern har en egen Windows-kernel som inte delas.

Skärmbild av arkitekturen för Windows Server- och Hyper-V-containrar och deras två isoleringslägen.

Varning

Läget för processisolering i Windows 10 är endast avsett för utveckling och testning. Från och med uppdateringen av Windows 10 oktober 2018 kan användare som kör en Windows 10 Pro- eller Enterprise-värd köra en Windows-container i processisoleringsläge. Användarna måste begära processisoleringsläge direkt med hjälp av parametern --isolation=process. Värden måste köra Windows 10 build 17763+ och du måste ha en Docker-version med Engine 18.09 eller senare.

Viktigt!

Som Windows Server-container och värdoperativsystemet delar du kerneln, du måste se till att taggarna för värd- och containeravbildningsversionen matchar, annars kan containern inte starta eller uppvisa odefinierat beteende. Hyper-V-containrar kan användas som ett alternativ för att köra äldre containeravbildningar på nyare värdar , till exempel: En Windows Server 2019-avbildning på en Windows Server 2022-värd fungerar bara med Hyper-V-isolering.

Så här anger du ett isoleringsläge med ett Docker-kommando

Vi kommer att diskutera Docker och containerkörningar mer i nästa enhet, men i den här kontexten behöver vi bara vara medvetna om att Docker tillhandahåller en uppsättning kommandon som vi kan använda för att skapa containrar. När du skapar en container med Docker kan du ange isoleringsläget med hjälp av parametern --isolation och antingen processisoleringsläget eller Hyper-V-isoleringsläget:

  • Skapa en container med hjälp av processisoleringsläget med hjälp av det här kommandot:
docker run -it --isolation=process mcr.microsoft.com/windows/servercore:ltsc2019 cmd
  • Skapa en container med hjälp av Hyper-V-isoleringsläget med hjälp av det här kommandot:
docker run -it --isolation=hyperv mcr.microsoft.com/windows/servercore:ltsc2019 cmd`

När du ska använda Hyper-V-containrar via Windows Server-containrar

Faktorer att tänka på när du väljer mellan att använda Hyper-V-containrar och Windows Server-containrar är förtroende, säkerhet och isolering. Överväg att använda Hyper-V-containrar när:

  • Ett program kräver en dedikerad Windows-kernel.

  • Programförtroende krävs eftersom:

    • Värdoperativsystemet kanske inte helt litar på programmet som körs på det.

    • Program som körs tillsammans på samma värd kanske inte litar på varandra.

  • Större säkerhet krävs.

  • Större isolering krävs.

Några scenarier som kan driva några av dessa beslut är:

  • Molnleverantörer. När maskinvaruresurser delas och används kan alla tidigare nämnda faktorer gälla för arbetsbelastningar som körs från olika kunder.

  • Efterlevnadsprinciper. Du kan behöva följa säkerhet, data eller andra principer som kräver isolering och ökad säkerhet i dina arbetsbelastningar och program som körs.

  • Körningsmiljöer (kallas även utvecklings-, test- eller produktionsmiljöer). Du kanske inte behöver ytterligare isolering i utvecklings- eller testmiljöer, men kan göra det i produktionsscenarier. Du kan också ha ett distribuerat program i en mikrotjänstmodell. Olika containerarbetsbelastningar i programarkitekturen för mikrotjänster kan ha olika isoleringsbehov som du kan behöva tänka på.

Varning

Alla orkestreringstjänster, till exempel Kubernetes, stöder inte Hyper-V-containrar. När Hyper-V-containrar inte stöds, men större isolering behövs, kan du behöva återkomma till en fullständig virtuell dator för att köra en uppsättning containrar som kan köras sida vid sida.