Docker Architecture: Prečo je to dôležité?



Tento blog pojednáva o architektúre dokovacej stanice a jej rôznych komponentoch. Zvýrazňuje funkcie ukotvenia, ktoré nám hovoria dôvod jeho popularity.

Mnoho z nás verí, že Docker je neoddeliteľnou súčasťou . Za týmto neuveriteľným nástrojom teda musí byť úžasná architektúra. V tomto blogu sa budem venovať všetkému, čo musíte vedieť o architektúre Docker. Toto sú body, o ktorých tu budem diskutovať:

  1. Tradičná virtualizácia vs Docker
  2. Docker’s Workflow
  3. Docker Architecture

Tradičná virtualizácia vs Docker

Čo je to VM (Virtual Machine)?

VM je virtuálny server, ktorý emuluje hardvérový server. Virtuálny stroj sa spolieha na fyzický hardvér systému, aby emuloval presne to isté prostredie, v ktorom inštalujete svoje aplikácie. V závislosti od vášho prípadu použitia môžete použiť systémový virtuálny stroj (ktorý prevádzkuje celý operačný systém ako proces a umožňuje vám nahradiť skutočný stroj za virtuálny stroj) alebo virtuálne stroje, ktoré vám umožňujú samotné vykonávanie počítačových aplikácií vo virtuálnom prostredie.





Predtým sme zvykli vytvárať virtuálne stroje a každý VM mal operačný systém, ktorý zaberal veľa miesta a sťažoval jeho výkon.

Čo je Docker?

Docker je projekt typu open-source, ktorý ponúka riešenie vývoja softvéru známe ako kontejnery. Aby ste pochopili Docker, musíte vedieť, čo sú to kontajnery. Podľa Docker , kontajner je ľahký, samostatný, spustiteľný balík softvéru, ktorý obsahuje všetko potrebné na jeho spustenie.



Kontajnery sú nezávislé na platforme, a preto môže Docker bežať na platformách založených na Windows aj Linux. V skutočnosti je možné Docker spustiť aj na virtuálnom stroji, ak je to potrebné. Hlavným účelom Dockeru je, že vám umožňuje spúšťať aplikácie mikroslužieb v distribuovanej architektúre.

V porovnaní s virtuálnymi strojmi posúva platforma Docker vyššie čerpanie prostriedkov z úrovne hardvéru na úroveň operačného systému. To umožňuje realizáciu rôznych výhod kontajnerov, napr. prenosnosť aplikácií, oddelenie infraštruktúry a samostatné mikroslužby.

Inými slovami, zatiaľ čo Virtual Machines abstrahuje celý hardvérový server, kontajnery abstraktne obsahujú jadro operačného systému. Jedná sa o úplne odlišný prístup k virtualizácii, ktorého výsledkom sú oveľa rýchlejšie a ľahšie prípady.



vm vs docker - docker architecture - edureka

Docker’s Workflow

Najprv sa pozrime na Docker Engine a jeho komponenty, aby sme mali základnú predstavu o fungovaní systému. Docker Engine vám umožňuje vyvíjať, zhromažďovať, dodávať a spúšťať aplikácie pomocou nasledujúcich komponentov:

  1. Docker Daemon : Trvalý proces na pozadí, ktorý spravuje obrázky, kontajnery, siete a úložné zväzky Dockeru. Démon Docker neustále načúva požiadavkám Docker API a spracováva ich.

  2. REST API Docker Engine : Aplikácie používajú API na interakciu s démonom Dockera. Je k nej prístupný pomocou klienta HTTP.

  3. Docker CLI : Klient rozhrania príkazového riadku na interakciu s démonom Docker. Výrazne to zjednodušuje správu inštancií kontajnerov a je jedným z hlavných dôvodov, prečo vývojári radi používajú Docker.

Najskôr klient Dockeru hovorí s démonom Dockera, ktorý vykonáva ťažké zdvíhanie budovy, jej chod a distribúciu našich kontajnerov Dockeru. V zásade môžu byť klient aj daemon Docker spustení v rovnakom systéme. Môžeme tiež pripojiť klienta Docker k avzdialený démon Docker. Okrem toho pomocou klienta REST API komunikujú klient a démon Dockeru cez zásuvky UNIX alebo sieťové rozhranie.

Docker Architecture

Architektúra Dockeru využíva model klient-server a pozostáva z komponentov Docker’s Client, Docker Host, Network and Storage a Docker Registry / Hub. Pozrime sa na každú z nich trochu podrobne.

Dockerov klient

Používatelia Dockeru môžu s Dockerom komunikovať prostredníctvom klienta. Keď sa spustia akékoľvek príkazy dockeru, klient ich pošle démonovi dockerd, ktorý ich vykoná. Docker API používajú príkazy Dockeru. Je možné, aby klient Docker komunikoval s viac ako jedným démonom.

Docker Host

Hostiteľ Dockeru poskytuje kompletné prostredie na vykonávanie a spúšťanie aplikácií. Skladá sa z démona Dockera, obrázkov, kontajnerov, sietí a úložiska. Ako už bolo spomenuté, démon je zodpovedný za všetky akcie spojené s kontajnerom a prijíma príkazy prostredníctvom CLI aleboREST API. Môže tiež komunikovať s ostatnými démonmi a spravovať svoje služby.

Docker Objects

1. Obrázky

Obrázky nie sú nič iné ako binárna šablóna iba na čítanie, ktorá umožňuje vytváranie kontajnerov. Obsahujú tiež metadáta, ktoré popisujú možnosti a potreby kontajnera. Obrázky sa používajú na ukladanie a odosielanie aplikácií. Obrázok je možné použiť samotný na zostavenie kontajnera alebo ho prispôsobiť tak, aby pridal ďalšie prvky na rozšírenie aktuálnej konfigurácie.

Môžete zdieľať obrázky kontajnerov medzi tímami v rámci podniku pomocou súkromného registra kontajnerov alebo ich zdieľať so svetom pomocou verejného registra, ako je Docker Hub. Obrázky sú základným prvkom skúseností s programom Docker, pretože umožňujú spoluprácu medzi vývojármi spôsobom, ktorý predtým nebol možný

2. Kontajnery

Kontajnery sú akési zapuzdrené prostredia, v ktorých spúšťate aplikácie. Kontajner je definovaný obrázkom a akýmikoľvek ďalšími možnosťami konfigurácie poskytnutými pri spustení kontajnera, okrem iného vrátane sieťových pripojení a možností úložiska. Kontajnery majú prístup iba k prostriedkom, ktoré sú definované v obraze, pokiaľ nie je definovaný ďalší prístup pri vytváraní obrázka do kontajnera.

Môžete tiež vytvoriť nový obrázok na základe aktuálneho stavu kontajnera. Pretože kontajnery sú oveľa menšie ako virtuálne počítače, dajú sa otočiť v priebehu niekoľkých sekúnd a výsledkom je oveľa lepšia hustota serverov

3. Siete

Sieť Docker je prechod, cez ktorý komunikuje všetok izolovaný kontajner. V ukotviteľnom paneli je hlavne päť sieťových ovládačov:

    1. Most : Je to predvolený sieťový ovládač pre kontajner. Túto sieť používate, keď je vaša aplikácia spustená na samostatných kontajneroch, t. J. Viacerých kontajneroch komunikujúcich s rovnakým hostiteľom dockeru.

    2. Hostiteľ : Tento ovládač odstraňuje izoláciu siete medzi kontajnermi dockeru a hostiteľom dockeru. Môžete ho použiť, keď nepotrebujete žiadnu izoláciu siete medzi hostiteľom a kontajnerom.

    3. Prekrytie : Táto sieť umožňuje vzájomnú komunikáciu rojových služieb. Používate ho, keď chcete, aby kontajnery bežali na rôznych hostiteľoch Dockeru, alebo keď chcete vytvárať rojové služby pomocou viacerých aplikácií.

    4. Žiadne : Tento ovládač zakáže všetky siete.

    5. macvlan : Tento ovládač priraďuje mac adresy kontajnerom, aby vyzerali ako fyzické zariadenia. Smeruje premávku medzi kontajnermi cez ich mac adresy. Túto sieť používate, keď chcete, aby kontajnery vyzerali ako fyzické zariadenie, napríklad pri migrácii nastavenia virtuálneho počítača.

      ako skontrolovať palindróm v jave

4. Skladovanie

Dáta môžete ukladať do zapisovateľnej vrstvy kontajnera, vyžaduje to však radič úložiska. Pretože nie je perzistentný, zahynie vždy, keď kontajner nie je v prevádzke. Okrem toho nie je ľahké preniesť tieto údaje. Pokiaľ ide o trvalé ukladanie, Docker ponúka štyri možnosti:

    1. Objemy údajov : Poskytujú schopnosť vytvárať trvalé úložiská so schopnosťou premenovávať zväzky, uvádzať zoznamy zväzkov a tiež uvádzať zoznam kontajnerov, ktoré sú k zväzku priradené. Dátové zväzky sú umiestnené v hostiteľskom súborovom systéme mimo mechanizmov kopírovania a zápisu a sú pomerne efektívne.

    2. Objemový kontajner : Je to alternatívny prístup, v ktorom vyhradený kontajner hostí zväzok a tento zväzok sa pripojí k iným kontajnerom. V takom prípade je kontajner objemu nezávislý od kontajnera aplikácie, a preto ho môžete zdieľať vo viacerých kontajneroch.

    3. Pripojenia adresára : Ďalšou možnosťou je pripojiť miestny adresár hostiteľa do kontajnera. V predtým spomenutých prípadoch by sa zväzky museli nachádzať v priečinku Docker volumes, zatiaľ čo pri pripojení adresára môže byť ako zdroj pre zväzok použitý akýkoľvek adresár na hostiteľskom počítači.

    4. Pluginy úložiska : Pluginy úložiska poskytujú možnosť pripojenia k externým úložným platformám. Tieto doplnky mapujú úložisko z hostiteľa na externý zdroj, ako je úložné pole alebo zariadenie. Zoznam doplnkov úložiska sa nachádza na stránke Doplnky Docker.

Dockerov register

Registre Dockeru sú služby, ktoré poskytujú miesta, z ktorých môžete ukladať a sťahovať obrázky. Inými slovami, register Docker obsahuje úložiská Docker, ktoré hostia jeden alebo viac obrázkov Docker. Verejné registre zahŕňajú dve zložky, konkrétne Docker Hub a Docker Cloud. Môžete tiež použiť súkromné ​​registre. Medzi najbežnejšie príkazy pri práci s registrami patria: docker push, docker pull, docker run

Teraz, keď ste pochopili architektúru Docker, pozrite sa na toto autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Edureka DevOps Certification Training kurz pomáha študentom pochopiť, čo je DevOps, a získať odborné znalosti v rôznych procesoch a nástrojoch DevOps, ako sú Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack a GIT na automatizáciu viacerých krokov v SDLC.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tejto „Architektúre Docker“ a my sa vám ozveme