Pe scurt: un container software împachetează o aplicație cu tot ce are nevoie ca să ruleze: cod, biblioteci și setări. Deoarece folosește nucleul sistemului gazdă, pornește în câteva secunde și se comportă la fel pe laptopul dezvoltatorului, pe un server de test și în producție.
Dacă ai auzit „la mine merge” într-o echipă de programatori, ai întâlnit exact problema pe care o rezolvă containerele. Aplicațiile depind de versiuni de limbaje, biblioteci și configurări care diferă de la un calculator la altul. Containerul îngheață toate aceste dependențe într-o unitate portabilă.
Ce este un container și cum diferă de o mașină virtuală
Un container este un proces izolat care împarte nucleul sistemului de operare cu celelalte containere, pe când o mașină virtuală rulează un sistem de operare complet. Din această cauză containerele sunt mai mici, pornesc mai repede și consumă mai puține resurse. Prețul este o izolare ceva mai slabă decât la virtualizarea completă, ceea ce contează în mediile cu cerințe de securitate ridicate.
Ce conține imaginea unui container
Imaginea este șablonul de la care pornește containerul și conține sistemul de fișiere, aplicația și instrucțiunile de pornire. Imaginile sunt formate din straturi suprapuse, care se pot reutiliza între ele. Detalii despre structura lor găsești în articolul despre imaginea de container: ce conține și cum se construiește. Reține diferența: imaginea este rețeta, iar containerul este instanța care rulează.
Cum împachetezi o aplicație în pași simpli
Împachetarea începe cu un fișier text care descrie, pas cu pas, cum se construiește imaginea. Procesul arată, în linii mari, așa:
- alegi o imagine de bază mică, potrivită limbajului aplicației;
- copiezi codul și instalezi dependențele;
- definești comanda care pornește aplicația;
- construiești imaginea și o testezi local;
- o publici într-un registru, de unde o pot descărca serverele.
Păstrează imaginile cât mai mici și nu include în ele parole sau chei de acces.
Unde se potrivesc containerele și unde mai puțin
Containerele se potrivesc cel mai bine aplicațiilor fără stare, precum serviciile web, și mai greu bazelor de date cu cerințe stricte de stocare. Se folosesc des în arhitecturile formate din servicii mici, pentru că fiecare serviciu se poate actualiza independent. Pentru aplicații mici, uneori un server clasic este suficient și mai simplu de administrat.
Comparație rapidă
| Caracteristică | Container | Mașină virtuală |
|---|---|---|
| Timp de pornire | Secunde | Minute |
| Dimensiune | De regulă mică | De regulă mare |
| Izolare | La nivel de proces | Sistem complet |
| Portabilitate | Foarte bună | Moderată |
Unde înveți mai departe
Dacă vrei să înțelegi cum funcționează tehnologia în general, de la rețele la servicii cloud, explicațiile de pe LumeaTehnologiei sunt scrise pe înțelesul unui începător. Pornește de la un exemplu mic, rulat pe propriul calculator.
Întrebări frecvente
Este un container același lucru cu o aplicație?
Nu. Containerul este mediul în care rulează aplicația, împreună cu dependențele ei, iar aplicația este doar o parte a conținutului.
Sunt containerele sigure?
Pot fi, dacă folosești imagini din surse de încredere, le actualizezi și limitezi drepturile procesului. Siguranța depinde de configurare.
Am nevoie de containere pentru un site mic?
De obicei nu. Devin utile când ai mai multe servicii sau când vrei să reproduci ușor același mediu pe mai multe calculatoare.
Cel mai bun început este să împachetezi o aplicație foarte simplă și să observi ce se schimbă la fiecare pas.

