Installera Docker och din första container
Vi går igenom installation av Docker Desktop och Docker Engine, hur du kör din första container, skriver en Dockerfile och sätter upp en miljö med flera tjänster via docker compose.

För att installera Docker laddar du i Windows och macOS ned installationsprogrammet för Docker Desktop från docker.com. I Windows måste WSL 2 vara aktiverat först. I Linux installeras Docker Engine från det officiella paketförrådet. Kör kommandot docker run hello-world efter installationen. Ser du välkomstmeddelandet fungerar Docker. För projekt med flera tjänster används docker compose.
Vad är Docker och vad används det till?
Docker är en plattform som paketerar en applikation med allt den behöver och kör den i isolerade miljöer som kallas containrar. Applikationen, biblioteken och inställningarna samlas i en enda image som beter sig likadant var den än körs.
I praktiken försvinner problemet »det fungerade på min dator« till stor del. Utvecklarens bärbara dator, testservern och produktionsservern använder samma image. En ny teammedlem startar projektet med ett enda kommando i stället för att installera i timmar.
Containrar liknar virtuella maskiner men är mycket lättare. Varje container har inte något eget operativsystem utan delar värdens kärna, så den startar på några sekunder och använder få resurser.
| Begrepp | Kort förklaring |
|---|---|
| Image | Skrivskyddad mall för applikationen, byggd från en Dockerfile |
| Container | En körande instans som startats från en image |
| Dockerfile | Textfil som beskriver hur imagen byggs |
| Volume | Lagringsutrymme för data som finns kvar även om containern tas bort |
| Docker Hub | Öppet register med färdiga images |
| Docker Compose | Verktyg som styr flera containrar med en enda fil |
Krav före installationen
Docker Desktop kör en liten virtuell miljö i bakgrunden, så datorns stöd för virtualisering måste vara aktiverat. På de flesta nya datorer är det på som standard. Annars aktiverar du Intel VT-x eller AMD-V i BIOS/UEFI-inställningarna.
I Windows kör Docker Desktop Linux-containrar på WSL 2. Om WSL inte är installerat gör du det först. Stegen beskriver vi i detalj i vår guide om att installera WSL.
- Minne: Om flera containrar ska köras samtidigt ger minst 8 GB RAM ett bekvämt arbetsläge.
- Diskutrymme: Images samlas på hög med tiden, så reservera några tiotals GB ledigt utrymme.
- Licens: Docker Desktop är gratis för personligt bruk, utbildning och mindre företag under en viss storlek. Större organisationer behöver en betald prenumeration. Kontrollera aktuella villkor på docker.com.
wsl --install
# Starta om datorn efter installationen och kontrollera sedan
wsl --statusDocker Desktop i Windows och macOS
Docker Desktop innehåller Docker Engine, kommandoradsverktyget, Docker Compose och en grafisk kontrollpanel i ett enda paket. Ladda ned installationsprogrammet från den officiella webbplatsen och installera med standardinställningarna.
Se till att alternativet Use WSL 2 instead of Hyper-V är ikryssat under installationen i Windows. I macOS väljer du versionen som passar din processor: Apple Silicon (M-serien) eller Intel. Starta appen efter installationen. När valsymbolen i menyraden eller aktivitetsfältet står stilla är Docker redo.
winget install -e --id Docker.DockerDesktopInstallera Docker Engine i Linux
I Linux körs Docker direkt som Docker Engine utan Docker Desktop, och det är också standardmetoden för servrar. Det säkraste sättet är att följa den officiella dokumentationens anvisningar för paketförrådet som passar din distribution. För utvecklingsmaskiner gör Dockers officiella bekvämlighetsskript samma sak i ett enda steg.
Om du lägger till din användare i gruppen docker efter installationen slipper du skriva sudo före varje kommando. Gruppen ger nästan root-behörighet, så lägg bara till användare du litar på.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# för användning utan sudo
sudo usermod -aG docker $USER
newgrp docker
# Starta tjänsten vid uppstart
sudo systemctl enable --now dockerKontrollera installationen
Oavsett operativsystem är kontrollkommandona desamma. Imagen hello-world laddas ned från Docker Hub, körs, skriver ut en förklaring och avslutas. Ser du den utskriften fungerar kedjan med klient, motor och nedladdning av images som den ska.
docker --version
docker compose version
docker run hello-worldKör din första container
Vi fortsätter med ett riktigt exempel: vi startar nginx, en lättviktig webbserver, som container och öppnar den i webbläsaren. Flaggan -d kör containern i bakgrunden, och -p 8080:80 kopplar datorns port 8080 till containerns port 80.
När kommandot har körts öppnar du http://localhost:8080 i webbläsaren och ska se nginx välkomstsida. Med kommandona nedan kan du övervaka containern, gå in i den och städa upp.
docker run -d -p 8080:80 --name web nginx
# Körande containrar
docker ps
# Följ loggarna
docker logs web
# Öppna ett skal i containern
docker exec -it web sh
# Durdur ve sil
docker stop web
docker rm web
# Nedladdade avbildningar
docker imagesPublicera dina egna filer
För att koppla HTML-filer från en mapp till containern används en bind mount. Kommandot nedan kopplar mappen du står i, skrivskyddat, till nginx publiceringsmapp. När du redigerar filen och laddar om sidan ser du ändringen direkt.
docker run -d -p 8080:80 -v "$(pwd)":/usr/share/nginx/html:ro --name site nginxBygg din egen image
För att göra en Node.js-applikation till en image lägger du en fil som heter Dockerfile i projektets rot. Om du först kopierar package-filerna och installerar beroendena slipper det lagret byggas om när koden ändras, vilket snabbar upp bygget.
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]docker build -t uygulamam .
docker run -d -p 3000:3000 uygulamamFlera tjänster med Docker Compose
Riktiga projekt består oftast av flera delar: en webbserver, en databas och kanske en cache. I stället för att starta var och en med separata docker run-kommandon definierar du allt i en enda compose.yaml-fil med Docker Compose.
Exemplet nedan startar en nginx-webbserver tillsammans med en MariaDB-databas. Databasfilerna ligger i en namngiven volume, så data bevaras även om containern tas bort. Raden version som syns i äldre exempel behövs inte längre.
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html:ro
depends_on:
- db
db:
image: mariadb:lts
environment:
MARIADB_ROOT_PASSWORD: degistirin
MARIADB_DATABASE: uygulama
volumes:
- db-veri:/var/lib/mysql
volumes:
db-veri:docker compose up -d
docker compose ps
docker compose logs -f
docker compose down
# Volume'larla birlikte sil (veriler gider)
docker compose down -vVanliga fel och lösningar
Problem vid installation av Docker handlar oftast om virtualisering, behörigheter och portkonflikter. Om images och stoppade containrar med tiden fyller disken rensar docker system prune bort oanvända resurser. Kommandot ber om bekräftelse innan det tar bort något.
- Fel med WSL 2 / virtualisering: Aktivera virtualisering i BIOS, uppdatera WSL med wsl --update och starta om datorn.
- port is already allocated: Porten du valt används av en annan applikation. Välj en annan port, till exempel -p 8081:80, eller stäng programmet som krockar.
- permission denied ... docker.sock: I Linux ligger din användare inte i gruppen docker. Logga ut och in igen efter usermod-kommandot.
- Cannot connect to the Docker daemon: Docker Desktop är stängt, eller så körs inte tjänsten i Linux. Starta den med sudo systemctl start docker.
- Varning om image-arkitektur på Mac: Vissa images publiceras bara för x86. Välj om möjligt en tagg med stöd för ARM.
Vad ger Docker webbprojekt?
Docker ser till att ett webbprojekts utvecklings-, test- och produktionsmiljöer är identiska. Att köra ett projekt med PHP och databas i containrar i stället för i enmaskinspaket som XAMPP minskar överraskningar som beror på versionsskillnader. För att hantera PHP-beroenden i containern kan du även titta på vår guide om att installera Composer.
Reproducerbara miljöer gör det lättare för förbättringar av hastighet och prestanda att ge samma resultat i produktion. Den här konsekvensen är extra viktig för integrerade lösningar där flera system samverkar och för en växande e-handelsplattform.
För fler texter om containrar och servrar kan du titta på vår sida för Docker-taggen.
Vanliga frågor
01Vad är skillnaden mellan Docker och en virtuell maskin?
En virtuell maskin har ett eget operativsystem, tar flera gigabyte i anspråk och startar på några minuter. En container delar värdens kärna, kan stanna på några megabyte och startar på några sekunder. Däremot är isoleringen inte lika stark som i en virtuell maskin.
02Kan man använda Docker i Windows utan Docker Desktop?
Ja. Du kan installera Docker Engine direkt i en Linux-distribution under WSL 2. Metoden ger frihet när det gäller licensen, men du avstår från bekvämligheter som den grafiska panelen och automatiska uppdateringar.
03Försvinner min data om containern tas bort?
Data som skrivs inuti containern försvinner när containern tas bort. Data som måste finnas kvar, till exempel databasfiler, kopplar du utanför containern med en volume eller bind mount. Kom ihåg att docker compose down -v också tar bort volumerna.
04Används Docker på produktionsservrar?
Ja, många applikationer körs som containrar i produktion. Men säkerhetskopiering, uppdateringar, loggövervakning och säkerhetsinställningar måste planeras separat i produktionsmiljön. En exakt kopia av installationen på utvecklingsmaskinen räcker inte.
När du har installerat Docker och kört din första container har du fått en reproducerbar ordning där projekten startar likadant på varje maskin. Vill du ha skräddarsydd mjukvara för ditt företag som utvecklas i den här ordningen och är lätt att underhålla, ta en titt på Aurora Yazılıms skräddarsydda mjukvarulösningar eller kontakta oss.


