Docker
Containerplatform der pakker applikationer med alle afhængigheder i isolerede, portable containere.
Docker revolutionerede softwareudvikling ved at introducere letvægtskontainere som standard for applikationspakning og distribution. En Docker-container indeholder alt hvad en applikation behøver: kode, runtime, biblioteker og systemværktøjer. Det garanterer at applikationen kører identisk uanset miljø.
En Dockerfile beskriver trinvist, hvordan et image bygges. Fra et base-image (som node:20-alpine) tilføjes applikationskode, afhængigheder installeres og startup-kommandoen defineres. Docker bruger et lagdelt filsystem, hvor hvert trin caches. Det gør rebuilds hurtige, da kun ændrede lag genbygges.
Docker Compose udvider Docker til multi-container applikationer. En docker-compose.yml fil beskriver alle services, netværk og volumes. Med én kommando startes hele stakken: webserver, database, cache, message queue. Det er uvurderligt til lokal udvikling og testmiljøer.
Docker Hub og private registries som GitHub Container Registry fungerer som distributionsplatforme for images. Teams bygger images i CI, pusher dem til et registry og puller dem i deployment-miljøer. Versionering via tags sikrer sporbarhed og reproducerbarhed.
Best practices inkluderer at bruge multi-stage builds for at minimere image-størrelse, køre processer som non-root user, scanne images for sårbarheder med tools som Trivy, og undgå at gemme hemmeligheder i images. Docker er fundamentet som Kubernetes og andre orkestreringsplatforme bygger oven på.