Docker som automatisering

Skip to content

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.

Easy Oppgåve 1 – Sett opp Nginx med Docker Compose

Lag ein docker-compose.yml som køyrer ein Nginx-webserver:

  1. Lag ei ny mappe og opprett fila docker-compose.yml
  2. Definér ei teneste med image: nginx:latest på port 80
  3. Køyr docker compose up -d
  4. Besøk http://localhost i nettlesaren

Medium Oppgåve 2 – Legg til ei teneste

Utvid docker-compose.yml frå oppgåve 1 med ei ekstra teneste. Til dømes:

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