Hopp til hovedinnhold

Det er snart fire år siden Docker Desktop begynte å avkreve lisens av brukere i større bedrifter samt offentlige organisasjoner. Mang en plattformansvarlig har brukt betydelige ressurser på å spore opp ulisensierte Docker Desktop-installasjoner, og flytte brukerne over på mer eller mindre gode alternativer. Løsninger som Rancher Desktop har blitt populære alternativer, men for dem som alt er godt kjente med containerteknologi vil jeg anbefale en titt på et alternativ: Colima.

Denne artikkelen er primært skrevet for utviklere som allerede er komfortable med Docker og containere, og som ønsker mer direkte kontroll over sitt lokale miljø. Dersom containere er helt nytt for deg, eller du foretrekker GUI-baserte verktøy, kan løsninger som Rancher Desktop være riktig sted å begynne. Colima skinner først og fremst når du vet hva du vil ha - og ønsker deg færre lag mellom deg og containermiljøet.

Hvorfor Colima?

Colima har etterhvert blitt min go-to erstatning for Docker Desktop. Colima står for "Containers on Linux Machines". Colima bygger på Lima, som er et verktøy for å kjøre lette Linux-VMer på macOS. Colima tilbyr kun et enkelt konfigfil- og kommandolinjebasert grensenitt. Det tilbys ikke noe GUI, abstraksjon av konfigurasjon, ekstra bakgrunnstjenester eller lignende.

Sammenlignet med løsninger som Rancher Desktop er altså Colima *tynt*. Med tynt mener jeg her at Colima:

  • Har få abstraksjonslag
  • Eksponerer konfigurasjon direkte
  • Gjør lite magisk på dine vegne

For den som er noenlunde kjent med containere fra før er dette en fordel: Det er færre lag der ting kan gå galt, og med færre abstraksjoner rundt konfigurasjon og tilstand er den kognitive lasten for erfarne brukere gjerne *lavere* enn alternativet.

Enkel installasjon

Man trenger i utgangspunktet kun docker og colima for å komme i gang. Begge disse kan installers ved hjelp av Homebrew: brew install docker colima. For Linux-brukere kan f.eks. nix-env -iA nixpkgs.colima brukes.

Enkel konfigurasjon

Fordi konfigurasjon er såpass direkte kan man enkelt definere ulike kontekster man kan bytte mellom eller stoppe etter ønske. For å starte default-profilen holder det med colima start, eventuelt colima start my-profile for å starte profilen my-profile. Dersom den ikke finnes vil den opprettes.

Under er et litt mer avansert eksempel, der vi starter en profil med en mer spesifikk konfigurasjon:

COLIMA_PROFILE=kafka colima start \
  --vm-type vz \
  --arch aarch64 \
  --cpu 8 \
  --memory 24 \
  --disk 150 \
  --runtime docker \
  --mount-type=virtiofs

For å stoppe konteksten bruker man colima stop <profilnavn>, f.eks colima stop kafka. Om man er usikker på hva som kjører, kan man kjøre colima list:

liste over Colima-profiler og deres status
Liste over Colima-profiler

Enkel start og stopp av Colima-profiler gjør det forøvrig lettere å gjøre en vane av å stenge ned docker når man ikke trenger det. Det gjør det lettere å holde strømforbruket nede. Det sparer deg også for ubehagelige overraskelser av sorten der Rancher Desktop bruker opp batteriet ditt til å holde laptopsekken varm...

Det er også veldig enkelt å rekonfigurere profilene. Her har vi gitt kafka-profilen ganske mange CPUer. Heldigvis er det lett å rette opp:

Eksempel på endring av CPU count ved å spesifisiere ved oppstart: colima start kafka --cpu 4
Endring av konfigurasjon

Alternativt kan man justere ~/.colima/<profilnavn>/colima.yaml direkte. Merk at man ikke kan redusere diskstørrelsen - den kan kun økes. Diskbruken er sparse - den konfigurerte verdien er et maksimum, ikke en blokk som reserveres umiddelbart.

Lett å håndtere flere kontekster

Jeg jobber gjerne i flere ulike ressurskrevende kontekster over tid. Da er det greit å kunne aktivt ta opp eller ned kontekster uten å tenke på å rydde bort ting jeg kanskje ikke var helt ferdig med. Stopp den gamle konteksten med colima stop <profilnavn>, og start den nye med colima start <profilnavn>.

Eksempel på bytting av profil ved hjelp av colima stop profilnavn og colima start profilnavn
Bytting av profil

Docker-konteksten byttes også over:

Et eksempel med bruk av docker context list for å bekrefte at aktiv docker-kontekst ble byttet
Automatisk bytte av docker kontekst

Kubernetes-støtte

I likhet med alternativene støtter også Colima Kubernetes:

Et eksempel på installasjon av kubernetes på colima via colima kubernetes start
Kubernetes

Dette spinner opp et single-node k3s-cluster. Det er ofte nok til å fungere som lokalt utviklingsmiljø. Dersom du behøver et rikere miljø (for eksempel om du gjør ting med daemonsets eller internalTrafficPolicy: local) kan du selvsagt kjøre opp Kind på docker-runtime provisjonert via en Colima-profil.

Oppsummert

Kort fortalt:

  • Colima gir mer direkte kontroll enn Docker Desktop og Rancher Desktop
  • Mindre abstraksjon → færre overraskelser
  • Enkelt å kjøre flere profiler for ulike behov
  • Best egnet for utviklere som allerede er komfortable med Docker

Ta en titt på Colima om du vil ha mer direkte kontroll over ditt lokale Docker-miljø. Colima er tynn, deterministisk og oppfører seg som en ekte Linux-host. Det er også lett å bytte mellom ulike profiler til ulikt bruk, som sparer deg ryddejobber. Rancher Desktop er flott til onboarding og demoer, men Colima gir oss færre abstraksjoner, færre overraskelser og mer direkte kontroll - rett fra kommandolinjen.

Relevante lenker anbefalt av forfatteren

Liker du innlegget?

Del gjerne med kollegaer og venner