Introducere în Docker: Ce este, arhitectură, flux de lucru

Publicat: 2020-04-27

Cuprins

Istoria virtualizării

Nu cu mult timp în urmă, implementarea unui serviciu a fost un proces atât lent, cât și dureros. Procesul a implicat scrierea codului de către echipa de dezvoltare și apoi implementarea acestuia de către echipa de operațiuni pe mașini metalice. Echipa de operațiuni obișnuia să aibă munca întreruptă, deoarece trebuia să caute compilatoare de limbi, biblioteci și patch-uri pentru a face codul să funcționeze.

Dacă procesul ar avea erori sau erori, ar trebui să înceapă totul din nou – echipa de dezvoltare ar remedia erorile sau erorile, iar echipa de operațiuni ar începe din nou să implementeze codul.

Lucrurile s-au îmbunătățit puțin când au fost dezvoltate Hypervisorii. Deci, ce sunt Hypervisorii? Acestea sunt o colecție de mașini virtuale (VM) care pot fi în mod continuu în funcțiune sau oprite la intervale regulate, mai ales atunci când nu sunt utilizate. Mașinile virtuale au ajutat cu siguranță prin accelerarea procesului de remediere a erorilor și de implementare a codului, dar au avut încă câteva probleme. Containerele Docker au venit ca adevărate schimbări ale jocului. Au abordat chiar și problemele care existau în mașinile virtuale.

Citește: Kubernetes vs. Docker: diferențe primare

Ce este Docker?

Este o platformă open-source care este folosită de dezvoltatorii de pe tot globul pentru a rula, împacheta și distribui aplicații. Docker face ca procesul de încapsulare a aplicațiilor de la primul până la ultimul pas să fie foarte ușor și eficient. Pentru a înțelege Docker într-un mod mai bun, va trebui să înțelegeți ce sunt containerele și cum funcționează.

Un container nu este altceva decât un pachet autonom, ușor și executabil al unei părți a software-ului care vine cu tot ceea ce este necesar pentru a-l rula. Containerele nu depind în niciun caz de platforme. Deci, Docker este compatibil atât cu mașinile bazate pe Windows, cât și cu Linux. De asemenea, puteți chiar să rulați Docker pe o mașină virtuală, dacă este nevoie. Obiectivul de bază pe care Docker își propune să-l atingă este de a permite dezvoltatorilor să folosească arhitectura distribuită pentru a rula aplicații de microservicii.

Spre deosebire de mașinile virtuale care obișnuiau să efectueze abstracția hardware-ului, Docker urcă un nivel și realizează abstracția unui set diferit de resurse la nivelul sistemului de operare. Acest lucru oferă mai multe beneficii, inclusiv separarea infrastructurii și portabilitatea aplicațiilor, printre altele. Cu alte cuvinte, spre deosebire de mașinile virtuale care obișnuiau să abstragă serverul hardware, abordarea bazată pe container a lui Docker funcționează prin abstracția nucleului sistemului de operare. Aceasta este o alternativă excelentă la virtualizare, care duce la crearea mai rapidă a instanțelor ușoare. Docker este disponibil în două versiuni:

Ediția Enterprise (EE):

Această versiune este concepută special pentru echipele IT și dezvoltarea întreprinderilor. Această versiune este folosită pentru a dezvolta, livra și rula aplicații.

Ediția comunitară (CE):

Această versiune este folosită de indivizi și echipe mici care explorează aplicații bazate pe container sau care încep să utilizeze Docker.

Citiți: Idei și subiecte de proiecte Full Stack

Flux de lucru Docker

În această secțiune, ne vom concentra asupra motorului Docker, precum și asupra diferitelor componente ale acestuia. Acest lucru ne va ajuta să înțelegem mai bine cum funcționează Docker înainte de a trece la arhitectura Docker. Docker Engine este puterea care permite dezvoltarea pentru a îndeplini diverse funcții folosind această aplicație bazată pe container. Puteți utiliza componentele care sunt enumerate mai jos pentru a construi, împacheta, expedia și rula aplicații.

1. Docker Daemon

Este procesul de fundal care funcționează continuu pentru a vă ajuta să gestionați imaginile, volumele de stocare, rețelele și containerele. Întotdeauna caută cereri Docker API pentru a le procesa.

2. Docker CLI

Este un client de interfață care interacționează cu Docker Daemon. Ajută dezvoltatorii să simplifice procesul de gestionare a instanțelor containerului. Este unul dintre motivele principale pentru care dezvoltatorii preferă Docker față de alte aplicații similare .

3. API-ul Docker Engine Rest

Facilitează interacțiunile dintre demonul Docker și aplicații. Un client HTTP este de obicei necesar pentru a accesa aceste API-uri.

Arhitectura Docker

Arhitectura Docker este o arhitectură bazată pe client-server. Are trei componente majore care sunt menționate mai jos:

  1. Gazdă Docker
  2. Client Docker
  3. Registrul Docker
  4. Obiecte Docker

În faza inițială, clientul Docker interacționează cu demonul, care este responsabil pentru efectuarea unei mari părți a activității necesare dezvoltării, rulării și distribuirii containerelor Docker.

Daemonul Docker și clientul pot rula fie pe un singur sistem, fie dezvoltatorul poate folosi un daemon la distanță pentru a-l conecta la un client Docker local. Rest API este folosit pentru a stabili comunicarea între demonul Docker și client. Acest lucru se poate face fie printr-o interfață de rețea, fie prin socket-uri UNIX.

Să discutăm acum în detaliu componentele arhitecturii Docker.

Citește și: De ce să devii un dezvoltator Full Stack?

1. Docker Host

O gazdă Docker este responsabilă pentru rularea demonului Docker. Docker Daemon acceptă solicitările API, inclusiv construirea docker și rularea docker, printre altele. De asemenea, gestionează imagini, rețele, containere și alte obiecte Docker. Demonii pot comunica între ei pentru a gestiona diferite servicii Docker.

2. Client Docker

Nu este altceva decât metoda pe care utilizatorii o folosesc pentru a interacționa cu Docker. Clientul Docker trimite solicitările noastre, cum ar fi rularea docker, iar Docker creează către demonul Docker. O caracteristică foarte importantă a clientului Docker este că poate comunica cu mai mulți demoni.

3. Docker Registry

Un registru este o aplicație pe partea de server care este scalabilă și fără stat. Nu numai că stochează imaginile Docker, dar le permite dezvoltatorilor să le distribuie, de asemenea. Docker ne oferă flexibilitatea de a ne crea propriile imagini sau există registre publice disponibile pe care le putem folosi. Aceste registre includ Docker Cloud și Docker Hub , printre altele.

Configurația lui Docker este de așa natură încât apelează întotdeauna la Docker Hub și alte registre publice pentru a căuta imagini. Cu toate acestea, avem opțiunea de a crea propriul nostru registru. Deci, putem extrage imaginile necesare folosind propriile registre cu ajutorul comenzilor docker run și docker pull. Comanda push Docker împinge imaginea necesară în registrul pe care l-am creat.

4. Obiecte Docker

Folosim și creăm mai multe obiecte în timp ce folosim Docker. Aceste obiecte includ containere, imagini, pluginuri, volume, rețele și altele.

5. Docker Images

O imagine Docker nu este altceva decât un șablon numai pentru citire care ne oferă instrucțiunile necesare pentru a crea un container. În multe ocazii, o imagine are o legătură cu o altă imagine. Ceea ce diferențiază două imagini este stratul adăugat de personalizare. Pentru a spune altfel, o imagine poate fi definită și ca un instantaneu imuabil al unui container. Imaginile sunt mici, ușoare și rapide.

6. Containere Docker

Să urmăm o abordare diferită pentru a înțelege containerele Docker. Deci, dacă o imagine ar putea fi folosită pentru reprezentarea unei clase, un container ar putea fi instanța acesteia. Cu alte cuvinte, un container este un obiect de rulare. Putem crea, porni, muta, opri sau șterge containere cu ajutorul Docker CLI sau API. Containerele pot fi, de asemenea, atașate la stocare și conectate la una sau mai multe rețele. În funcție de starea curentă a unui container, putem crea și o nouă imagine.

Concluzie

Acum că știți ce este arhitectura Docker și componentele sale, vă aflați într-o poziție mai bună pentru a înțelege creșterea popularității sale. Simplifică gestionarea infrastructurii și ajută la crearea instanțelor mai rapide, mai ușoare și mai rezistente.

Dacă sunteți interesat să aflați mai multe despre codificarea stivă completă, consultați Diploma PG în dezvoltare software full-stack de la upGrad și IIIT-B, care este concepută pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte și misiuni, Statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Pregătiți-vă pentru o carieră a viitorului

ÎNVĂȚARE DE ÎNCREDERE ÎN INDUSTRIE - CERTIFICARE RECUNOSCĂ ÎN INDUSTRIE.
Aplica acum