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.
Cuprins
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.
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.
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:
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?