Moment 6: Isolerade miljöer med Docker

Lästid: ca 12 min

Välkommen till det sista momentet i din resa mot en komplett utvecklingsmiljö. Du har lärt dig sätta upp specifika miljöer för Python och webbutveckling. Men du har säkert stött på det klassiska problemet i undervisning: en elev säger "men det fungerar på min dator!". Skillnader i operativsystem, installerade bibliotek eller inställningar kan göra att kod som fungerar perfekt för dig, kraschar för någon annan. Docker är den moderna lösningen på exakt detta problem.

I detta avslutande moment introducerar vi "containrar" (containers) - ett revolutionerande sätt att paketera en applikation med alla dess beroenden i en standardiserad, isolerad enhet. Att förstå Docker är att förstå hur modern mjukvara distribueras och körs, från små projekt till gigantiska molntjänster.


Vad du lär dig

Efter detta moment kommer du att:

  • Förstå vad en container är och hur den förenklar utveckling och distribution.
  • Inse varför Docker är ett så kraftfullt verktyg för reproducerbarhet i klassrummet.
  • Installera Docker på ditt Ubuntu-system.
  • Köra en färdigbyggd webbapplikation i en Docker-container.

Grunderna: Vad är en container?

Tänk på en vanlig fraktcontainer. Det spelar ingen roll om den innehåller bananer, elektronik eller möbler - själva containern har standardiserade mått och fästen. Därför kan vilket fartyg, tåg eller lyftkran som helst hantera den, utan att behöva veta något om innehållet.

En Docker-container fungerar på exakt samma sätt för mjukvara. Den paketerar:

  • Din applikationskod (t.ex. ditt Python-skript eller din webbsida).
  • Alla beroenden (t.ex. specifika Python-bibliotek eller Node.js).
  • Systembibliotek och inställningar som krävs för att köra koden.

Resultatet är en standardiserad "låda" som garanterat fungerar likadant överallt där Docker finns installerat - på din Ubuntu-dator, en elevs Windows-laptop eller en server i molnet. Problemet "det funkar på min dator" är borta.


Praktiska exempel: Installera Docker och kör din första container

1. Installera Docker

Installationen av Docker är lite mer avancerad än ett vanligt apt install-kommando, eftersom vi vill lägga till Dockers officiella programkällor för att alltid få den senaste versionen. Den bästa guiden är alltid den officiella.

  1. Följ de officiella instruktionerna för att installera Docker Engine på Ubuntu: Docker Docs: Install on Ubuntu.
  2. VIKTIGT efter installation: För att undvika att behöva skriva sudo före varje docker-kommando, lägg till din användare i docker-gruppen. Kör detta kommando i terminalen och logga sedan ut och in igen för att ändringen ska träda i kraft.
    sudo usermod -aG docker $USER
    

2. Kör din första container: "Hello World"

Det klassiska testet för att se att allt fungerar.

docker run hello-world

Detta kommando kommer att: ladda ner den minimala hello-world-"imagen" (en mall för en container) från den offentliga hubben Docker Hub, skapa en container från den, köra den (vilket skriver ut ett bekräftelsemeddelande) och sedan avsluta.

3. Kör en interaktiv webbserver

Låt oss göra något mer användbart: köra en färdigbyggd webbserver i en container.

docker run -d -p 8080:80 docker/getting-started

Låt oss bryta ner kommandot:

  • docker run: Starta en container.
  • -d: Kör den i "detached mode", alltså i bakgrunden.
  • -p 8080:80: Publicera en port. Detta mappar port 8080 på din dator till port 80 inuti containern.
  • docker/getting-started: Namnet på imagen som ska användas.

Öppna nu din webbläsare och gå till http://localhost:8080. Du kommer att se en webbsida som serveras från den helt isolerade containern!

För att se vilka containrar som körs, skriv docker ps. För att stoppa den, kopiera dess ID från ps-kommandot och skriv docker stop <container_id>.


Docker i klassrummet: En revolution för undervisning

Att använda Docker i undervisningen kan lösa många huvudvärksmoment:

  • Perfekt reproducerbarhet: Du kan skapa en Dockerfile (en receptfil) för ett specifikt projekt. Varje elev kör sedan samma kommando och får en identisk miljö. Inga fler problem med olika biblioteksversioner eller OS-specifika fel.
  • Säker experimentlusta: Elever kan experimentera fritt inuti en container utan någon som helst risk att de förstör något på sin egen dator.
  • Enkel tillgång till avancerad mjukvara: Behöver ni en databas för ett projekt? Istället för en krånglig installation kan ni köra docker run postgres och ha en fullfjädrad databas igång på sekunder.

Kursavslutning och dina nästa steg

Ett stort och innerligt GRATTIS! Du har nu slutfört hela kursen "Sätt upp din utvecklingsmiljö i Ubuntu". Du har gått från att installera systemet till att förstå och använda de verktyg som driver modern mjukvaruutveckling. Du kan nu hantera Python-miljöer, bygga webbsidor, versionshantera med Git och till och med paketera applikationer med Docker.

Vad händer nu? Det finns bara ett svar: Bygg något! Kunskap befästs bäst genom praktisk tillämpning.

  • Ta det webbprojekt du startade och bygg vidare på det.
  • Skapa ett nytt Python-projekt för att lösa ett problem du har i din vardag.
  • Utforska Docker Hub för att se vilka färdiga applikationer du kan köra med ett enda kommando.

Du har nu en otroligt solid grund att stå på. Världen av öppen källkod och utveckling ligger öppen för dig. Lycka till!