Dela via


Containrar jämfört med virtuella datorer

Gäller för: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

I det här avsnittet beskrivs några av de viktigaste likheterna och skillnaderna mellan containrar och virtuella datorer och när du kanske vill använda var och en. Containrar och virtuella datorer har varsin användning– i själva verket använder många distributioner av containrar virtuella datorer som värdoperativsystem i stället för att köras direkt på maskinvaran, särskilt när containrar körs i molnet.

En översikt över containrar finns i Windows och containrar.

Containerarkitektur

En container är en isolerad, lätt silo för att köra ett program på värdoperativsystemet. Containrar bygger ovanpå värdoperativsystemets kernel (som kan betraktas som operativsystemets nedgrävda VVS) och innehåller endast appar och vissa enkla operativsystem-API:er och tjänster som körs i användarläge, som du ser i det här diagrammet.

arkitekturdiagram som visar hur containrar körs ovanpå kerneln

Arkitektur för virtuella datorer

Till skillnad från containrar kör virtuella datorer ett fullständigt operativsystem – inklusive en egen kernel – som visas i det här diagrammet.

arkitekturdiagram som visar hur virtuella datorer kör ett fullständigt operativsystem bredvid värdoperativsystemet

Containrar jämfört med virtuella datorer

I följande tabell visas några av likheterna och skillnaderna mellan dessa kompletterande tekniker.

Funktion Virtuell dator Behållare
Isolering Ger fullständig isolering från värdoperativsystemet och andra virtuella datorer. Detta är användbart när en stark säkerhetsgräns är kritisk, till exempel värd för appar från konkurrerande företag på samma server eller kluster. Ger vanligtvis lätt isolering från värden och andra containrar, men ger inte en lika stark säkerhetsgräns som en virtuell maskin. (Du kan öka säkerheten genom att använda Hyper-V isoleringsläge för att isolera varje container i en enkel virtuell dator).
Operativsystem Kör ett fullständigt operativsystem inklusive kerneln, vilket kräver fler systemresurser (CPU, minne och lagring). Kör användarlägesdelen av ett operativsystem och kan skräddarsys för att bara innehålla de tjänster som behövs för din app, med färre systemresurser.
Gästkompatibilitet Kör nästan alla operativsystem i den virtuella datorn. Körs på samma operativsystemversion som värden (Hyper-V isolering gör att du kan köra tidigare versioner av samma operativsystem i en lätt vm-miljö).
Utplacering Distribuera enskilda virtuella datorer med hjälp av Windows Administrationscenter eller Hyper-V Manager; distribuera flera virtuella datorer med hjälp av PowerShell eller System Center Virtual Machine Manager. Distribuera enskilda containrar med hjälp av Docker via kommandoraden. distribuera flera containrar med hjälp av en orkestrerare, till exempel Azure Kubernetes Service.
Uppdateringar och uppgraderingar av operativsystem Ladda ned och installera operativsystemuppdateringar på varje virtuell dator. För att installera en ny version av operativsystemet måste du uppgradera eller ofta bara skapa en helt ny virtuell dator. Detta kan vara tidskrävande, särskilt om du har många virtuella datorer. Det är samma sak att uppdatera eller uppgradera operativsystemfilerna i en container:
  1. Redigera containeravbildningens byggfil (kallas dockerfil) för att peka på den senaste versionen av Windows-basavbildningen.
  2. Återskapa containeravbildningen med den här nya basavbildningen.
  3. Skicka containeravbildningen till containerregistret.
  4. Distribuera om med ett orkestrationsverktyg.
    Orkestratorn tillhandahåller kraftfull automatisering för att göra detta i stor skala. Mer information finns i Självstudie: Uppdatera ett program i Azure Kubernetes Service.
Beständig lagring Använd en virtuell hårddisk (VHD) för lokal lagring för en enskild virtuell dator eller en SMB-filresurs för lagring som delas av flera servrar. Använd Azure Disks för lokal lagring för en enskild nod eller Azure Files (SMB-resurser) för lagring som delas av flera noder eller servrar.
Belastningsutjämning Belastningsutjämning för virtuella maskiner flyttar befintliga virtuella maskiner till andra servrar i ett utfallskluster. Själva containrarna flyttas inte. i stället kan en orkestrerare automatiskt starta eller stoppa containrar på klusternoder för att hantera ändringar i belastning och tillgänglighet.
Feltolerans Virtuella datorer kan redundansväxla till en annan server i ett kluster, där den virtuella datorns operativsystem startas om på den nya servern. Om en klusternod misslyckas återskapas alla containrar som körs på den snabbt av orkestreraren på en annan klusternod.
Nätverkande Använder virtuella nätverkskort. Använder en isolerad vy av ett virtuellt nätverkskort, vilket ger lite mindre virtualisering – värdens brandvägg delas med containrar – samtidigt som mindre resurser används. Mer information finns i Windows-containernätverk.