Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering af Multi-Container Applikationer | Arbejde med Docker Compose
Docker Essentials

Håndtering af Multi-Container Applikationer

Stryg for at vise menuen

Ved opbygning af moderne applikationer er det ofte nødvendigt at køre flere tjenester sammen—såsom webservere, databaser og caches—der skal kommunikere og fungere som et samlet system. Docker Compose forenkler denne proces ved at lade dig definere alle dine tjenester, deres afhængigheder og hvordan de interagerer, alt sammen i én docker-compose.yml-fil.

Definition af afhængigheder og tjenesteforbindelser i docker-compose.yml

I din docker-compose.yml kan hver tjeneste erklære afhængigheder og specificere, hvordan den forbinder til andre. Nøglen depends_on gør det muligt at definere opstartsrækkefølgen for tjenester, så du for eksempel sikrer, at en database kører, før din applikation forsøger at oprette forbindelse. Derudover opretter Compose automatisk et standardnetværk for dit projekt, hvilket gør det nemt for tjenester at finde og kommunikere med hinanden via tjenestenavne.

Antag, at du har en webapplikation, der er afhængig af en database. I din Compose-fil defineres tjenesterne således:

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Her:

  • Tjenesten app er afhængig af db;
  • Compose starter databasecontaineren før applikationen;
  • Begge tjenester kan referere til hinanden ved at bruge tjenestenavnene som værtsnavne inden for Compose-netværket.

Strategier for skalering af tjenester og opdatering af konfigurationer

Docker Compose gør det nemt at skalere tjenester horisontalt. Hvis din applikation skal håndtere mere trafik, kan du øge antallet af containere for en tjeneste ved at bruge flaget --scale, når du kører docker compose up.

For at køre tre instanser af din applikationstjeneste, brug:

docker compose up --scale app=3
  • Denne kommando starter tre containere for tjenesten app;
  • Alle containere er forbundet til det samme netværk og kan dele ressourcer, såsom en database;
  • Ved skalering skal du sikre, at dine tjenester er stateless eller kan håndtere flere instanser korrekt.

Opdatering af konfigurationer i et Compose-miljø er ligetil:

  • Rediger din docker-compose.yml—for eksempel ændr miljøvariabler, ressourcebegrænsninger eller tjenestebilleder;
  • Anvend ændringerne med følgende kommando:
docker compose up -d
  • Denne kommando genskaber kun de tjenester, hvis konfiguration er ændret, hvilket minimerer nedetid.

Overvågning og fejlfinding af multi-container applikationer med Compose

Når der køres flere containere, er overvågning og fejlfinding afgørende. Docker Compose tilbyder værktøjer, der hjælper dig med at observere sundhedstilstand og logfiler for dine tjenester. Du kan se output fra alle containere i realtid med:

docker compose logs -f

Denne kommando streamer logfiler fra alle tjenester, hvilket gør det lettere at opdage fejl eller problemer, efterhånden som de opstår. Hvis du vil fokusere på en bestemt tjeneste, angiv dens navn:

docker compose logs db

Til fejlfinding kan du gå ind i en kørende container ved at bruge:

docker compose exec app sh

Denne kommando giver dig en shell inde i app-containeren, så du kan inspicere filer, køre diagnostiske kommandoer eller tjekke miljøvariabler. Overvågning af ressourceforbrug og containeres sundhed kan også udføres med standard Docker-værktøjer, såsom docker stats.

1. Hvilken nøgle i en docker-compose.yml-fil sikrer, at én service starter før en anden?

2. Hvordan skalerer du en service med navnet worker til fem instanser ved hjælp af Docker Compose?

3. Hvilken kommando bruges til at se live-logs fra alle kørende services i en Compose-applikation?

question mark

Hvilken nøgle i en docker-compose.yml-fil sikrer, at én service starter før en anden?

Vælg det korrekte svar

question mark

Hvordan skalerer du en service med navnet worker til fem instanser ved hjælp af Docker Compose?

Vælg det korrekte svar

question mark

Hvilken kommando bruges til at se live-logs fra alle kørende services i en Compose-applikation?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Håndtering af Multi-Container Applikationer

Ved opbygning af moderne applikationer er det ofte nødvendigt at køre flere tjenester sammen—såsom webservere, databaser og caches—der skal kommunikere og fungere som et samlet system. Docker Compose forenkler denne proces ved at lade dig definere alle dine tjenester, deres afhængigheder og hvordan de interagerer, alt sammen i én docker-compose.yml-fil.

Definition af afhængigheder og tjenesteforbindelser i docker-compose.yml

I din docker-compose.yml kan hver tjeneste erklære afhængigheder og specificere, hvordan den forbinder til andre. Nøglen depends_on gør det muligt at definere opstartsrækkefølgen for tjenester, så du for eksempel sikrer, at en database kører, før din applikation forsøger at oprette forbindelse. Derudover opretter Compose automatisk et standardnetværk for dit projekt, hvilket gør det nemt for tjenester at finde og kommunikere med hinanden via tjenestenavne.

Antag, at du har en webapplikation, der er afhængig af en database. I din Compose-fil defineres tjenesterne således:

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Her:

  • Tjenesten app er afhængig af db;
  • Compose starter databasecontaineren før applikationen;
  • Begge tjenester kan referere til hinanden ved at bruge tjenestenavnene som værtsnavne inden for Compose-netværket.

Strategier for skalering af tjenester og opdatering af konfigurationer

Docker Compose gør det nemt at skalere tjenester horisontalt. Hvis din applikation skal håndtere mere trafik, kan du øge antallet af containere for en tjeneste ved at bruge flaget --scale, når du kører docker compose up.

For at køre tre instanser af din applikationstjeneste, brug:

docker compose up --scale app=3
  • Denne kommando starter tre containere for tjenesten app;
  • Alle containere er forbundet til det samme netværk og kan dele ressourcer, såsom en database;
  • Ved skalering skal du sikre, at dine tjenester er stateless eller kan håndtere flere instanser korrekt.

Opdatering af konfigurationer i et Compose-miljø er ligetil:

  • Rediger din docker-compose.yml—for eksempel ændr miljøvariabler, ressourcebegrænsninger eller tjenestebilleder;
  • Anvend ændringerne med følgende kommando:
docker compose up -d
  • Denne kommando genskaber kun de tjenester, hvis konfiguration er ændret, hvilket minimerer nedetid.

Overvågning og fejlfinding af multi-container applikationer med Compose

Når der køres flere containere, er overvågning og fejlfinding afgørende. Docker Compose tilbyder værktøjer, der hjælper dig med at observere sundhedstilstand og logfiler for dine tjenester. Du kan se output fra alle containere i realtid med:

docker compose logs -f

Denne kommando streamer logfiler fra alle tjenester, hvilket gør det lettere at opdage fejl eller problemer, efterhånden som de opstår. Hvis du vil fokusere på en bestemt tjeneste, angiv dens navn:

docker compose logs db

Til fejlfinding kan du gå ind i en kørende container ved at bruge:

docker compose exec app sh

Denne kommando giver dig en shell inde i app-containeren, så du kan inspicere filer, køre diagnostiske kommandoer eller tjekke miljøvariabler. Overvågning af ressourceforbrug og containeres sundhed kan også udføres med standard Docker-værktøjer, såsom docker stats.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt