Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Administrasjon av Applikasjoner med Flere Containere | Arbeide med Docker Compose
Docker-essensielt

bookAdministrasjon av Applikasjoner med Flere Containere

Når du bygger moderne applikasjoner, må du ofte kjøre flere tjenester sammen—som webservere, databaser og mellomlagre—som må kommunisere og fungere som et samlet system. Docker Compose forenkler denne prosessen ved å la deg definere alle tjenestene dine, deres avhengigheter og hvordan de samhandler, alt i én enkelt docker-compose.yml-fil.

Definere avhengigheter og tjenestekoblinger i docker-compose.yml

I din docker-compose.yml kan hver tjeneste deklarere avhengigheter og spesifisere hvordan den kobler seg til andre. Nøkkelen depends_on lar deg definere oppstartsrekkefølgen for tjenester, og sikrer for eksempel at en database kjører før applikasjonen prøver å koble til. I tillegg oppretter Compose automatisk et standard nettverk for prosjektet ditt, noe som gjør det enkelt for tjenester å oppdage og kommunisere med hverandre ved hjelp av tjenestenavn.

Anta at du har en webapplikasjon som er avhengig av en database. I Compose-filen din definerer du tjenester slik:

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

Her:

  • Tjenesten app er avhengig av db;
  • Compose vil starte databasecontaineren før applikasjonen;
  • Begge tjenestene kan referere til hverandre ved å bruke tjenestenavnene som vertsnavn innenfor Compose-nettverket.

Strategier for skalering av tjenester og oppdatering av konfigurasjoner

Docker Compose gjør det enkelt å skalere tjenester horisontalt. Hvis applikasjonen din må håndtere mer trafikk, kan du øke antallet containere for en tjeneste ved å bruke flagget --scale når du kjører docker compose up.

For å kjøre tre instanser av applikasjonstjenesten din, bruk:

docker compose up --scale app=3
  • Denne kommandoen starter tre containere for app-tjenesten;
  • Alle containere er koblet til det samme nettverket og kan dele ressurser, som en database;
  • Ved skalering må du sikre at tjenestene dine er tilstandsløse eller kan håndtere flere instanser korrekt.

Oppdatering av konfigurasjoner i et Compose-miljø er enkelt:

  • Endre din docker-compose.yml—for eksempel endre miljøvariabler, ressursgrenser eller tjenestebilder;
  • Bruk følgende kommando for å anvende endringene:
docker compose up -d
  • Denne kommandoen gjenskaper kun tjenestene hvis konfigurasjon er endret, noe som minimerer nedetid.

Overvåking og feilsøking av applikasjoner med flere containere i Compose

Når du kjører flere containere, er overvåking og feilsøking avgjørende. Docker Compose tilbyr verktøy som hjelper deg å observere helsetilstand og logger for tjenestene dine. Du kan vise utdata fra alle containere i sanntid med:

docker compose logs -f

Denne kommandoen strømmer logger fra alle tjenester, noe som gjør det enklere å oppdage feil eller problemer når de oppstår. Hvis du trenger å fokusere på en bestemt tjeneste, spesifiser navnet:

docker compose logs db

For feilsøking kan du gå inn i en kjørende container ved å bruke:

docker compose exec app sh

Denne kommandoen gir deg et skall inne i app-containeren, slik at du kan inspisere filer, kjøre diagnostiske kommandoer eller sjekke miljøvariabler. Overvåking av ressursbruk og containerhelse kan også gjøres med standard Docker-verktøy, som docker stats.

1. Hvilken nøkkel i en docker-compose.yml-fil sikrer at én tjeneste starter før en annen?

2. Hvordan skalerer du en tjeneste kalt worker til fem instanser ved bruk av Docker Compose?

3. Hvilken kommando bruker du for å vise sanntidslogger fra alle kjørende tjenester i en Compose-applikasjon?

question mark

Hvilken nøkkel i en docker-compose.yml-fil sikrer at én tjeneste starter før en annen?

Select the correct answer

question mark

Hvordan skalerer du en tjeneste kalt worker til fem instanser ved bruk av Docker Compose?

Select the correct answer

question mark

Hvilken kommando bruker du for å vise sanntidslogger fra alle kjørende tjenester i en Compose-applikasjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain how to use environment variables in docker-compose.yml?

What are some best practices for managing secrets with Docker Compose?

How do I connect an external service (like Redis) to my Compose network?

Awesome!

Completion rate improved to 7.14

bookAdministrasjon av Applikasjoner med Flere Containere

Sveip for å vise menyen

Når du bygger moderne applikasjoner, må du ofte kjøre flere tjenester sammen—som webservere, databaser og mellomlagre—som må kommunisere og fungere som et samlet system. Docker Compose forenkler denne prosessen ved å la deg definere alle tjenestene dine, deres avhengigheter og hvordan de samhandler, alt i én enkelt docker-compose.yml-fil.

Definere avhengigheter og tjenestekoblinger i docker-compose.yml

I din docker-compose.yml kan hver tjeneste deklarere avhengigheter og spesifisere hvordan den kobler seg til andre. Nøkkelen depends_on lar deg definere oppstartsrekkefølgen for tjenester, og sikrer for eksempel at en database kjører før applikasjonen prøver å koble til. I tillegg oppretter Compose automatisk et standard nettverk for prosjektet ditt, noe som gjør det enkelt for tjenester å oppdage og kommunisere med hverandre ved hjelp av tjenestenavn.

Anta at du har en webapplikasjon som er avhengig av en database. I Compose-filen din definerer du tjenester slik:

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

Her:

  • Tjenesten app er avhengig av db;
  • Compose vil starte databasecontaineren før applikasjonen;
  • Begge tjenestene kan referere til hverandre ved å bruke tjenestenavnene som vertsnavn innenfor Compose-nettverket.

Strategier for skalering av tjenester og oppdatering av konfigurasjoner

Docker Compose gjør det enkelt å skalere tjenester horisontalt. Hvis applikasjonen din må håndtere mer trafikk, kan du øke antallet containere for en tjeneste ved å bruke flagget --scale når du kjører docker compose up.

For å kjøre tre instanser av applikasjonstjenesten din, bruk:

docker compose up --scale app=3
  • Denne kommandoen starter tre containere for app-tjenesten;
  • Alle containere er koblet til det samme nettverket og kan dele ressurser, som en database;
  • Ved skalering må du sikre at tjenestene dine er tilstandsløse eller kan håndtere flere instanser korrekt.

Oppdatering av konfigurasjoner i et Compose-miljø er enkelt:

  • Endre din docker-compose.yml—for eksempel endre miljøvariabler, ressursgrenser eller tjenestebilder;
  • Bruk følgende kommando for å anvende endringene:
docker compose up -d
  • Denne kommandoen gjenskaper kun tjenestene hvis konfigurasjon er endret, noe som minimerer nedetid.

Overvåking og feilsøking av applikasjoner med flere containere i Compose

Når du kjører flere containere, er overvåking og feilsøking avgjørende. Docker Compose tilbyr verktøy som hjelper deg å observere helsetilstand og logger for tjenestene dine. Du kan vise utdata fra alle containere i sanntid med:

docker compose logs -f

Denne kommandoen strømmer logger fra alle tjenester, noe som gjør det enklere å oppdage feil eller problemer når de oppstår. Hvis du trenger å fokusere på en bestemt tjeneste, spesifiser navnet:

docker compose logs db

For feilsøking kan du gå inn i en kjørende container ved å bruke:

docker compose exec app sh

Denne kommandoen gir deg et skall inne i app-containeren, slik at du kan inspisere filer, kjøre diagnostiske kommandoer eller sjekke miljøvariabler. Overvåking av ressursbruk og containerhelse kan også gjøres med standard Docker-verktøy, som docker stats.

1. Hvilken nøkkel i en docker-compose.yml-fil sikrer at én tjeneste starter før en annen?

2. Hvordan skalerer du en tjeneste kalt worker til fem instanser ved bruk av Docker Compose?

3. Hvilken kommando bruker du for å vise sanntidslogger fra alle kjørende tjenester i en Compose-applikasjon?

question mark

Hvilken nøkkel i en docker-compose.yml-fil sikrer at én tjeneste starter før en annen?

Select the correct answer

question mark

Hvordan skalerer du en tjeneste kalt worker til fem instanser ved bruk av Docker Compose?

Select the correct answer

question mark

Hvilken kommando bruker du for å vise sanntidslogger fra alle kjørende tjenester i en Compose-applikasjon?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
some-alt