Hva er Docker? En guide til containere for nybegynnere uten jargong: forskjellen fra VM, grunnleggende kommandoer, Docker Compose og en intro til Kubernetes.
Kort fortalt
- Docker Hub
- Over 14 millioner offentlige images og mer enn 11 milliarder nedlastinger i måneden (Docker)
- Docker Desktop gratis for
- Personlig bruk, utdanning og bedrifter med under 250 ansatte og under 10 mill. dollar i årsomsetning (Docker)
- Play with Docker
- Nettleser-laboratoriet er lagt ned fra 1. mars 2026 (Docker-forum)
Innhold i artikkelen (7)
Problemet som Docker løser
Du har sikkert hørt "men det fungerte på min maskin!". Det klassiske scenariet: en utvikler lager en applikasjon som fungerer perfekt lokalt, men krasjer i produksjon fordi serveren har en annen versjon av Python, andre systembiblioteker eller et annet operativsystem.
Docker løser dette ved å pakke applikasjonen sammen med alt den trenger — runtime, biblioteker, konfigurasjonsfiler — i en isolert enhet kalt en container, som dermed ikke er avhengig av hva som allerede er installert på verten. Containeren kjører identisk på din laptop, i skyen og på kollegaens maskin. "Works on my machine" blir irrelevant.

Containere vs. virtuelle maskiner — hva er forskjellen?
En virtuell maskin (VM) emulerer en hel fysisk datamaskin, inkludert eget operativsystem og egen kjerne (kernel). Et fullt VM-image må derfor pakke med en hel operativsystem-installasjon og ligger typisk på titalls gigabyte, mot titalls megabyte for et containerbilde, og en VM kan være treg å starte fordi den må starte en hel maskin. En Docker-container deler i stedet kjernen med verten sin i stedet for å ha sin egen, og trenger derfor ikke et helt operativsystem per applikasjon.
Det gjelder direkte når Docker kjører på en Linux-vert. På macOS og Windows finnes det ingen Linux-kjerne på verten å dele — der kjører Docker Desktop containerne inne i en egen, lettvekts Linux-VM i bakgrunnen (via WSL2 på Windows eller Apples virtualiseringsrammeverk på Mac), og det er denne VM-ens kjerne containerne faktisk deler — ikke Windows- eller macOS-kjernen selv.
Analogien er god: VM-er er som separate leiligheter i en bygård (hver med eget kjøkken og bad), mens containere er som kontorplasser i et åpent kontorlandskap — hver med sin egen arbeidsplass, men delt infrastruktur.
Grunnleggende begreper: Image, Container, Dockerfile
Et Docker Image er en uforanderlig mal — en "oppskrift" for å lage en container. Et Image er lagbasert: hvert lag representerer en endring (installer pakke, kopier fil, sett miljøvariabel). Images lagres i Docker Hub, verdens største offentlige registry for containerbilder, som ifølge Dockers egen blogg har over 14 millioner offentlige images og over 11 milliarder nedlastinger i måneden, eller i private registries.
En Docker Container er en kjørende instans av et Image. Du kan starte mange containere fra samme Image. En Dockerfile er tekstfilen som beskriver hvordan et Image skal bygges, steg for steg. Docker Compose er et verktøy for å definere og kjøre fler-container-applikasjoner via en YAML-fil.
Grunnleggende Docker-kommandoer
De viktigste kommandoene for å komme i gang, dokumentert i Dockers offisielle kommandolinjereferanse: "docker pull nginx" laster ned nginx-imaget fra Docker Hub. "docker run -d -p 8080:80 nginx" starter en nginx-container i bakgrunnen og kobler port 8080 på din maskin til port 80 i containeren. "docker ps" viser kjørende containere. "docker stop CONTAINER_ID" stopper en container.
"docker build -t min-app:1.0 ." bygger et image fra Dockerfile i gjeldende mappe. "docker exec -it CONTAINER_ID bash" åpner en terminal inne i en kjørende container — svært nyttig for feilsøking. "docker logs CONTAINER_ID" viser logger fra en container.
- docker pull IMAGE — last ned image fra Docker Hub
- docker run -d -p HOST:CONTAINER IMAGE — start container i bakgrunnen
- docker ps — vis kjørende containere (docker ps -a for alle)
- docker stop / docker rm — stopp og slett container
- docker build -t NAVN:TAG . — bygg image fra Dockerfile
- docker exec -it ID bash — åpne terminal i kjørende container
Docker Compose — fler-container-applikasjoner
De fleste applikasjoner trenger flere tjenester: en webserver, en database og kanskje en cache. Docker Compose lar deg definere dette i én docker-compose.yml-fil. Med "docker compose up" starter alle tjenester i riktig rekkefølge med riktige nettverkskoblinger.
Et typisk eksempel er Dockers eget WordPress-eksempel med Compose: en WordPress-container og en MySQL-container definert som to services i samme docker-compose.yml-fil, med et volume for vedvarende lagring. Tjenester i samme Compose-oppsett kan nå hverandre via tjenestenavnet sitt, uten at du selv må konfigurere nettverket.
Kubernetes — neste steg etter Docker
Kubernetes (k8s) er et orkestreringssystem for containere i produksjon, opprinnelig utviklet av Google og i dag forvaltet av Cloud Native Computing Foundation. Der Docker håndterer enkeltstående containere, håndterer Kubernetes tusenvis av containere fordelt på mange servere. Ifølge Kubernetes' egen dokumentasjon gir det horisontal skalering — skaler opp og ned med en enkelt kommando eller automatisk basert på CPU-bruk — selvhelbredelse, som restarter containere som feiler og bytter ut containere som ikke svarer på helsesjekker før de får trafikk, og kontrollerte, gradvise utrullinger av nye versjoner.
For norske bedrifter er administrerte Kubernetes-tjenester som Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) og Amazon EKS mest praktiske, siden skyleverandøren da drifter kontrollplanet for deg.
Slik kommer du i gang
Installer Docker Desktop — det er gratis for personlig bruk, utdanning, ideelle open source-prosjekter og for små bedrifter med færre enn 250 ansatte og under 10 millioner amerikanske dollar i årsomsetning; større kommersielle organisasjoner må ha et betalt abonnement. Start med å kjøre ferdiglagde images: "docker run hello-world" verifiserer installasjonen. Prøv deretter "docker run -p 8080:80 nginx" og åpne localhost:8080 i nettleseren.
Lær Docker videre via Dockers offisielle kom-i-gang-veiledning på docs.docker.com. Det tidligere nettleser-baserte laboratoriet Play with Docker er lagt ned og ikke lenger tilgjengelig ifølge Dockers egen kunngjøring i fellesskapsforumet, så bruk den offisielle dokumentasjonen som utgangspunkt.
Vil du styrke utviklergrunnlaget? Se hvilke programmeringsspråk du bør lære, kom i gang med gratis kodekurs for nybegynnere, og velg en god Linux-distribusjon for nybegynnere til å kjøre Docker på.
Ofte stilte spørsmål
Hva er Docker?
Docker er et verktøy som pakker en applikasjon sammen med alt den trenger — runtime, biblioteker og konfigurasjon — i en isolert enhet kalt en container. Containeren kjører identisk på din laptop, i skyen og på andres maskiner. Dermed forsvinner det klassiske problemet «men det fungerte på min maskin».
Hva er forskjellen på en container og en virtuell maskin?
En virtuell maskin emulerer en hel datamaskin med eget operativsystem og egen kjerne, og et helt VM-image tar typisk opp titalls gigabyte, mot titalls megabyte for et containerbilde, og kan være treg å starte. En Docker-container deler i stedet kjernen med verten sin. På Linux skjer det direkte med vertens egen kjerne; på macOS og Windows kjører Docker Desktop containerne i en egen Linux-VM i bakgrunnen, og det er denne VM-ens kjerne som deles. Containere er likevel langt lettere og raskere å starte enn VM-er.
Hva er forskjellen på et image og en container?
Et Docker-image er en uforanderlig mal — en oppskrift for å lage en container, bygget i lag og lagret i for eksempel Docker Hub. En container er en kjørende instans av et image. Du kan starte mange containere fra samme image samtidig, akkurat som du kan lage flere kaker fra én oppskrift.
Trenger jeg Docker for å lære Kubernetes?
Ja, det er en naturlig læringssti. Docker håndterer enkeltstående containere, mens Kubernetes orkestrerer tusenvis av containere på tvers av mange servere med automatisk skalering og selvhelbredelse. Lær Docker-grunnlaget først, deretter Docker Compose, før du går videre til Kubernetes. Administrerte tjenester som AKS, GKE og EKS gjør oppstarten enklere.
Er Docker gratis?
Docker Desktop er gratis for personlig bruk, utdanning, ideelle open source-prosjekter og for små bedrifter med færre enn 250 ansatte og under 10 millioner dollar i årsomsetning. Docker Hub har over 14 millioner offentlige images og over 11 milliarder nedlastinger i måneden, og de er gratis å laste ned. Organisasjoner som passerer én av grensene over, må ha et betalt abonnement for Docker Desktop — men selve Docker Engine og containerteknologien er åpen kildekode og gratis uansett virksomhetens størrelse.





