WSL

WSL -6-🐳 Docker

🎯 Syfte

Lära dig vad Docker är och hur du kan använda det för att köra applikationer i isolerade miljöer (containrar). Du kommer att skapa en Docker-image och köra ett enkelt projekt i en container.


🧱 Vad är Docker?

Docker är ett verktyg som paketerar din applikation och dess beroenden i en container – en slags lättviktsvirtuell miljö som alltid beter sig likadant oavsett system.

Fördelar:

  • Ingen "det fungerar inte på min dator"-problematik
  • Snabba och lätta att köra
  • Perfekt för testning, utveckling, och distribution

🖥️ Grundläggande begrepp

Begrepp Förklaring
Image En "blåkopi" av en applikation (inkl. OS, kod, verktyg)
Container En körbar instans av en image
Dockerfile Ett recept som beskriver hur en image byggs
Docker Hub Ett bibliotek av färdiga images (som GitHub för containrar)

🛠️ Installera Docker

  1. Ladda ner Docker Desktop från https://www.docker.com/products/docker-desktop
  2. Aktivera stöd för WSL2 i inställningarna
  3. Kontrollera att Docker fungerar i WSL:
    docker --version
    docker run hello-world

📦 Skapa en enkel Docker-applikation (exempel i Python)

  1. Skapa projektmapp:
mkdir docker-python-test
cd docker-python-test
  1. Skapa filen app.py:
print("Hej från Python i en Docker-container!")
  1. Skapa Dockerfile:
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]
  1. Bygg image:
docker build -t python-hej .
  1. Kör container:
docker run python-hej

🔁 Vanliga Docker-kommandon

docker build -t namn .           # Bygg image
docker run namn                  # Kör container
docker ps                        # Lista körande containrar
docker ps -a                     # Lista alla (även stoppade)
docker stop <id>                 # Stoppa container
docker images                    # Lista images
docker rmi <image-id>            # Ta bort image

🧪 Övning – Din första Docker-app

  1. Skapa en mapp min-dockerapp
  2. Lägg in en valfri .py eller .js-fil som skriver ut något
  3. Skriv en Dockerfile som kör din fil
  4. Bygg och kör din image med Docker CLI

Bonus: Testa att stoppa och starta containern igen.


✅ Klar med Modul 6!

I nästa modul kopplar vi ihop VS Code, Docker och WSL för att skapa ett effektivt utvecklingsflöde direkt i containrar.