Arhitectura Docker și componentele sale pentru începători

Să ne familiarizăm cu arhitectura Docker și cu componentele sale esențiale.

Presupun că aveți o înțelegere de bază despre Docker. Dacă nu, puteți consulta acest articol anterior.

Cred că înțelegeți importanța Docker în DevOps. Acum, în spatele acestui instrument fantastic, trebuie să existe o arhitectură uimitoare, bine gândită. Nu-i aşa?

Dar înainte de a vorbi despre asta, permiteți-mi să vă prezint sistemele de virtualizare anterioare și actuale.

Virtualizare tradițională versus noua generație

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.

Acum, în cazul containerului docker, aveți un singur sistem de operare, iar resursele sunt partajate între containere. Prin urmare, este ușor și cizme în câteva secunde.

Arhitectura Docker

Mai jos este diagrama simplă a unei arhitecturi Docker.

Permiteți-mi să vă explic componentele unei arhitecturi docker.

Docker Engine

Este partea centrală a întregului sistem Docker. Docker Engine este o aplicație care urmează arhitectura client-server. Este instalat pe mașina gazdă. Există trei componente în motorul Docker:

  • Server: este demonul docker numit dockerd. Poate crea și gestiona imagini Docker. Containere, rețele etc.
  • Rest API: este folosit pentru a instrui demonul docker ce trebuie să facă.
  • Interfață de linie de comandă (CLI): este un client care este utilizat pentru a introduce comenzile docker.

Client Docker

Utilizatorii Docker pot interacționa cu Docker printr-un client. Când rulează orice comenzi docker, clientul le trimite către demonul dockerd, care le execută. Docker API este folosit de comenzile Docker. Clientul Docker poate comunica cu mai mult de un demon.

  Crearea popovers, alerte și toasts cu Blueprint UI în React

Registre Docker

Este locația în care sunt stocate imaginile Docker. Poate fi un registru docker public sau un registru docker privat. Docker Hub este locul implicit al imaginilor docker, registrul public al magazinelor sale. De asemenea, puteți crea și rula propriul registru privat.

Când executați comenzi docker pull sau docker run, imaginea docker necesară este extrasă din registrul configurat. Când executați comanda docker push, imaginea docker este stocată în registrul configurat.

Obiecte Docker

Când lucrați cu Docker, utilizați imagini, containere, volume, rețele; toate acestea sunt obiecte Docker.

Imagini

Imaginile Docker sunt șabloane numai pentru citire, cu instrucțiuni pentru a crea un container Docker. Imaginea Docker poate fi extrasă dintr-un hub Docker și utilizată așa cum este, sau puteți adăuga instrucțiuni suplimentare la imaginea de bază și puteți crea o imagine Docker nouă și modificată. Puteți crea propriile imagini docker folosind și un fișier docker. Creați un fișier docker cu toate instrucțiunile pentru a crea un container și a-l rula; va crea imaginea dvs. personalizată de docker.

Imaginea Docker are un strat de bază care este doar pentru citire, iar stratul superior poate fi scris. Când editați un fișier docker și îl reconstruiți, numai partea modificată este reconstruită în stratul superior.

Containere

După ce rulați o imagine docker, aceasta creează un container docker. Toate aplicațiile și mediul lor rulează în interiorul acestui container. Puteți folosi Docker API sau CLI pentru a porni, opri, șterge un container docker.

Mai jos este un exemplu de comandă pentru a rula un container docker ubuntu:

docker run -i -t ubuntu /bin/bash

Volumele

Datele persistente generate de docker și utilizate de containerele Docker sunt stocate în volume. Ele sunt complet gestionate de docker prin docker CLI sau Docker API. Volumele funcționează atât pe containerele Windows, cât și pe Linux. În loc să păstrați datele în stratul care poate fi scris al unui container, este întotdeauna o opțiune bună să utilizați volume pentru acesta. Conținutul volumului există în afara ciclului de viață al unui container, astfel încât utilizarea volumului nu crește dimensiunea unui container.

  Merită abonamentul?

Puteți utiliza flag -v sau –mount pentru a porni un container cu un volum. În acest exemplu de comandă, utilizați volumul geekvolume cu containerul tipstrick.ro.

docker run -d --name tipstrick.ro  -v geekvolume:/app nginx:latest

Rețele

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

  • Bridge: este driverul de rețea implicit pentru un container. Utilizați această rețea atunci când aplicația dumneavoastră rulează pe containere autonome, adică mai multe containere care comunică cu aceeași gazdă docker.
  • Gazdă: acest driver elimină izolarea rețelei dintre containerele docker și gazda docker. Este folosit atunci când nu aveți nevoie de izolarea rețelei între gazdă și container.
  • Suprapunere: această rețea permite serviciilor roi să comunice între ele. Este folosit atunci când containerele rulează pe diferite gazde Docker sau când serviciile swarm sunt formate din mai multe aplicații.
  • Niciunul: acest driver dezactivează toate conexiunile în rețea.
  • macvlan: acest driver atribuie adresa mac containerelor pentru a le face să arate ca dispozitive fizice. Traficul este direcționat între containere prin adresele lor Mac. Această rețea este utilizată atunci când doriți ca containerele să arate ca un dispozitiv fizic, de exemplu, în timpul migrării unei configurații VM.
  • Concluzie

    Sper că acest lucru vă oferă o idee despre arhitectura Docker și despre componentele sale esențiale. Navigați prin Docker pentru a afla mai multe și, dacă sunteți interesat să obțineți un antrenament practic, atunci verificați acest lucru Curs Docker Mastery.

    Ți-a plăcut să citești articolul? Ce zici de împărtășirea cu lumea?