Virtuella maskiner och behållare är typer av virtualisering som gör att applikationer kan distribueras i miljöer isolerade från den underliggande hårdvaran.
Dessa tekniker används ofta i stora IT-projekt för att sänka kostnaderna och göra det enklare att distribuera program på olika plattformar. En virtuell maskin är också användbar för att testa nya operativsystem.
Ett problem med dessa begrepp är att de är väldigt lika, vilket gör det svårt att välja mellan dem.
Så vad exakt är skillnaden mellan en virtuell maskin och en container?
Vad är en virtuell maskin?
En virtuell maskin är en virtualisering av en dator. Virtuella maskiner låter dig använda en enda dator för att köra vad som verkar vara flera datorer, var och en med sitt eget operativsystem.
Virtuella maskiner skapas med hjälp av hypervisorer. Detta är en mjukvara som sitter mellan en virtuell dator och den underliggande hårdvaran. Hypervisorn tar resurser från den underliggande hårdvaran och partitionerar dem till dedikerade till individuella virtuella datorer.
Resultatet är flera miljöer som använder samma hårdvara men beter sig som om de är helt isolerade från varandra.
Vad är en container?
En container är liknar en virtuell maskin. Men istället för att virtualisera en hel dator, virtualiserar en container bara programvara över operativsystemnivån.
Behållare är lättare eftersom de inte behöver sina egna operativsystem. För att sätta detta i perspektiv mäts de vanligtvis i megabyte snarare än gigabyte som är associerade med virtuella maskiner.
De behöver inte heller någon hypervisor och kan placeras direkt ovanpå värdoperativsystemet. Varje behållare delar sedan värd OS-kärnan.
Även om de är mindre än virtuella maskiner, är behållare fortfarande utformade för att inkludera alla nödvändiga filer för att ett program ska köras. De inkluderar alla beroenden och körtidsbibliotek. Detta gör att en applikation i en behållare kan köras var som helst.
Vad är skillnaden mellan en virtuell maskin och behållare?
Virtuella maskiner har funnits längst, men de har ersatts av containrar för vissa ändamål. Varje teknik har dock sina egna för- och nackdelar. Rätt verktyg för jobbet beror därför på det specifika projektet. Här är de primära skillnaderna.
1. Virtuella maskiner tillhandahåller ett separat operativsystem
På grund av att de har ett eget operativsystem kan virtuella maskiner utföra ett antal uppgifter som inte är möjliga med behållare.
- Du kan köra program som inte är kompatibla med värdoperativsystemet.
- Du kan köra flera applikationer i olika operativsystem.
- Du kan köra flera applikationer som inte har råd att dela operativsystemets funktioner och resurser.
2. Behållare är mindre och mer bärbara
Att dela ett operativsystem minskar avsevärt mängden kod som krävs för att en behållare ska köras. Behållare är därför betydligt mindre än virtuella datorer och tar ofta bara upp några få megabyte.
Detta gör behållare potentiellt mycket billigare eftersom du kan passa fler av dem på en enda server. Det gör också containrar betydligt mer bärbara.
Behållare kan enkelt överföras mellan datorer, datormiljöer och molnet. Detta gör dem särskilt användbara för team som vill samarbeta i en enda applikation medan de använder olika miljöer.
3. Behållare startar snabbare
Behållare kan startas mycket snabbare eftersom operativsystemet redan körs, till skillnad från att starta en virtuell maskin, vilket innebär att man startar upp ett nytt operativsystem.
Behållare kan därför starta upp på några sekunder, medan virtuella maskiner vanligtvis kräver några minuter.
Eftersom behållare använder färre resurser tillåter de också att vissa applikationer körs snabbare.
4. Behållare har tillgång till alla resurser
Virtuella maskiner har specifika resurser tilldelade av hypervisorn. Detta kan vara användbart för resurskrävande applikationer, men det kan också vara ineffektivt när tilldelade resurser lämnas oanvända.
Behållare har tillgång till alla underliggande hårdvaruresurser och utgör därför inte detta problem. Som ett resultat är behållare vanligtvis det bättre valet för applikationer där de resurser som behövs är okända.
5. Virtuella maskiner är säkrare
En virtuell maskin är helt isolerad från allt annat på en dator. En behållare är endast isolerad på processnivå. Detta gör virtuella maskiner säkrare.
Om värdoperativsystemet äventyras kan alla behållare som installerats ovanför det också äventyras. I samma scenario skulle virtuella maskiner vara opåverkade.
En exploit som körs inuti en virtuell maskin kan inte påverka någonting utanför den. En exploit som körs inuti en container kan potentiellt komma åt resten av ett system.
Ska du använda en virtuell maskin eller en behållare?
Virtuella maskiner och behållare är väldigt lika varandra, men de är inte utbytbara. Följaktligen kommer vissa projekt att erbjuda ett val mellan de två medan andra inte kommer att göra det.
Du bör använda en virtuell maskin när du vill köra applikationer som specifikt kräver ett nytt operativsystem. Till exempel kanske värdoperativsystemet inte stöder programmet.
En virtuell maskin bör också användas när isolering och säkerhet prioriteras över allt annat.
I de flesta andra scenarier ger en container en lättare, snabbare och mer kostnadseffektiv lösning.
Kan du använda virtuella maskiner och behållare tillsammans?
Om du vill ha funktionaliteten hos både virtuella maskiner och containrar är det möjligt att kombinera de två. I det här fallet startar du en virtuell maskin och distribuerar sedan behållare inuti den.
Detta är särskilt användbart för säkerhetsändamål. Tänk dig till exempel att du kör tio containrar på en enda dator. Om datorns operativsystem äventyras kan alla tio behållare påverkas.
Tänk dig nu att du delar dessa tio behållare över flera virtuella maskiner. Om en av dessa virtuella datorer äventyras kommer endast behållarna inuti den att påverkas, och resten kommer att fungera som vanligt.
Ersätter containrar virtuella maskiner?
Containers blir allt mer populära och med mycket goda skäl. De uppnår många av samma mål som virtuella maskiner, men de gör det till en bråkdel av storleken och den potentiella kostnaden.
Trots detta finns det många situationer då endast en virtuell maskin kommer att tillhandahålla önskad funktionalitet, vilket innebär att virtuella datorer, oavsett storlek, alltid kommer att användas i viss utsträckning.
Vill du installera Linux, men kan inte lämna Windows? Prova en virtuell maskin för att köra din favoritversion av Linux i Windows. Vi visar dig hur du ställer in VMware Workstation Player.
Läs Nästa
- Teknik förklaras
- VirtualBox
- Virtuell maskin
- Virtualisering
- Webbserver

Elliot är en frilansande teknikskribent. Han skriver främst om fintech och cybersäkerhet.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera