Grunnleggende Docker og DevOps · leksjon

Grunnleggende om containernettverk

Forstå Dockers standardnettverk og bridgenettverk, og hvordan containere finner hverandre.

Leksjon 1 av 411 trinn

Grunnleggende om containernettverk er en gratis leksjon i Grunnleggende Docker og DevOps på CoddyKit. Dette er leksjon 1 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.

Hvorfor nettverk mellom containere?

Containere er utformet for å være isolerte, noe som er bra for sikkerhet og portabilitet. For at applikasjoner skal være nyttige, må de imidlertid ofte kommunisere med hverandre og omverdenen.

Det er her Docker-nettverk kommer inn! Det gjør at containere kan kommunisere sikkert og effektivt.

Grunnleggende om containernettverk — illustrasjon 1

Dockers standard bridge-nettverk

Når De kjører en container uten å angi et nettverk, kobler Docker den automatisk til standard bridge-nettverk. Dette nettverket heter bridge.

Containere på dette nettverket kan kommunisere med hverandre ved hjelp av IP-adressene sine, og de får også tilgang til internett.

Undersøke Docker-nettverk

De kan enkelt se alle Docker-nettverkene som er tilgjengelige på systemet. Kommandoen docker network ls lister dem opp, mens docker network inspect viser detaljert konfigurasjon for et bestemt nettverk.

Prøv å liste opp nettverkene:

docker network ls

IP-adresser for containere

Hver container som er koblet til et bridge-nettverk (standard eller brukerdefinert), får tildelt sin egen unike IP-adresse av Dockers interne DNS-server.

Denne IP-adressen gjør at andre containere på samme nettverk kan nå den. La oss se IP-adressen til en container:

docker run --rm -it alpine ip a

Kommunikasjon på standard bridge-nettverk

På standardnettverket bridge kan containere kommunisere med hverandre ved hjelp av de tildelte IP-adressene. IP-adresser kan imidlertid endres, noe som gjør denne metoden mindre pålitelig for dynamiske applikasjoner.

For bedre oppdagelse og kommunikasjon mellom containere ved hjelp av navn er brukerdefinerte bridge-nettverk den moderne og anbefalte løsningen.

Brukerdefinerte bridge-nettverk

Brukerdefinerte bridge-nettverk har betydelige fordeler fremfor standardnettverket:

  • Automatisk DNS-oppløsning: Containere på samme brukerdefinerte nettverk kan finne hverandre ved hjelp av tjenestenavnet (containernavnet).
  • Bedre isolasjon: De gir bedre isolasjon for applikasjonene.
  • Konfigurerbarhet: De gir Dem mer kontroll over nettverksinnstillingene.

Demo: Kommunisere ved hjelp av navn

La oss opprette et tilpasset nettverk, kjøre en Nginx-webserver på det og deretter bruke en annen container til å få tilgang til Nginx-serveren ved hjelp av navnet. Se hvor enkelt det er!

docker network create my-app-net
docker run -d --name webserver --network my-app-net nginx
docker run --rm --network my-app-net alpine sh -c "apk add curl && curl -s http://webserver"
docker rm -f webserver
docker network rm my-app-net

Eksponere porter til verten

For å få tilgang til en tjeneste i en container fra vertsmaskinen eller et eksternt nettverk må De «publisere» eller «tilordne» porten ved hjelp av flagget -p eller --publish.

For eksempel tilordner -p 8080:80 port 8080 på verten til port 80 i containeren.

docker run -d --name my-webserver -p 8080:80 nginx
# To check, open http://localhost:8080 in your browser
# Then, clean up the container:
docker rm -f my-webserver

Andre nettverksdrivere

I tillegg til bridge-nettverk tilbyr Docker andre nettverksdrivere for bestemte bruksområder:

  • Host: Containeren deler vertens nettverksstakk og mister isolasjonen.
  • None: Containeren har ingen nettverksgrensesnitt.
  • Overlay: Brukes av Docker Swarm for å muliggjøre kommunikasjon på tvers av flere Docker-daemoner på forskjellige verter.

Hver driver har et eget formål i ulike utrullingsscenarioer.

Nettverksutfordring

Hvilke utsagn om Dockers standardnettverk bridge og brukerdefinerte bridge-nettverk er riktige?

Oppsummering: Grunnleggende nettverk

Vi har gått gjennom det grunnleggende innen Docker-nettverk:

  • Standardnettverket bridge gjør at containere kan kommunisere via IP.
  • Brukerdefinerte bridge-nettverk anbefales for automatisk DNS-oppløsning basert på navn og bedre isolasjon.
  • Vi har lært hvordan containere kan kommunisere med hverandre, og hvordan containerporter kan eksponeres til verten.
  • Vi har også vært kort innom andre nettverksdrivere, som host og overlay.

Det er avgjørende å forstå nettverk for å bygge sammenkoblede applikasjoner i containere. Deretter skal vi se nærmere på håndtering av permanente data med Docker Volumes!

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 «Grunnleggende om containernettverk» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Docker og DevOps, inkludert «Grunnleggende om containernettverk», 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 «Grunnleggende om containernettverk»?

Forstå Dockers standardnettverk og bridgenettverk, og hvordan containere finner hverandre. 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 1 av 4.

Hvor lang tid tar leksjonen «Grunnleggende om containernettverk»?

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. Grunnleggende om containernettverk
  2. Docker-volumer for varig lagring
  3. Bind mounts og tmpfs mounts
  4. Egendefinerte bridgenettverk og tjenesteoppdaging
← Tilbake til Grunnleggende Docker og DevOps