Ce este Docker? Containerele explicate pentru non-dezvoltatori
Docker este un instrument care împachetează o aplicație împreună cu tot ce are nevoie ca să ruleze — versiunea potrivită a limbajului, bibliotecile, uneltele de sistem și setările — într-o unitate standard numită container. Un container rulează la fel pe laptopul unui dezvoltator, pe un server de test sau pe un host în cloud, ceea ce rezolvă clasica problemă „la mine funcționa”. Rețeta pentru construirea unui container este un fișier text scurt numit Dockerfile.
De ce contează Docker când construiești cu AI
Dacă aplicația ta are un backend — un API în Python, Node, C# sau Java — trebuie să ruleze undeva unde este instalat exact software-ul potrivit. Docker este cel mai comun mod de a face asta repetabil.
- Implementarea backend-urilor. Multe hosturi, inclusiv Mythex, implementează backend-urile construind un container dintr-un Dockerfile. În Mythex, dacă ceri „un Web API în C#” sau „un backend Java”, primești aplicația plus un Dockerfile, iar Publish construiește imaginea și o implementează (API backends).
- Plecarea de pe o platformă. Dacă exporți o aplicație construită cu AI, un Dockerfile face mult mai ușor să o rulezi pe alt host. Vezi cum exportezi și găzduiești singur o aplicație construită cu AI.
- Lucrul cu dezvoltatori. Un dezvoltator care se alătură proiectului tău poate porni întreaga aplicație cu una sau două comenzi, în loc să petreacă o zi instalând lucruri.
O analogie din viața de zi cu zi: containerele de transport
Înainte de containerele standard de transport, marfa era încărcată bucată cu bucată — saci, butoaie, lăzi — iar fiecare port o trata diferit. Containerul standard din oțel a schimbat asta: îl împachetezi o dată, iar orice navă, macara, tren sau camion îl poate muta fără să-i pese ce are înăuntru.
Docker face același lucru pentru software:
- Dockerfile-ul este lista de împachetare și instrucțiunile.
- Imaginea este containerul sigilat, împachetat.
- Un container în funcțiune este cutia pusă la lucru pe o navă — aici, un server.
- Docker Engine este macaraua și nava: software-ul de pe un server care știe să ruleze orice container.
Cum funcționează Docker
| Componentă | Ce este |
|---|---|
| Dockerfile | Un fișier text cu instrucțiuni pas cu pas pentru construirea imaginii. |
| Imagine | Un pachet doar pentru citire: elemente de bază ale sistemului de operare, runtime, biblioteci și codul tău. |
| Container | O instanță în funcțiune a unei imagini, izolată de alte aplicații de pe aceeași mașină. |
| Registru | Un loc unde se stochează și se partajează imaginile, precum Docker Hub sau registrul unui furnizor de cloud. |
| Docker Engine | Serviciul de fundal care construiește imagini și rulează containere. Gratuit și open source. |
| Docker Desktop | O aplicație pentru Mac, Windows și Linux care include motorul împreună cu o interfață grafică. |
Containere vs mașini virtuale: o mașină virtuală se preface că este un calculator separat, cu propriul sistem de operare, deci este grea și pornește lent. Un container împarte nucleul sistemului de operare al gazdei și izolează doar aplicația și fișierele ei, deci de obicei pornește în câteva secunde și consumă mult mai puțină memorie. Mai multe containere pot rula alături pe un singur server.
Un exemplu practic: un mic API Python
Să presupunem că constructorul tău de aplicații cu AI a creat un backend Python FastAPI pentru o aplicație de rezervări. Dockerfile-ul ar putea arăta așa:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Linie cu linie:
| Linia | Ce face |
|---|---|
FROM python:3.12-slim | Pornește de la o imagine oficială care are deja Python 3.12 instalat. |
WORKDIR /app | Lucrează în folderul /app din container. |
COPY requirements.txt . și RUN pip install ... | Copiază lista de biblioteci și le instalează. |
COPY . . | Copiază codul propriu al aplicației. |
EXPOSE 8000 | Notează că aplicația ascultă pe portul 8000. |
CMD [...] | Comanda care pornește serverul web când rulează containerul. |
Pe scurt: „Pornește cu Python 3.12. Instalează bibliotecile listate în requirements.txt. Copiază codul. Pornește serverul web pe portul 8000.”
Apoi un dezvoltator (sau o platformă de hosting) rulează două comenzi:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
Prima construiește imaginea și îi dă numele booking-api. A doua pornește un container și conectează portul 8000 de pe mașină la portul 8000 din container. API-ul rulează acum — exact la fel cum va rula pe orice server care are Docker.
Observă ce nu există în imagine: parole și chei API. Acestea se transmit la pornirea containerului, ca variabile de mediu, astfel încât aceeași imagine poate rula în testare și în producție cu setări diferite.
Termeni cheie
| Termen | Înseamnă |
|---|---|
| Container | Un pachet izolat, în funcțiune, cu o aplicație și dependențele ei. |
| Imagine | Șablonul din care se pornește un container. |
| Imagine de bază | Punctul de plecare din linia FROM a unui Dockerfile, de exemplu python:3.12-slim sau node:22. |
| Strat (layer) | Fiecare pas din Dockerfile adaugă un strat în cache, ceea ce face reconstruirile mai rapide. |
| Mapare de porturi | Conectarea unui port de pe gazdă la un port din interiorul containerului. |
| Volum | Stocare care supraviețuiește înlocuirii unui container. Containerele în sine sunt de unică folosință. |
| Docker Compose | Un fișier care descrie mai multe containere care rulează împreună, de exemplu un API plus o bază de date. |
| Kubernetes | Un sistem pentru rularea multor containere pe multe servere. Majoritatea aplicațiilor mici nu au nevoie de el. |
Concepții greșite frecvente
- „Docker este o mașină virtuală.” Este mai ușor: containerele împart nucleul gazdei.
- „Datele salvate într-un container sunt în siguranță.” Containerele sunt făcute să fie aruncate și înlocuite. Orice trebuie să dureze — datele utilizatorilor, fișierele încărcate — aparține unei baze de date, stocării de fișiere sau unui volum.
- „Pun secretele în Dockerfile, e în regulă pentru că e privat.” Imaginile se partajează și se trimit în registre. Transmite secretele la rulare.
- „Docker face o aplicație sigură.” Izolarea ajută, dar un container cu software învechit și setări slabe este tot vulnerabil.
- „Orice aplicație are nevoie de Docker.” Un site static sau un frontend simplu se găzduiește de obicei ca fișiere simple, fără niciun container.
- „Docker Desktop este gratuit pentru toată lumea.” Motorul este gratuit; Docker Desktop cere un abonament plătit pentru companiile mai mari, conform termenilor Docker.
Ce să ceri constructorului tău de aplicații cu AI
- „Această aplicație are nevoie de un Dockerfile? Dacă da, explică fiecare linie în limbaj simplu.”
- „Folosește o imagine de bază mică și oficială și fixează versiunea limbajului.”
- „Ține secretele afară din imagine. Citește-le din variabile de mediu la rulare.”
- „Asigură-te că fișierele încărcate și datele sunt stocate în baza de date sau în stocarea de fișiere, nu în container.”
- „Adaugă un fișier Docker Compose ca un dezvoltator să poată rula frontend-ul, API-ul și baza de date local cu o singură comandă.”
- „Adaugă un endpoint de verificare a stării, ca hostul să poată spune dacă API-ul funcționează.”
Docker în Mythex
Nu trebuie să instalezi sau să rulezi Docker ca să folosești Mythex. Proiectul tău rulează într-un sandbox privat în cloud, iar când ceri un backend care are nevoie de un container — de exemplu C#, Java sau un serviciu Node sau Python personalizat — Mythex scrie aplicația plus un Dockerfile, o previzualizează în sandbox și o implementează când publici, fără nicio configurare de hosting (cum este aleasă tehnologia). Pe Pro poți exporta proiectul sau îl poți sincroniza cu GitHub și să iei Dockerfile-ul cu tine. Pentru felul în care backend-urile și frontend-urile se potrivesc, vezi frontend vs backend.
Întrebări
Ce este Docker, în termeni simpli?
Docker este un instrument care împachetează o aplicație împreună cu tot ce are nevoie ca să ruleze — runtime-ul limbajului, bibliotecile și setările — într-o unitate standard numită container. Containerul rulează la fel pe un laptop, pe un server de test sau pe un host în cloud.
Care este diferența dintre o imagine Docker și un container?
O imagine este șablonul împachetat, doar pentru citire: aplicația și dependențele ei, construite dintr-un Dockerfile. Un container este o copie care rulează a unei imagini. Poți porni mai multe containere dintr-o singură imagine.
Este Docker o mașină virtuală?
Nu. O mașină virtuală emulează un calculator întreg, cu propriul sistem de operare. Containerele împart nucleul sistemului de operare al mașinii gazdă și izolează doar aplicația, deci pornesc mai repede și consumă mai puțină memorie.
Este Docker gratuit?
Docker Engine, nucleul care rulează containerele, este gratuit și open source. Din septembrie 2026, termenii Docker spun că Docker Desktop este gratuit pentru proiecte open source necomerciale și pentru companii cu mai puțin de 250 de angajați și sub 10 milioane de dolari venit anual; companiile mai mari au nevoie de un abonament plătit.
Trebuie să învăț Docker ca să construiesc o aplicație cu AI?
De obicei nu. Mulți constructori de aplicații cu AI se ocupă de containere în locul tău. Ajută să știi ce este un Dockerfile, ca să înțelegi cum este împachetat un backend și ca să poți rula sau găzdui aplicația în altă parte dacă o exporți.