Docker Architecture: De ce este importantă?



Acest blog discută arhitectura dockerului și diferitele sale componente. Acesta evidențiază caracteristicile de andocare care ne arată motivul popularității sale.

Mulți dintre noi credem că Docker face parte integrantă din . Deci, în spatele acestui instrument incredibil, trebuie să existe o arhitectură uimitoare. În acest blog, voi acoperi tot ce trebuie să știți despre arhitectura Docker. Acestea sunt punctele pe care le voi discuta aici:

  1. Virtualizare tradițională vs Docker
  2. Fluxul de lucru al lui Docker
  3. Docker Architecture

Virtualizare tradițională vs Docker

Ce este o mașină virtuală (mașină virtuală)?

O VM este un server virtual care emulează un server hardware. O mașină virtuală se bazează pe hardware-ul fizic al sistemului pentru a emula exact același mediu în care instalați aplicațiile. În funcție de cazul dvs. de utilizare, puteți utiliza o mașină virtuală de sistem (care rulează un întreg sistem de operare ca proces, permițându-vă să înlocuiți o mașină reală cu o mașină virtuală) sau să procesați mașini virtuale care vă permit să executați singuri aplicații de calculator în virtual mediu inconjurator.





Anterior, obișnuiam să creăm mașini virtuale și fiecare VM avea un sistem de operare care ocupa mult spațiu și îl făcea greu.

Ce este Docker?

Docker este un proiect open-source care oferă o soluție de dezvoltare software cunoscută sub numele de containere. Pentru a înțelege Docker, trebuie să știți ce sunt containerele. Conform Docher , un container este un pachet ușor, autonom, executabil al unui software care include tot ce este necesar pentru al rula.



Containerele sunt independente de platformă și, prin urmare, Docker poate rula atât pe platforme Windows, cât și pe Linux. De fapt, Docker poate fi rulat și într-o mașină virtuală dacă apare nevoia de a face acest lucru. Scopul principal al Docker este acela că vă permite să rulați aplicații de microserviciu într-o arhitectură distribuită.

În comparație cu mașinile virtuale, platforma Docker mută abstractizarea resurselor de la nivelul hardware la nivelul sistemului de operare. Acest lucru permite realizarea diferitelor avantaje ale containerelor de ex. portabilitatea aplicațiilor, separarea infrastructurii și microservicii independente.

Cu alte cuvinte, în timp ce mașinile virtuale abstractizează întregul server hardware, containerele abstractizează nucleul sistemului de operare. Aceasta este o abordare complet diferită a virtualizării și are ca rezultat instanțe mult mai rapide și mai ușoare.



tutorial big data pentru începători

vm vs docker - arhitectură docker - edureka

Fluxul de lucru al lui Docker

În primul rând, să aruncăm o privire asupra motorului Docker și a componentelor sale, astfel încât să avem o idee de bază despre modul în care funcționează sistemul. Docker Engine vă permite să dezvoltați, să asamblați, să expediați și să rulați aplicații utilizând următoarele componente:

  1. Docker Daemon : Un proces de fundal persistent care gestionează imaginile, containerele, rețelele și volumele de stocare Docker. Demonul Docker ascultă în permanență cererile API Docker și le procesează.

  2. API REST Docker Engine : Un API este utilizat de aplicații pentru a interacționa cu demonul Docker. Poate fi accesat de un client HTTP.

  3. Docker CLI : Un client de linie de comandă pentru interacțiunea cu demonul Docker. Simplifică în mod semnificativ modul în care gestionați instanțele de container și este unul dintre motivele cheie pentru care dezvoltatorii adoră utilizarea Docker.

La început, clientul Docker vorbește cu demonul Docker, care efectuează ridicarea grea a clădirii, rulează, precum și distribuirea containerelor noastre Docker. În principiu, atât clientul Docker, cât și demonul pot rula pe același sistem. De asemenea, putem conecta un client Docker la undaemon Docker la distanță. În plus, utilizând un API REST, clientul și demonul Docker, comunicați prin sockets UNIX sau o interfață de rețea.

Docker Architecture

Arhitectura Docker utilizează un model client-server și constă din componentele clientului Docker, gazdă Docker, componente de rețea și stocare și din registrul / hub-ul Docker. Să analizăm fiecare dintre acestea în detaliu.

Clientul Docker

Utilizatorii Docker pot interacționa cu Docker prin intermediul unui client. Când se execută orice comandă de andocare, clientul le trimite la demonul de andocare, care le execută. API-ul Docker este utilizat de comenzile Docker. Este posibil ca clientul Docker să comunice cu mai mult de un daemon.

Gazdă Docker

Gazda Docker oferă un mediu complet pentru executarea și rularea aplicațiilor. Se compune din demonul Docker, imagini, containere, rețele și stocare. După cum sa menționat anterior, demonul este responsabil pentru toate acțiunile legate de container și primește comenzi prin CLI sauAPI-ul REST. De asemenea, poate comunica cu alți demoni pentru a-și gestiona serviciile.

Obiecte Docker

1. Imagini

Imaginile nu sunt altceva decât un șablon binar de numai citire care poate construi containere. De asemenea, conțin metadate care descriu capacitățile și nevoile containerului. Imaginile sunt folosite pentru stocarea și livrarea aplicațiilor. O imagine poate fi utilizată singură pentru a construi un container sau personalizată pentru a adăuga elemente suplimentare pentru a extinde configurația curentă.

Puteți partaja imaginile de containere între echipe din cadrul unei întreprinderi cu ajutorul unui registru de containere private sau le puteți partaja cu lumea utilizând un registru public precum Docker Hub. Imaginile sunt elementul de bază al experienței Docker, deoarece permit colaborarea între dezvoltatori într-un mod care înainte nu era posibil

2. Containere

Containerele sunt un fel de medii încapsulate în care rulați aplicații. Containerul este definit de imagine și de orice opțiuni de configurare suplimentare furnizate la pornirea containerului, inclusiv și nu limitat la conexiunile de rețea și opțiunile de stocare. Containerele au acces doar la resursele definite în imagine, cu excepția cazului în care accesul suplimentar este definit la construirea imaginii într-un container.

De asemenea, puteți crea o nouă imagine bazată pe starea actuală a unui container. Deoarece containerele sunt mult mai mici decât VM-urile, acestea pot fi rotite în câteva secunde și duc la o densitate a serverului mult mai bună

3. Rețele

Rețeaua Docker este un pasaj prin care comunică toate containerele izolate. Există în principal cinci drivere de rețea în docker:

cum se implementează un hashmap
    1. Pod : Este driverul de rețea implicit pentru un container. Utilizați această rețea atunci când aplicația dvs. rulează pe containere independente, adică mai multe containere care comunică cu aceeași gazdă de andocare.

    2. Gazdă : Acest driver elimină izolarea rețelei între containerele de andocare și gazda de andocare. Îl puteți folosi atunci când nu aveți nevoie de nicio izolare a rețelei între gazdă și container.

    3. Acoperire : Această rețea permite serviciilor de roi să comunice între ele. Îl utilizați atunci când doriți ca containerele să ruleze pe diferite gazde Docker sau când doriți să formați servicii de roi prin mai multe aplicații.

    4. Nici unul : Acest driver dezactivează toate rețelele.

    5. macvlan : Acest driver atribuie adresa Mac containerelor pentru a le face să arate ca dispozitive fizice. Direcționează traficul între containere prin adresele lor Mac. Utilizați această rețea atunci când doriți ca containerele să arate ca un dispozitiv fizic, de exemplu, în timp ce migrați o configurare VM.

4. Depozitare

Puteți stoca date în stratul de scriere al unui container, dar necesită un driver de stocare. Fiind non-persistent, acesta piere ori de câte ori containerul nu funcționează. Mai mult, nu este ușor să transferați aceste date. În ceea ce privește stocarea persistentă, Docker oferă patru opțiuni:

    1. Volumele de date : Oferă posibilitatea de a crea stocare persistentă, cu posibilitatea de a redenumi volumele, de a enumera volumele și, de asemenea, de a enumera containerul asociat cu volumul. Volumele de date sunt plasate pe sistemul de fișiere gazdă, în afara containerelor mecanismul de copiere pe scriere și sunt destul de eficiente.

    2. Container de volum : Este o abordare alternativă în care un container dedicat găzduiește un volum și pentru a monta acel volum pe alte containere. În acest caz, containerul de volum este independent de containerul aplicației și, prin urmare, îl puteți partaja în mai multe containere.

      pl sql pentru începători cu exemple
    3. Suporturi pentru directoare : O altă opțiune este de a monta directorul local al unei gazde într-un container. În cazurile menționate anterior, volumele ar trebui să se afle în folderul Docker volume, în timp ce când vine vorba de Directory Mounts, orice director de pe mașina gazdă poate fi folosit ca sursă pentru volum.

    4. Pluginuri de stocare : Pluginurile de stocare oferă posibilitatea de a vă conecta la platforme de stocare externe. Aceste pluginuri mapează stocarea de la gazdă la o sursă externă, cum ar fi o matrice de stocare sau un dispozitiv. Puteți vedea o listă de pluginuri de stocare pe pagina Plugin Docker.

Registrul Docker

Registrele Docker sunt servicii care oferă locații de unde puteți stoca și descărca imagini. Cu alte cuvinte, un registru Docker conține depozite Docker care găzduiesc una sau mai multe imagini Docker. Registrele publice includ două componente și anume Docker Hub și Docker Cloud. De asemenea, puteți utiliza registrele private. Cele mai frecvente comenzi atunci când se lucrează cu registre includ: împingere de andocare, tragere de andocare, rulare de andocare

Acum, că ați înțeles Arhitectura Docker, verificați acest lucru de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul Edureka DevOps Certification Training îi ajută pe cursanți să înțeleagă ce este DevOps și să câștige expertiză în diferite procese și instrumente DevOps precum Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack și GIT pentru automatizarea mai multor pași în SDLC.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestei „Arhitecturi Docker” și vă vom răspunde