Docker este format din câteva componente care lucrează împreună: un daemon (procesul de fundal care gestionează containerele), un client (comanda docker pe care o folosiți în terminal) și o API REST prin care clientul comunică cu daemonul.
Docker - concepte de bază (imagini, containere)
Docker este format din câteva componente care lucrează împreună: un daemon (procesul de fundal care gestionează containerele), un client (comanda docker pe...
Introducere
Imagine versus container
Cea mai importantă distincție în Docker este între imagine și container:
- Imaginea este un șablon read-only, care conține sistemul de fișiere al aplicației: cod, librării, configurare. Se construiește o singură dată dintr-un fișier numit
Dockerfile. - Containerul este o instanță în execuție a unei imagini. La fel cum dintr-o clasă (imaginea) puteți crea mai multe obiecte (containerele), din aceeași imagine puteți porni oricâte containere identice, izolate unul de celălalt.
Analogie utilă
Imaginea Docker este ca o rețetă de gătit tipărită, care nu se schimbă. Containerul este mâncarea gătită conform rețetei - puteți găti aceeași rețetă de câte ori doriți, obținând de fiecare dată un rezultat identic, iar dacă terminați o porție (opriți containerul), rețeta rămâne neschimbată pentru următoarea gătire.
Structura pe straturi (layers)
O imagine Docker nu este un singur fișier, ci o succesiune de straturi (layers) suprapuse, fiecare corespunzând unei instrucțiuni din Dockerfile. Docker folosește un sistem de fișiere de tip union, care combină toate straturile într-un singur sistem de fișiere unificat la rulare.
Straturile sunt cache-uite și reutilizate: dacă un strat nu s-a schimbat față de build-ul anterior, Docker îl refolosește direct, fără să-l reconstruiască. Acest mecanism este esențial pentru viteza build-urilor, subiect detaliat în capitolul despre Dockerfile.
Glosar de termeni esențiali
| Termen | Descriere |
|---|---|
| Image (imagine) | Șablon read-only din care se creează containere |
| Container | Instanță în execuție a unei imagini, izolată de restul sistemului |
| Dockerfile | Fișier text cu instrucțiuni pentru construirea unei imagini |
| Registry | Server unde sunt stocate și distribuite imaginile (ex: Docker Hub) |
| Tag | Etichetă a unei versiuni de imagine (ex: nginx:1.27) |
| Volume | Mecanism pentru persistența datelor dincolo de ciclul de viață al containerului |
| Network | Rețea virtuală prin care containerele comunică între ele |
| Docker Compose | Instrument pentru definirea și rularea aplicațiilor cu mai multe containere |
Arhitectura client-server
Când scrieți docker run nginx în terminal, se întâmplă următoarele:
- Clientul
dockertrimite cererea către daemonul Docker (dockerd) prin API - Daemonul verifică dacă imaginea
nginxexistă local - Dacă nu există, o descarcă automat de pe Docker Hub (registry-ul implicit)
- Daemonul creează un container nou pornind de la imagine și îl pornește
- Ieșirea (logs) containerului este transmisă înapoi către client
docker context permit comutarea rapidă între un daemon local și unul de pe un server VPS.
Continuați cu restul cursului
Acesta este capitolul 2 din cele 14 ale cursului, cu 5 lecții din 86. Cumpărați cursul și parcurgeți tot conținutul în cont, cu progres salvat, test final și certificat.
Cumpărați cursul la 130 €