Docker-arkitektur og dens komponenter for nybegynnere

La oss bli kjent med Docker-arkitekturen og dens essensielle komponenter.

Jeg antar at du har en grunnleggende forståelse av Docker. Hvis ikke, kan du referere til denne forrige artikkelen.

Jeg tror du forstår viktigheten av Docker i DevOps. Nå bak dette fantastiske verktøyet, må det være en fantastisk, gjennomtenkt arkitektur. Ikke sant?

Men før jeg snakker om det, la meg vise frem de forrige og nåværende virtualiseringssystemene.

Tradisjonell vs. ny generasjons virtualisering

Tidligere pleide vi å lage virtuelle maskiner, og hver VM hadde et OS som tok mye plass og gjorde det tungt.

Nå i docker-containers tilfelle har du et enkelt OS, og ressursene deles mellom containerne. Derfor er den lett og støvler på sekunder.

Docker-arkitektur

Nedenfor er det enkle diagrammet over en Docker-arkitektur.

La meg forklare deg komponentene i en docker-arkitektur.

Docker Engine

Det er kjernedelen av hele Docker-systemet. Docker Engine er en applikasjon som følger klient-server-arkitektur. Den er installert på vertsmaskinen. Det er tre komponenter i Docker Engine:

  • Server: Det er docker-demonen kalt dockerd. Den kan lage og administrere docker-bilder. Containere, nettverk osv.
  • Rest API: Den brukes til å instruere docker daemon hva den skal gjøre.
  • Kommandolinjegrensesnitt (CLI): Det er en klient som brukes til å legge inn docker-kommandoer.
  Hvordan bytte til redigeringsmodus i Excel

Docker-klient

Docker-brukere kan samhandle med Docker gjennom en klient. Når noen docker-kommandoer kjører, sender klienten dem til dockerd daemon, som utfører dem. Docker API brukes av Docker-kommandoer. Docker-klient kan kommunisere med mer enn én demon.

Docker-registre

Det er stedet der Docker-bildene er lagret. Det kan være et offentlig docker-register eller et privat docker-register. Docker Hub er standardstedet for docker-bilder, butikkenes offentlige register. Du kan også opprette og kjøre ditt eget private register.

Når du utfører docker pull eller docker run-kommandoer, hentes det nødvendige docker-bildet fra det konfigurerte registeret. Når du utfører docker-push-kommandoen, lagres docker-bildet i det konfigurerte registeret.

Docker-objekter

Når du jobber med Docker, bruker du bilder, containere, volumer, nettverk; alle disse er Docker-objekter.

Bilder

Docker-bilder er skrivebeskyttede maler med instruksjoner for å lage en docker-beholder. Docker-bilde kan hentes fra en Docker-hub og brukes som det er, eller du kan legge til flere instruksjoner til basisbildet og lage et nytt og modifisert docker-bilde. Du kan også lage dine egne docker-bilder ved å bruke en dockerfil. Lag en dockerfil med alle instruksjonene for å lage en beholder og kjøre den; det vil lage ditt tilpassede docker-bilde.

  Hvordan låse opp lag i Adobe Photoshop

Docker-bilde har et basislag som er skrivebeskyttet, og det øverste laget kan skrives. Når du redigerer en dockerfil og bygger den på nytt, blir bare den modifiserte delen gjenoppbygd i det øverste laget.

Containere

Etter at du har kjørt et docker-bilde, oppretter det en docker-beholder. Alle applikasjonene og deres miljø kjører inne i denne beholderen. Du kan bruke Docker API eller CLI til å starte, stoppe, slette en docker-beholder.

Nedenfor er en eksempelkommando for å kjøre en ubuntu docker-beholder:

docker run -i -t ubuntu /bin/bash

Volumer

De vedvarende dataene som genereres av docker og brukes av Docker-beholdere, lagres i Volumes. De administreres fullstendig av docker gjennom docker CLI eller Docker API. Volumer fungerer på både Windows- og Linux-beholdere. I stedet for å bestå data i en beholders skrivbare lag, er det alltid et godt alternativ å bruke volumer for det. Volumets innhold eksisterer utenfor livssyklusen til en beholder, så bruk av volum øker ikke størrelsen på en beholder.

Du kan bruke -v eller -mount flagg for å starte en beholder med et volum. I denne eksempelkommandoen bruker du geekvolume volum med tipsbilk.net container.

docker run -d --name tipsbilk.net  -v geekvolume:/app nginx:latest

Nettverk

Docker-nettverk er en passasje der alle de isolerte containerne kommuniserer. Det er hovedsakelig fem nettverksdrivere i docker:

  Hvordan sjekke om noen andre bruker Gmail-kontoen din
  • Bridge: Det er standard nettverksdriver for en container. Du bruker dette nettverket når applikasjonen din kjører på frittstående containere, dvs. flere containere som kommuniserer med samme docker-vert.
  • Vert: Denne driveren fjerner nettverksisolasjonen mellom docker-containere og docker-vert. Den brukes når du ikke trenger nettverksisolasjon mellom vert og beholder.
  • Overlegg: Dette nettverket gjør det mulig for svermtjenester å kommunisere med hverandre. Den brukes når containerne kjører på forskjellige Docker-verter eller når svermtjenester dannes av flere applikasjoner.
  • Ingen: Denne driveren deaktiverer all nettverksbygging.
  • macvlan: Denne driveren tildeler mac-adresse til containere for å få dem til å se ut som fysiske enheter. Trafikken rutes mellom containere gjennom deres mac-adresser. Dette nettverket brukes når du vil at beholderne skal se ut som en fysisk enhet, for eksempel mens du migrerer et VM-oppsett.
  • Konklusjon

    Jeg håper dette gir deg en idé om Docker-arkitektur og dens essensielle komponenter. Naviger rundt i Docker for å lære mer, og hvis du er interessert i å få praktisk opplæring, sjekk ut dette Docker Mastery-kurs.

    Likte du å lese artikkelen? Hva med å dele med verden?