Administrasjon 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
apper avhengig avdb; - 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?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 7.14
Administrasjon 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
apper avhengig avdb; - 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?
Takk for tilbakemeldingene dine!