Grunnleggende Docker og DevOps · leksjon

Distribuere tjenester til Swarm

Distribuer og skaler containeriserte applikasjoner som tjenester i Swarm-klyngen, og administrer livssyklusen deres.

Leksjon 3 av 411 trinn

Distribuere tjenester til Swarm er en gratis leksjon i Grunnleggende Docker og DevOps på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende Docker og DevOps, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Docker og DevOps inneholder totalt 4 leksjoner.

Hva er en Docker Swarm-tjeneste?

I Docker Swarm er en service en definisjon av hvordan De ønsker å kjøre en containerisert applikasjon på tvers av klyngen.

I stedet for å kjøre individuelle containere definerer De en tjeneste for å fortelle Swarm: "Jeg vil kjøre X instanser av dette imaget, på disse portene, med disse innstillingene."

Swarm sørger deretter for at den ønskede tilstanden opprettholdes, og starter automatisk containere på nytt hvis de feiler.

Distribuere tjenester til Swarm — illustrasjon 1

Tjenester kontra containere

Tenk på det slik:

  • En container er én enkelt instans av en applikasjon.
  • En service er en oppskrift for å kjøre én eller flere identiske containere (kalt tasks) på tvers av Swarm.

Tjenester gir høy tilgjengelighet og skalerbarhet ved å distribuere oppgaver og håndtere feil automatisk.

Distribuere Deres første tjeneste

Kommandoen docker service create brukes til å distribuere applikasjoner som tjenester i Swarm-klyngen. La oss opprette en enkel Nginx-webservertjeneste.

Prøv å kjøre dette eksempelet:

docker service create \
  --name my-web-app \
  -p 80:80 \
  --replicas 1 \
  nginx

Forstå hvordan tjenester opprettes

La oss gå gjennom kommandoen vi nettopp brukte:

  • --name my-web-app: Gir tjenesten et lett gjenkjennelig navn.
  • -p 80:80: Kobler port 80 på Swarm-nodene til port 80 inne i containeren.
  • --replicas 1: Forteller Swarm at den skal opprettholde én kjørende instans (task) av denne tjenesten.
  • nginx: Angir Docker-imaget som skal brukes for tjenestens tasks.

Kontrollere tjenestene Deres

Etter at De har opprettet en tjeneste, vil De kontrollere statusen og se de kjørende oppgavene. Bruk disse kommandoene:

  • docker service ls: Viser alle tjenestene i Swarm.
  • docker service ps <service_name>: Viser de individuelle oppgavene (containerne) som er knyttet til en tjeneste.
docker service ls
docker service ps my-web-app

Oppskalere tjenesten

En av de viktigste fordelene med Docker Swarm er enkel skalering. De kan øke antallet kjørende instanser (replikaer) av tjenesten med én enkelt kommando.

La oss skalere my-web-app til tre replikaer:

docker service scale my-web-app=3

Nedskalere tjenesten

På samme enkle måte kan De skalere ned tjenesten for å redusere ressursbruken eller håndtere trafikk. Swarm stopper overflødige containere på en kontrollert måte, mens de resterende fortsetter å kjøre.

La oss skalere my-web-app ned til én replika igjen:

docker service scale my-web-app=1

Oppdatere en tjeneste

Når De må distribuere en ny versjon av applikasjonen eller endre tjenesteinnstillinger, utfører docker service update en rolling update. Swarm oppdaterer oppgavene én etter én, slik at applikasjonen forblir tilgjengelig.

La oss oppdatere Nginx-tjenesten til en bestemt versjon:

docker service update --image nginx:1.25 my-web-app

Fjerne en tjeneste

Når en tjeneste ikke lenger trengs, kan De fjerne den fra Swarm. Dette stopper alle tilknyttede oppgaver og sletter tjenestedefinisjonen fra klyngen.

For å fjerne eksempelwebapptjenesten vår:

docker service rm my-web-app

Quiz om tjenesteadministrasjon

De har en tjeneste med navnet my-backend som kjører med 3 replikaer og bruker imaget my-backend:v1. De må oppdatere den slik at den bruker et nytt image, my-backend:v2, og samtidig øke antallet replikaer til 5.

Oppsummering: Swarm-tjenester

Godt jobbet! De har lært det viktigste om å distribuere og administrere applikasjoner som tjenester i Docker Swarm.

  • Tjenester definerer ønsket tilstand for de containeriserte appene Deres.
  • De har lært å opprette tjenester med docker service create.
  • Vi har gått gjennom kontroll, skalering (docker service scale) og oppdatering (docker service update) av tjenester.
  • Til slutt kan De fjerne tjenester med docker service rm.

Tjenester er grunnleggende for å bygge skalerbare og robuste applikasjoner i en Swarm-klynge!

Gratis å komme i gang

Lær deg Grunnleggende Docker og DevOps med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Distribuere tjenester til Swarm» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Docker og DevOps, inkludert «Distribuere tjenester til Swarm», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende Docker og DevOps inneholder totalt 4 leksjoner.

Hva lærer jeg i «Distribuere tjenester til Swarm»?

Distribuer og skaler containeriserte applikasjoner som tjenester i Swarm-klyngen, og administrer livssyklusen deres. Du øver på Grunnleggende Docker og DevOps med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Grunnleggende Docker og DevOps?

Ingen tidligere erfaring er nødvendig. Grunnleggende Docker og DevOps på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Distribuere tjenester til Swarm»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Grunnleggende Docker og DevOps-leksjonen?

Ja. Alle Grunnleggende Docker og DevOps-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Docker Swarm
  2. Sette opp en Swarm-klynge
  3. Distribuere tjenester til Swarm
  4. Skalering og rullerende oppdateringer i Swarm
← Tilbake til Grunnleggende Docker og DevOps