Docker-arkitektur og dens komponenter for begyndere

Lad os blive fortrolige med Docker-arkitekturen og dens væsentlige komponenter.

Jeg antager, at du har en grundlæggende forståelse af Docker. Hvis ikke, kan du henvise til denne tidligere artikel.

Jeg tror, ​​du forstår Docker-betydningen i DevOps. Nu bag dette fantastiske værktøj skal der være en fantastisk, gennemtænkt arkitektur. Er det ikke?

Men før jeg taler om det, lad mig fremvise de tidligere og nuværende virtualiseringssystemer.

Traditionel vs. ny generations virtualisering

Tidligere plejede vi at skabe virtuelle maskiner, og hver VM havde et OS, som tog meget plads og gjorde det tungt.

Nu i docker-containers tilfælde har du et enkelt OS, og ressourcerne deles mellem containerne. Derfor er den let og støvler på få sekunder.

Docker-arkitektur

Nedenfor er det enkle diagram af en Docker-arkitektur.

Lad mig forklare dig komponenterne i en docker-arkitektur.

Docker Engine

Det er kernedelen af ​​hele Docker-systemet. Docker Engine er en applikation, der følger klient-server-arkitektur. Det er installeret på værtsmaskinen. Der er tre komponenter i Docker Engine:

  • Server: Det er docker-dæmonen kaldet dockerd. Det kan oprette og administrere docker-billeder. Containere, netværk mv.
  • Rest API: Den bruges til at instruere docker-dæmonen, hvad den skal gøre.
  • Command Line Interface (CLI): Det er en klient, der bruges til at indtaste docker-kommandoer.
  Guide og gratis skabeloner [2022]

Docker-klient

Docker-brugere kan interagere med Docker gennem en klient. Når nogen docker-kommandoer kører, sender klienten dem til dockerd daemon, som udfører dem. Docker API bruges af Docker-kommandoer. Docker-klient kan kommunikere med mere end én dæmon.

Docker registre

Det er stedet, hvor Docker-billederne er gemt. Det kan være et offentligt docker-register eller et privat docker-register. Docker Hub er standardstedet for docker-billeder, dets butikkers offentlige register. Du kan også oprette og køre dit eget private register.

Når du udfører docker pull- eller docker run-kommandoer, hentes det påkrævede docker-image fra den konfigurerede registreringsdatabasen. Når du udfører docker push-kommando, gemmes docker-billedet i den konfigurerede registreringsdatabasen.

Docker-objekter

Når du arbejder med Docker, bruger du billeder, containere, volumener, netværk; alle disse er Docker-objekter.

Billeder

Docker-billeder er skrivebeskyttede skabeloner med instruktioner til at oprette en docker-container. Docker-billede kan trækkes fra en Docker-hub og bruges som det er, eller du kan tilføje yderligere instruktioner til basisbilledet og oprette et nyt og ændret docker-billede. Du kan også oprette dine egne docker-billeder ved hjælp af en dockerfil. Opret en dockerfil med alle instruktionerne til at oprette en container og køre den; det vil oprette dit brugerdefinerede docker-billede.

  Sådan redigeres et sidehoved og sidefod i PowerPoint

Docker-billede har et basislag, som er skrivebeskyttet, og det øverste lag kan skrives. Når du redigerer en dockerfil og genopbygger den, er det kun den ændrede del, der genopbygges i det øverste lag.

Containere

Når du har kørt et docker-image, opretter det en docker-container. Alle applikationer og deres miljø kører inde i denne beholder. Du kan bruge Docker API eller CLI til at starte, stoppe, slette en docker-container.

Nedenfor er en eksempelkommando til at køre en ubuntu docker-container:

docker run -i -t ubuntu /bin/bash

Bind

De vedvarende data, der genereres af docker og bruges af Docker-containere, gemmes i Volumes. De administreres fuldstændigt af docker gennem docker CLI eller Docker API. Volumener fungerer på både Windows- og Linux-containere. I stedet for at fastholde data i en containers skrivbare lag, er det altid en god mulighed at bruge volumener til det. Volumenets indhold eksisterer uden for en beholders livscyklus, så brug af volumen øger ikke størrelsen på en beholder.

Du kan bruge -v eller -mount flag til at starte en container med et volumen. I denne eksempelkommando bruger du geekvolume volumen med toadmin.dk container.

docker run -d --name toadmin.dk  -v geekvolume:/app nginx:latest

Netværk

Docker-netværk er en passage, hvorigennem alle de isolerede containere kommunikerer. Der er hovedsageligt fem netværksdrivere i docker:

  Intel Macs vs. Apple Silicon ARM Macs: Hvilken skal du købe?
  • Bridge: Det er standard netværksdriveren for en container. Du bruger dette netværk, når din applikation kører på selvstændige containere, dvs. flere containere, der kommunikerer med samme docker-vært.
  • Vært: Denne driver fjerner netværksisolationen mellem docker-containere og docker-vært. Det bruges, når du ikke har brug for nogen netværksisolering mellem vært og container.
  • Overlejring: Dette netværk gør det muligt for sværmtjenester at kommunikere med hinanden. Det bruges, når containerne kører på forskellige Docker-værter, eller når sværmtjenester er dannet af flere applikationer.
  • Ingen: Denne driver deaktiverer al netværksforbindelse.
  • macvlan: Denne driver tildeler mac-adresse til containere for at få dem til at ligne fysiske enheder. Trafikken dirigeres mellem containere gennem deres mac-adresser. Dette netværk bruges, når du ønsker, at containerne skal ligne en fysisk enhed, for eksempel, mens du migrerer en VM-opsætning.
  • Konklusion

    Jeg håber, at dette giver dig en idé om Docker-arkitektur og dens væsentlige komponenter. Naviger rundt i Docker for at lære mere, og hvis du er interesseret i at få praktisk træning, så tjek dette Docker Mastery kursus.

    Nydt at læse artiklen? Hvad med at dele med verden?