IT Ordbog
Hvad er Docker?
Docker er en platform, der pakker applikationer i containers — selvstændige, isolerede pakker der inkluderer alt, en applikation behøver for at køre. Det eliminerer "det virker på min maskine"-problemet.
Hvad er Docker?
Docker er en open-source platform til at bygge, distribuere og køre applikationer i containers. En container er en letvægt, isoleret pakke, der indeholder applikationens kode, runtime, systembiblioteker og afhængigheder. Modsat virtuelle maskiner deler containers operativsystemets kerne, hvilket gør dem langt hurtigere at starte og mere ressourceeffektive. Docker sikrer, at en applikation kører identisk uanset miljøet — udvikling, test eller produktion — fordi containeren inkluderer alt, den behøver.
Sådan fungerer Docker
Docker-workflow: 1) Dockerfile — en tekstfil der beskriver, hvordan containeren bygges (base image, afhængigheder, kode, kommandoer), 2) Docker Image — et read-only blueprint bygget fra Dockerfilen, 3) Container — en kørende instans af et image, 4) Docker Hub/Registry — et repository til at dele og distribuere images. Docker Compose gør det muligt at definere og køre multi-container applikationer (f.eks. webserver + database + cache) med en enkelt konfigurationsfil (docker-compose.yml).
Docker vs. virtuelle maskiner
Virtuelle maskiner (VM'er) inkluderer et fuldt gæsteoperativsystem og bruger en hypervisor til isolation. De er tungere (GB i størrelse), langsommere at starte (minutter), og mere ressourcekrævende. Docker containers deler værtens OS-kerne, er letvægt (MB), starter på sekunder, og kan køre mange flere instanser på samme hardware. VM'er giver stærkere isolation (eget OS), mens containers giver bedre ressourceeffektivitet og portabilitet. I praksis bruger mange Docker containers kørende på virtuelle maskiner.
Hvorfor bruger vi Docker?
Docker er standarden for moderne applikations-deployment: 1) Konsistens — samme container kører identisk overalt, 2) Isolation — applikationer og deres afhængigheder er isoleret, 3) Skalerbarhed — start og stop containers på sekunder, 4) Microservices — perfekt til at køre mange små services, 5) CI/CD — reproducerbare builds og tests. Hos Grumsen Development bruger vi Docker til at køre backend-services (C#/.NET med PostgreSQL) og sikre konsistente udviklingsmiljøer på tværs af teamet.