Docker Arhitektura: Zašto je to važno?



Ovaj blog raspravlja o docker arhitekturi i njezinim različitim komponentama. Ističe značajke dockera koji nam govore o razlogu njegove popularnosti.

Mnogi od nas vjeruju da je Docker njegov sastavni dio . Dakle, iza ovog nevjerojatnog alata mora postojati nevjerojatna arhitektura. Na ovom blogu pokrivat ću sve što morate znati o Docker arhitekturi. Ovo su točke o kojima ću ovdje raspravljati:

  1. Tradicionalna virtualizacija vs Docker
  2. Dockerov tijek rada
  3. Docker arhitektura

Tradicionalna virtualizacija protiv Dockera

Što je VM (virtualni stroj)?

VM je virtualni poslužitelj koji oponaša hardverski poslužitelj. Virtualni stroj oslanja se na fizički hardver sustava kako bi oponašao potpuno isto okruženje u koje instalirate svoje programe. Ovisno o slučaju upotrebe, možete koristiti sistemski virtualni stroj (koji pokreće čitav OS kao proces, što vam omogućuje da stvarni stroj zamijenite virtualnim strojem) ili obraditi virtualne strojeve koji vam omogućavaju izvršavanje računalnih aplikacija sami u virtualnom okoliš.





Ranije smo stvarali virtualne strojeve, a svaki je VM imao OS koji je zauzimao puno prostora i činio ga teškim.

Što je Docker?

Docker je projekt otvorenog koda koji nudi rješenje za razvoj softvera poznato kao kontejneri. Da biste razumjeli Dockera, morate znati što su kontejneri. Prema Lučki radnik , spremnik je lagani, samostalni, izvršni paket softverskog dijela koji uključuje sve potrebno za njegovo pokretanje.



Spremnici su neovisni o platformi i stoga se Docker može izvoditi na Windows i Linux platformama. U stvari, Docker se također može pokretati unutar virtualnog stroja ako postoji potreba za tim. Glavna svrha Dockera je da vam omogućuje pokretanje aplikacija mikroservisa u distribuiranoj arhitekturi.

U usporedbi s virtualnim strojevima, Docker platforma pomiče apstrakciju resursa s hardverske razine na razinu operativnog sustava. To omogućuje ostvarenje različitih blagodati kontejnera, na pr. prenosivost aplikacija, odvajanje infrastrukture i samostalne mikro usluge.

javascript dobiti veličinu polja

Drugim riječima, dok virtualni strojevi apstrahiraju cijeli hardverski poslužitelj, spremnici apstrahiraju jezgru operativnog sustava. Ovo je posve drugačiji pristup virtualizaciji i rezultira puno bržim i lakšim primjercima.



vm vs docker - docker arhitektura - edureka

Dockerov tijek rada

Prvo, pogledajmo Docker Engine i njegove komponente kako bismo imali osnovnu ideju o tome kako sustav funkcionira. Docker Engine omogućuje vam razvoj, sastavljanje, isporuku i pokretanje aplikacija koristeći sljedeće komponente:

  1. Docker Daemon : Stalni pozadinski postupak koji upravlja Dockerovim slikama, spremnicima, mrežama i volumenima pohrane. Docker demon neprestano osluškuje zahtjeve za Docker API i obrađuje ih.

  2. Docker Engine REST API : API koriste API za interakciju s Docker demonom. Može mu pristupiti HTTP klijent.

  3. Docker CLI : Klijent sučelja naredbenog retka za interakciju s Docker demonom. Značajno pojednostavljuje upravljanje primjercima spremnika i jedan je od ključnih razloga zašto programeri vole koristiti Docker.

Klijent Dockera u početku razgovara s Dockerovim demonom, koji izvodi teško dizanje zgrade, trčanje, kao i distribuciju naših Dockerovih spremnika. U osnovi, i Docker klijent i demon mogu raditi na istom sustavu. Docker klijenta također možemo povezati sudaljeni Docker demon. Uz to, pomoću REST API-ja, Docker klijent i demon komuniciraju putem UNIX utičnica ili mrežnog sučelja.

Docker arhitektura

Arhitektura Dockera koristi model klijent-poslužitelj, a sastoji se od Dockerovog klijenta, Dockera Hosta, komponenti Mreže i pohrane i Dockerovog registra / čvorišta. Pogledajmo svaku od njih detaljno.

Dockerov klijent

Korisnici Dockera mogu komunicirati s Dockerom putem klijenta. Kada se izvrše bilo koje naredbe dockera, klijent ih pošalje u dockerd daemon, koji ih izvršava. Docker API koriste naredbe Docker. Docker klijent može komunicirati s više od jednog demona.

stol kasandra vs obitelj stupaca

Domaćin dockera

Domaćin Dockera pruža cjelovito okruženje za izvršavanje i pokretanje aplikacija. Sastoji se od Dockerovog demona, slika, spremnika, mreža i pohrane. Kao što je prethodno spomenuto, demon je odgovoran za sve radnje povezane s spremnikom i prima naredbe putem CLI-a iliREST API. Također može komunicirati s drugim demonima kako bi upravljao svojim uslugama.

Docker objekti

1. Slike

Slike nisu ništa drugo do binarni predložak samo za čitanje koji može graditi spremnike. Sadrže i metapodatke koji opisuju mogućnosti i potrebe spremnika. Slike se koriste za spremanje i slanje aplikacija. Slika se može koristiti samostalno za izgradnju spremnika ili prilagoditi za dodavanje dodatnih elemenata za proširenje trenutne konfiguracije.

Slike kontejnera možete podijeliti s timovima unutar poduzeća uz pomoć privatnog registra spremnika ili ih podijeliti sa svijetom pomoću javnog registra poput Docker Hub-a. Slike su temeljni element Dockerovog iskustva jer omogućavaju suradnju između programera na način koji prije nije bio moguć

2. Spremnici

Spremnici su neka vrsta zatvorenih okruženja u kojima pokrećete aplikacije. Spremnik je definiran slikom i bilo kojim dodatnim mogućnostima konfiguracije koje se pružaju prilikom pokretanja spremnika, uključujući i ne ograničavajući se na mrežne veze i opcije pohrane. Spremnici imaju pristup samo resursima koji su definirani na slici, osim ako je dodatni pristup definiran prilikom ugradnje slike u spremnik.

Također možete stvoriti novu sliku na temelju trenutnog stanja spremnika. Budući da su spremnici mnogo manji od VM-ova, mogu se okretati u nekoliko sekundi i rezultirati puno boljom gustoćom poslužitelja

3. Mreže

Umrežavanje Dockera prolaz je kroz koji komuniciraju svi izolirani spremnici. U Dockeru se uglavnom nalazi pet mrežnih upravljačkih programa:

    1. Most : To je zadani mrežni upravljački program za spremnik. Ovu mrežu koristite kada se vaša aplikacija izvodi na samostalnim spremnicima, tj. Više spremnika koji komuniciraju s istim host računarom.

    2. Domaćin : Ovaj pokretački program uklanja mrežnu izolaciju između spremnika dockera i domaćina dockera. Možete ga koristiti kada vam nije potrebna mrežna izolacija između hosta i spremnika.

    3. Prekrivanje : Ova mreža omogućuje međusobnu komunikaciju rojevih usluga. Koristite ga kada želite da se spremnici izvode na različitim Dockerovim domaćinima ili kada želite formirati usluge rojenja od više aplikacija.

    4. Nijedna : Ovaj pokretački program onemogućuje sve umrežavanje.

    5. macvlan : Ovaj upravljački program dodijeljuje mac adresu spremnicima kako bi izgledali poput fizičkih uređaja. Usmjerava promet između spremnika kroz njihove mac adrese. Ovu mrežu upotrebljavate kada želite da spremnici izgledaju poput fizičkog uređaja, na primjer, tijekom migracije postavki VM-a.

      c ++ ide sortirati

4. Skladištenje

Podatke možete pohraniti unutar sloja za pisanje spremnika, ali za to je potreban upravljački program za pohranu. Budući da nije uporan, propada kad god spremnik ne radi. Štoviše, nije lako prenijeti ove podatke. S obzirom na trajnu pohranu, Docker nudi četiri mogućnosti:

    1. Podaci o volumenima : Pružaju mogućnost stvaranja trajne pohrane, uz mogućnost preimenovanja svezaka, popisa svezaka, a također navode i spremnik koji je povezan s volumenom. Volumeni podataka smještaju se u datotečni sustav hosta, izvan mehanizma za kopiranje spremnika na mehanizmu za pisanje, i prilično su učinkoviti.

    2. Spremnik volumena : To je alternativni pristup u kojem namjenski spremnik hostira volumen i taj volumen montira na druge spremnike. U ovom je slučaju spremnik volumena neovisan o spremniku aplikacije i stoga ga možete podijeliti u više spremnika.

    3. Nosači direktorija : Druga je mogućnost montiranje lokalnog direktorija hosta u spremnik. U prethodno spomenutim slučajevima, volumeni bi morali biti unutar mape Docker volumeni, dok se, kada je riječ o Mount Mountovima, bilo koji direktorij na hostovom računalu može koristiti kao izvor volumena.

    4. Dodaci za pohranu : Dodaci za pohranu pružaju mogućnost povezivanja s vanjskim platformama za pohranu. Ovi dodaci mapiraju pohranu s domaćina na vanjski izvor poput niza za pohranu ili uređaja. Popis dodataka za pohranu možete vidjeti na Dockerovoj stranici dodataka.

Dockerov registar

Docker registri su usluge koje pružaju lokacije odakle možete pohraniti i preuzeti slike. Drugim riječima, Dockerov registar sadrži Dockerove spremišta koja hostiraju jednu ili više Dockerovih slika. Javni registri uključuju dvije komponente, a to su Docker Hub i Docker Cloud. Također možete koristiti privatne registre. Najčešće naredbe u radu s registrima uključuju: docker push, docker pull, docker run

Sad kad ste shvatili Docker arhitekturu, pogledajte ovo Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka DevOps certifikacijski tečaj pomaže učenicima da shvate što je DevOps i steknu stručnost u raznim DevOps procesima i alatima kao što su Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT za automatizaciju više koraka u SDLC-u.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ove 'Docker arhitekture', a mi ćemo vam se javiti