Dette er ein maskinomsett tekst som kann innehalda feil!
Docker letnar utrulling av applikasjonar. I staden for å installera og konfigurera programvara manuelt på ein server, definerer du alt i konfigurasjonsfiler. Resultatet er reproduserbart, portabelt og raskt å setja upp.
Kva er Docker Compose?
Med Docker Compose definerer du fleire tenester i ei fil (docker-compose.yml). Kvar teneste er ein container med si eiga konfigurering.
services:
web:
image: nginx:latest
ports:
- "80:80"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
Eit kommando set opp alt:
# Startar applikasjonen i bakgrunnen
docker compose up -d
Treng du å flytta tenesta til ein annan tenar? Kopier fila og køyra same kommandoen. Alt er identisk.
Kvifor er dette automatisering?
Tenk på skilnaden:
| Manuelt oppsett | Med Docker Compose |
|---|---|
| Installer Nginx manuelt | image: nginx:latest |
| Konfigurer porter | ports: "80:80" |
| Installer Grafana manuelt | image: grafana/grafana:latest |
| Dokumenter alle stega | Alt er dokumentert i .yml-fila |
| Gjenta alt på neste tenar | docker compose up -d |
Docker Compose-fila er dokumentasjonen. Ho skildrar nøyaktig kva tenester som køyrer, kva porter dei brukar og korleis dei er konfigurert.
Nyttige Docker-kommandoar
| Kommando | Kva ho gjer |
|---|---|
docker compose up -d | Startar alle tenestene i bakgrunnen |
docker compose down | Stoppar og fjernar alle containerane |
docker compose logs -f | Fylgjer loggane i sanntid |
docker compose pull | Hentar siste versjon av alle bilete |
docker compose restart | Restartar alle tenestene |
docker ps | Viser køyrande containerar |
Volumes: Lagra data utanfor containeren
Containerar er mellombelse. Um du slettar ein container, forsvinn alt innhaldet. For å halda på data brukar me volumes:
services:
database:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: hemmelig
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Her lagrast databasfilene i eit volum kalla db-data. Sjølv om du slettar og opprettar konteinaren på nytt, er dataene framleis der.
Oppdatering av tenester
Å uppdatera ei Docker-tenesta er enkelt:
# Hent siste versjon
docker compose pull
# Restart med ny versjon
docker compose up -d
Samanlikn dette med å uppdatera manuelt installert programvare, der du kanskje må lasta ned, konfigurera, og håpa at ingenting går i stykkar.
Oppgåve 1 – Sett opp Nginx med Docker Compose
Lag ein docker-compose.yml som køyrer ein Nginx-webserver:
- Lag ei ny mappe og opprett fila
docker-compose.yml - Definér ei teneste med
image: nginx:latestpå port 80 - Køyr
docker compose up -d - Besøk
http://localhosti nettlesaren
Oppgåve 2 – Legg til ei teneste
Utvid docker-compose.yml frå oppgåve 1 med ei ekstra teneste. Til dømes:
- Uptime Kuma på port 3001
- Grafana på port 3000
Start alt med docker compose up -d og sjå at begge tenestene køyrer samtidig.
Oppsummering
- Docker Compose let deg definera fleire tenester i ei fil
- Compose-fila er både konfigurasjon og dokumentasjon
- Volum lagrar data utanfor containeren slik at det overlever omstartar
- Oppdatering er
docker compose pull+docker compose up -d - Docker gjer det lett å flytta tenester mellom tenarar