Docker Architecture: Kāpēc tas ir svarīgi?



Šajā emuārā ir apskatīta dokstacijas arhitektūra un tās dažādās sastāvdaļas. Tas izceļ doku funkcijas, kas mums paskaidro tā popularitātes iemeslu.

Daudzi no mums uzskata, ka Docker ir tā neatņemama sastāvdaļa . Tāpēc aiz šī neticamā rīka ir jābūt pārsteidzošai arhitektūrai. Šajā emuārā es apskatīšu visu, kas jums jāzina par Docker arhitektūru. Šie ir punkti, kurus es šeit apspriedīšu:

  1. Tradicionālā virtualizācija vs Docker
  2. Docker's Workflow
  3. Docker arhitektūra

Tradicionālā virtualizācija Vs Docker

Kas ir virtuālā mašīna (virtuālā mašīna)?

VM ir virtuāls serveris, kas līdzinās aparatūras serverim. Virtuālā mašīna paļaujas uz sistēmas fizisko aparatūru, lai atdarinātu tieši to pašu vidi, kurā instalējat savas lietojumprogrammas. Atkarībā no izmantošanas gadījuma varat izmantot sistēmas virtuālo mašīnu (kas visu procesu vada visu operētājsistēmu, ļaujot virtuālo mašīnu aizstāt ar reālu mašīnu) vai apstrādāt virtuālās mašīnas, kas ļauj izpildīt datora lietojumprogrammas tikai virtuālajā mašīnā vide.





Iepriekš mēs izmantojām virtuālo mašīnu izveidi, un katram VM bija OS, kas aizņēma daudz vietas un padarīja to smagu.

Kas ir Dokers?

Docker ir atvērtā koda projekts, kas piedāvā programmatūras izstrādes risinājumu, kas pazīstams kā konteineri. Lai saprastu Docker, jums jāzina, kas ir konteineri. Pēc Dokers , konteiners ir viegla, atsevišķa, izpildāma programmatūras pakete, kas satur visu, kas nepieciešams tās darbināšanai.



Konteineri nav atkarīgi no platformas, tāpēc Docker var darboties gan uz Windows, gan uz Linux balstītām platformām. Faktiski Docker var palaist arī virtuālajā mašīnā, ja rodas nepieciešamība to darīt. Docker galvenais mērķis ir tas, ka tas ļauj palaist mikropakalpojumu lietojumprogrammas sadalītā arhitektūrā.

Salīdzinot ar virtuālajām mašīnām, Docker platforma palielina resursu ieguvi no aparatūras līmeņa uz operētājsistēmas līmeni. Tas ļauj realizēt dažādas konteineru priekšrocības, piem. lietojumprogrammu pārnesamība, infrastruktūras atdalīšana un autonomi mikropakalpojumi.

Citiem vārdiem sakot, kamēr virtuālās mašīnas abstraktē visu aparatūras serveri, konteineri - operētājsistēmas kodolu. Šī ir pilnīgi atšķirīga pieeja virtualizācijai, un tā rezultātā tiek iegūti daudz ātrāki un vieglāki gadījumi.



vm vs docker - docker arhitektūra - edureka

Docker's Workflow

Pirmkārt, apskatīsim Docker Engine un tā komponentus, lai mums būtu pamatideja par sistēmas darbību. Docker Engine ļauj jums izstrādāt, montēt, nosūtīt un palaist lietojumprogrammas, izmantojot šādus komponentus:

  1. Dokers Dēmons : Pastāvīgs fona process, kas pārvalda Docker attēlus, konteinerus, tīklus un krātuves apjomus. Docker dēmons pastāvīgi klausās Docker API pieprasījumus un tos apstrādā.

  2. Docker Engine REST API : Lietojumprogrammas izmanto API, lai mijiedarbotos ar Docker dēmonu. Tam var piekļūt HTTP klients.

  3. Docker CLI : Komandrindas saskarnes klients mijiedarbībai ar Docker dēmonu. Tas ievērojami vienkāršo konteineru gadījumu pārvaldību un ir viens no galvenajiem iemesliem, kāpēc izstrādātājiem patīk izmantot Docker.

Sākumā Docker klients sarunājas ar Docker dēmonu, kas veic smagas ēkas pacelšanas, skriešanas, kā arī mūsu Docker konteineru izplatīšanu. Būtībā gan Docker klients, gan dēmons var darboties vienā un tajā pašā sistēmā. Mēs varam arī savienot Docker klientu ar aattālais Dokera dēmons. Turklāt, izmantojot REST API, Docker klients un dēmons sazinās, izmantojot UNIX ligzdas vai tīkla saskarni.

Docker arhitektūra

Docker arhitektūrā tiek izmantots klienta-servera modelis, un to veido Docker’s Client, Docker Host, Network and Storage komponenti un Docker Registry / Hub. Apskatīsim katru no šiem sīkāk.

maināmi un nemaināmi objekti Java

Docker’s Client

Docker lietotāji var mijiedarboties ar Docker, izmantojot klientu. Kad docker komandas darbojas, klients tos nosūta uz dockerd dēmonu, kas tās izpilda. Docker API izmanto Docker komandas. Docker klientam ir iespējams sazināties ar vairāk nekā vienu dēmonu.

Dokeru saimnieks

Docker resursdators nodrošina pilnīgu vidi lietojumprogrammu izpildei un palaišanai. Tas sastāv no Docker dēmona, attēliem, konteineriem, tīkliem un krātuves. Kā jau minēts iepriekš, dēmons ir atbildīgs par visām ar konteineriem saistītajām darbībām un saņem komandas, izmantojot CLI vaiREST API. Tā var arī sazināties ar citiem dēmoniem, lai pārvaldītu savus pakalpojumus.

Dokera objekti

1. Attēli

Attēli nav nekas cits kā tikai lasāma binārā veidne, ar kuru var izveidot konteinerus. Tie satur arī metadatus, kas raksturo konteinera iespējas un vajadzības. Attēli tiek izmantoti lietojumprogrammu glabāšanai un nosūtīšanai. Attēlu var izmantot atsevišķi konteinera izveidošanai vai pielāgot, lai pievienotu papildu elementus, lai paplašinātu pašreizējo konfigurāciju.

Izmantojot privāto konteineru reģistru, konteinera attēlus varat kopīgot uzņēmuma komandās vai kopīgot ar pasauli, izmantojot publisko reģistru, piemēram, Docker Hub. Attēli ir Docker pieredzes pamatelements, jo tie ļauj izstrādātājiem sadarboties tādā veidā, kāds iepriekš nebija iespējams

2. Konteineri

Konteineri ir sava veida iekapsulētas vides, kurās palaižat lietojumprogrammas. Konteineru nosaka attēls un visas papildu konfigurācijas opcijas, kas paredzētas konteinera palaišanas laikā, ieskaitot tīkla savienojumus un krātuves iespējas. Konteineriem ir piekļuve tikai attēlā definētajiem resursiem, ja vien, iebūvējot attēlu konteinerā, nav noteikta papildu piekļuve.

Varat arī izveidot jaunu attēlu, pamatojoties uz konteinera pašreizējo stāvokli. Tā kā konteineri ir daudz mazāki par VM, tos var vērpt dažu sekunžu laikā, un tā rezultātā servera blīvums ir daudz lielāks

3. Tīkli

Docker tīklošana ir pāreja, caur kuru sazinās viss izolētais konteiners. Docker galvenokārt ir pieci tīkla draiveri:

    1. Tilts : Tas ir konteinera noklusējuma tīkla draiveris. Jūs izmantojat šo tīklu, kad jūsu lietojumprogramma darbojas atsevišķos konteineros, t.i., vairākos konteineros, kas sazinās ar vienu un to pašu dokera resursdatoru.

    2. Saimnieks : Šis draiveris noņem tīkla izolāciju starp dokstacijas konteineriem un dokstacijas resursdatoru. Varat to izmantot, ja jums nav nepieciešama tīkla izolēšana starp resursdatoru un konteineru.

    3. Pārklājums : Šis tīkls ļauj bara dienestiem sazināties savā starpā. Jūs to izmantojat, ja vēlaties, lai konteineri darbotos dažādos Docker resursdatoros, vai ja vēlaties veidot bara pakalpojumus ar vairākām lietojumprogrammām.

    4. Nav : Šis draiveris atspējo visas tīkla darbības.

    5. macvlan : Šis draiveris piešķir mac adresi konteineriem, lai tie izskatās kā fiziskas ierīces. Tas maršrutē satiksmi starp konteineriem caur to mac adresēm. Jūs izmantojat šo tīklu, ja vēlaties, lai, piemēram, migrējot VM iestatījumu, konteineri izskatās kā fiziska ierīce.

4. Uzglabāšana

Datus var glabāt konteinera rakstāmajā slānī, taču tam nepieciešams krātuves draiveris. Tā kā tas nav noturīgs, tas iet bojā ikreiz, kad konteiners nedarbojas. Turklāt šos datus nav viegli pārsūtīt. Attiecībā uz pastāvīgu uzglabāšanu Docker piedāvā četras iespējas:

    1. Datu apjomi : Tie nodrošina iespēju izveidot pastāvīgu krātuvi ar iespēju pārdēvēt sējumus, sējumu sarakstus un uzskaitīt arī ar sējumu saistīto konteineru. Datu apjomi tiek izvietoti resursdatora failu sistēmā, ārpus konteineru kopijas rakstīšanas mehānismā un ir diezgan efektīvi.

    2. Tilpuma konteiners : Tā ir alternatīva pieeja, kurā īpašs konteiners uzņem tilpumu un piestiprina šo tilpumu citiem konteineriem. Šajā gadījumā tilpuma konteiners nav atkarīgs no lietojumprogrammas konteinera, un tāpēc to var koplietot vairāk nekā vienā konteinerā.

    3. Katalogu stiprinājumi : Vēl viena iespēja ir ievietot resursdatora vietējo direktoriju konteinerā. Iepriekš minētajos gadījumos sējumiem vajadzētu būt Docker sējumu mapē, turpretī, kad runa ir par direktoriju stiprinājumiem, jebkuru resursdatora direktoriju var izmantot kā sējuma avotu.

    4. Uzglabāšanas spraudņi : Krātuves spraudņi nodrošina iespēju izveidot savienojumu ar ārējām krātuves platformām. Šie spraudņi krātuvi no resursdatora kartē uz ārēju avotu, piemēram, krātuves masīvu vai ierīci. Krātuves spraudņu sarakstu varat skatīt Docker's Plugin lapā.

Dokera reģistrs

Dokeru reģistri ir pakalpojumi, kas nodrošina vietas, no kurām var saglabāt un lejupielādēt attēlus. Citiem vārdiem sakot, Docker reģistrā ir Docker krātuves, kurās atrodas viens vai vairāki Docker Images. Publiskie reģistri ietver divus komponentus, proti, Docker Hub un Docker Cloud. Varat arī izmantot privātos reģistrus. Strādājot ar reģistriem, visbiežāk izmantotās komandas ir šādas: docker push, docker pull, docker run

Tagad, kad esat sapratis Docker arhitektūru, pārbaudiet to Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka DevOps sertifikācijas apmācības kurss palīdz izglītojamajiem saprast, kas ir DevOps, un iegūt zināšanas dažādos DevOps procesos un rīkos, piemēram, Leļļu, Jenkins, Nagios, Ansible, Chef, Saltstack un GIT, lai automatizētu vairākus SDLC soļus.

sql servera apmācības iesācējiem

Vai mums ir jautājums? Lūdzu, pieminējiet to šīs “Docker Architecture” komentāru sadaļā, un mēs ar jums sazināsimies