Docker Architecture: Hvorfor er det viktig?



Denne bloggen diskuterer dockerarkitekturen og dens forskjellige komponenter. Den fremhever dockerfunksjonene som forteller oss årsaken til populariteten.

Mange av oss tror at Docker er en integrert del av . Så bak dette utrolige verktøyet må det være en fantastisk arkitektur. I denne bloggen vil jeg dekke alt du må vite om Docker-arkitekturen. Dette er punktene jeg skal diskutere her:

  1. Tradisjonell virtualisering vs Docker
  2. Docker's Workflow
  3. Docker-arkitektur

Tradisjonell virtualisering mot Docker

Hva er en virtuell maskin?

En VM er en virtuell server som emulerer en maskinvareserver. En virtuell maskin er avhengig av systemets fysiske maskinvare for å etterligne nøyaktig det samme miljøet du installerer applikasjonene i. Avhengig av brukssaken din, kan du bruke en virtuell systemmaskin (som kjører et helt operativsystem som en prosess, slik at du kan erstatte en ekte maskin med en virtuell maskin), eller behandle virtuelle maskiner som lar deg utføre dataprogrammer alene i det virtuelle miljø.





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

Hva er Docker?

Docker er et open source-prosjekt som tilbyr en programvareutviklingsløsning kjent som containere. For å forstå Docker, må du vite hva containere er. I følge Docker , en container er en lett, frittstående, kjørbar pakke med et programvare som inneholder alt som trengs for å kjøre den.



Beholdere er plattformuavhengige, og dermed kan Docker kjøre på både Windows- og Linux-baserte plattformer. Faktisk kan Docker også kjøres på en virtuell maskin hvis det oppstår behov for det. Hovedformålet med Docker er at det lar deg kjøre mikroserviceapplikasjoner i en distribuert arkitektur.

Sammenlignet med virtuelle maskiner, flytter Docker-plattformen opp abstraksjonen av ressurser fra maskinvarenivå til operativsystemnivå. Dette muliggjør realisering av de forskjellige fordelene med containere, f.eks. applikasjonsportabilitet, separasjon av infrastruktur og selvstendige mikrotjenester.

Med andre ord, mens virtuelle maskiner abstrakte hele maskinvareserveren, abstrakte containere operativsystemkjernen. Dette er en helt annen tilnærming til virtualisering og resulterer i mye raskere og lettere forekomster.



vm vs docker - dockerarkitektur - edureka

Docker's Workflow

La oss først se på Docker Engine og dens komponenter, så vi har en grunnleggende ide om hvordan systemet fungerer. Docker Engine lar deg utvikle, montere, sende og kjøre applikasjoner ved hjelp av følgende komponenter:

  1. Docker Daemon : En vedvarende bakgrunnsprosess som administrerer Docker-bilder, containere, nettverk og lagringsvolumer. Docker-demonen lytter konstant etter Docker API-forespørsler og behandler dem.

  2. Docker Engine REST API : En API brukes av applikasjoner til å samhandle med Docker-demonen. Den kan nås av en HTTP-klient.

  3. Docker CLI : En kommandolinjegrensesnittklient for interaksjon med Docker-demonen. Det forenkler betydelig hvordan du administrerer containerforekomster, og er en av hovedårsakene til at utviklere elsker å bruke Docker.

Først snakker Docker-klienten med Docker-demonen, som utfører tunge løft av bygningen, kjører, samt distribuerer våre Docker-containere. I utgangspunktet kan både Docker-klienten og demonen kjøres på samme system. Vi kan også koble en Docker-klient til enekstern Docker-demon. I tillegg, ved å bruke et REST API, kommuniserer Docker-klienten og demonen via UNIX-stikkontakter eller et nettverksgrensesnitt.

Docker-arkitektur

Arkitekturen til Docker bruker en klientservermodell og består av Docker's Client, Docker Host, Network and Storage-komponenter og Docker Registry / Hub. La oss se litt på hver av disse.

Docker’s Client

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

Docker vert

Docker-verten gir et komplett miljø for å kjøre og kjøre applikasjoner. Den består av Docker-demonen, bilder, containere, nettverk og lagring. Som tidligere nevnt er demonen ansvarlig for alle containerrelaterte handlinger og mottar kommandoer via CLI ellerREST API. Det kan også kommunisere med andre demoner for å administrere tjenestene.

Docker Objects

1. Bilder

Bilder er bare en skrivebeskyttet binær mal som kan bygge containere. De inneholder også metadata som beskriver beholderens evner og behov. Bilder brukes til å lagre og sende applikasjoner. Et bilde kan brukes alene for å bygge en container eller tilpasses for å legge til flere elementer for å utvide den gjeldende konfigurasjonen.

Du kan dele containerbildene på tvers av team i en bedrift ved hjelp av et privat containerregister, eller dele dem med verden ved hjelp av et offentlig register som Docker Hub. Bilder er kjerneelementet i Docker-opplevelsen, ettersom de muliggjør samarbeid mellom utviklere på en måte som ikke var mulig før

2. Beholdere

Beholdere er slags innkapslede miljøer der du kjører applikasjoner. Container er definert av bildet og eventuelle tilleggskonfigurasjonsalternativer som gis ved start av containeren, inkludert og ikke begrenset til nettverkstilkoblinger og lagringsalternativer. Beholdere har bare tilgang til ressurser som er definert i bildet, med mindre ekstra tilgang er definert når du bygger bildet til en container.

Du kan også opprette et nytt bilde basert på den aktuelle tilstanden til en container. Siden containere er mye mindre enn virtuelle maskiner, kan de spinnes i løpet av sekunder, og resultere i mye bedre servertetthet

3. Nettverk

Docker-nettverk er en passasje der all den isolerte beholderen kommuniserer. Det er hovedsakelig fem nettverksdrivere i docker:

    1. Bro : 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.

    2. Vert : Denne driveren fjerner nettverksisolasjonen mellom dockercontainere og docker-verten. Du kan bruke den når du ikke trenger nettverksisolasjon mellom vert og container.

      hva gjør trim i java
    3. Overlegg : Dette nettverket gjør det mulig for svermetjenester å kommunisere med hverandre. Du bruker den når du vil at containerne skal kjøre på forskjellige Docker-verter, eller når du vil danne svermtjenester av flere applikasjoner.

    4. Ingen : Denne driveren deaktiverer alt nettverk.

    5. macvlan : Denne driveren tildeler mac-adresse til containere slik at de ser ut som fysiske enheter. Den dirigerer trafikken mellom containere gjennom deres mac-adresser. Du bruker dette nettverket når du vil at containerne skal se ut som en fysisk enhet, for eksempel mens du migrerer et VM-oppsett.

4. Lagring

Du kan lagre data i det skrivbare laget av en container, men det krever en lagringsdriver. Siden den ikke er vedvarende, går den fort når containeren ikke kjører. Videre er det ikke lett å overføre disse dataene. Med hensyn til vedvarende lagring tilbyr Docker fire alternativer:

    1. Datavolumer : De gir muligheten til å opprette vedvarende lagring, med muligheten til å gi nytt navn til volumer, listevolumer, og liste også beholderen som er knyttet til volumet. Datavolumene er plassert på vertsfilsystemet, utenfor containerens kopierings- og skrivemekanisme og er ganske effektive.

    2. Volumbeholder : Det er en alternativ tilnærming der en dedikert container er vert for et volum og monterer det volumet i andre containere. I dette tilfellet er volumbeholderen uavhengig av applikasjonsbeholderen, og derfor kan du dele den over mer enn én container.

    3. Directory Mounts : Et annet alternativ er å montere en verts lokale katalog i en container. I de tidligere nevnte tilfellene må volumene være i mappen Docker-volumer, mens når det gjelder katalogmonteringer, kan hvilken som helst katalog på vertsmaskinen brukes som kilde for volumet.

    4. Lagringsplugins : Storage Plugins gir muligheten til å koble til eksterne lagringsplattformer. Disse pluginene kartlegger lagring fra verten til en ekstern kilde som et lagringsoppsett eller et apparat. Du kan se en liste over lagringsprogramtillegg på Docker’s Plugin-side.

Docker’s Registry

Docker-registre er tjenester som gir steder hvor du kan lagre og laste ned bilder. Med andre ord inneholder et Docker-register Docker-arkiver som er vert for ett eller flere Docker-bilder. Offentlige registre inkluderer to komponenter, nemlig Docker Hub og Docker Cloud. Du kan også bruke private registre. De vanligste kommandoene når du arbeider med registre inkluderer: docker push, docker pull, docker run

Nå som du har forstått Docker Architecture, sjekk ut dette av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edureka DevOps Certification Training-kurset hjelper elever til å forstå hva som er DevOps og få ekspertise i forskjellige DevOps-prosesser og verktøy som Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack og GIT for å automatisere flere trinn i SDLC.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'Docker-arkitekturen', så kommer vi tilbake til deg