Docker, Podman eller klassiska VM:ar – vad kostar ditt val egentligen?
Det finns en sorts teknisk romantik kring containers. Alla pratar om dem, alla verkar använda dem, och om du inte kör Kubernetes på minst tre noder känns det som att du inte riktigt hänger med. Men är det alltid rätt väg att gå? För en svensk startup med fem anställda och en budget som fortfarande räknas i förhoppningar snarare än faktiska kronor, kan fel teknologival bli dyrt – på riktigt.
Låt oss ta ett steg tillbaka och prata om vad vi faktiskt försöker lösa.
Vad är egentligen skillnaden – utan buzzwords?
En virtuell maskin (VM) är ungefär som att hyra en hel lägenhet. Du får egna väggar, eget kök och ingen delar din infrastruktur. Operativsystemet är helt isolerat, hårdvaran är emulerad, och du kan köra precis vad du vill utan att bry dig om grannarnas applikationer.
En container, däremot, är mer som att dela ett kontorsutrymme med andra. Du har din egna arbetsplats, men delar ventilation, toaletter och kaffemaskin med resten. I praktiken innebär det att containers delar värdmaskinens kärna (kernel), men isolerar processer, filsystem och nätverksstack.
Detta har konkreta konsekvenser:
- Containers startar på sekunder, VM:ar kan ta minuter
- Containers är lättare – en typisk Docker-image kan vara några hundra megabyte, medan en VM-disk lätt hamnar på flera gigabyte
- VM:ar erbjuder starkare isolering – om en container-runtime har en sårbarhet kan angripare potentiellt ta sig ut ur containern och påverka värdsystemet
- VM:ar kan köra vilket OS som helst, containers är bundna till värdmaskinens kernel-typ (Linux-containers på Linux, Windows-containers på Windows)
När containers faktiskt är rätt val
Föreställ dig ett litet SaaS-bolag i Malmö som bygger ett bokningssystem för frisörsalonger. De har en backend i Python, en frontend i React, en Redis-cache och en PostgreSQL-databas. Utan containers ser deras driftsättningsprocess förmodligen ut som ett lapptäcke av manuella installationsskript, miljövariabel-grepp och den klassiska meningen: "det fungerade på min dator".
Här lyser Docker verkligen. Varje tjänst paketeras i sin egen container med exakt de beroenden den behöver. En docker-compose.yml-fil beskriver hela stacken, och nytt folk kan vara igång på under tio minuter. Det är inte magi, det är reproducerbarhet – och det är värt mycket.
Containers passar bra när:
- Du har en mikrotjänstarkitektur eller planerar att bygga en
- Ditt team behöver kunna reproducera produktionsmiljön lokalt
- Du vill snabbt skala enskilda delar av din applikation
- Du kör på en molnplattform som AWS ECS, Google Cloud Run eller liknande
Podman – det tysta alternativet som svenska sysadmins börjar titta på
Om Docker är standardvalet är Podman det som erfarna Linux-användare börjar viskar om i korridorerna. Utvecklat av Red Hat och helt kompatibelt med OCI-standarden (samma format som Docker använder), men med en viktig skillnad: Podman kräver ingen bakgrundsprocess (daemon) som körs som root.
Detta är inte bara en teknisk detalj. I en miljö där säkerhet tas på allvar – och det borde den göra, inte minst efter NIS2-direktivets intåg i EU – är det en faktisk fördel att containers kan köras som vanliga användare utan förhöjda rättigheter.
För svenska företag som arbetar med offentlig sektor eller hanterar känsliga personuppgifter under GDPR kan Podmans rootless-arkitektur vara en enkel väg att minska attackytan utan att byta hela arbetsflödet.
När VM:ar fortfarande är rätt svar
Här är sanningen som containers-entusiaster ibland glömmer: det finns massor av situationer där en klassisk VM är det klokaste valet.
Ta en redovisningsbyrå i Göteborg som behöver köra ett Windows-baserat bokföringsprogram bredvid sin Linux-server. Eller ett industriföretag i Västerås som kör legacy-mjukvara som kräver ett specifikt operativsystem från 2012. Containers löser inte dessa problem – de skapar nya.
VM:ar är också överlägsna när:
- Regelefterlevnad kräver fullständig isolering – inom fintech, sjukvård eller myndighetsuppdrag är starkare isolering ofta ett krav, inte en preferens
- Du testar okänd eller potentiellt skadlig kod – en komprometterad container kan läcka ut, en komprometterad VM stannar (nästan alltid) innanför sina väggar
- Du behöver köra ett annat operativsystem – Linux-kernel är inte Windows-kernel, och det spelar roll
- Din organisation saknar container-kompetens – att halvhjärtat driftsätta containers utan att förstå nätverksisolering, image-scanning och secrets-hantering är faktiskt farligare än att köra en välkonfigurerad VM
Misstaget som kostar pengar
Det vanligaste och dyraste misstaget är att välja containers för att det känns modernt, utan att ha kompetensen att driva dem säkert. En Docker-installation med default-inställningar, ingen image-scanning och rotlösa containers exponerade mot internet är inte ett framsteg – det är en säkerhetsincident som väntar på att hända.
Ett konkret exempel: ett litet e-handelsbolag som migrerade sin monolitiska PHP-applikation till Docker för att "modernisera sig". Resultatet? Tre månaders arbete, en mer komplex driftmiljö, och exakt samma prestanda som innan. De löste ett problem de inte hade och skapade tre nya.
Omvänt finns det startups som kör hela sin infrastruktur i VM:ar när de egentligen borde ha containers – och betalar för det i långsamma driftsättningar, inkonsistenta miljöer och onödigt höga molnkostnader.
En enkel tumregel för svenska småföretag
Innan du bestämmer dig, ställ dig tre frågor:
- Har vi kompetensen att driva det säkert? Om svaret är nej, välj det enklare alternativet och bygg kompetensen innan du byter.
- Löser det ett faktiskt problem vi har idag? Inte ett hypotetiskt framtidsproblem, utan ett verkligt och mätbart problem.
- Vad händer när det går fel? Containers och VM:ar har väldigt olika felsökningsprocesser. Vilket alternativ kan ditt team hantera kl 02:00 en söndagsnatt?
Slutsatsen ingen vill höra
Det finns inget universellt rätt svar. Containers är fantastiska för rätt användningsfall, VM:ar är ovärderliga för andra. Podman är ett utmärkt alternativ när säkerhet och rootless-drift prioriteras. Och ibland är svaret att köra båda – containers för applikationer och VM:ar för isolering av hela miljöer.
Den svenska startup-kulturen värdesätter pragmatism. Välj teknologi som löser dina problem, inte teknologi som imponerar på investerare under en pitch. Din infrastruktur ska fungera, inte vinna en arkitekturstävling.
Och nästa gång någon säger att du måste köra Kubernetes – fråga dem varför, och lyssna noga på svaret.