This is an old revision of the document!


Cursul 04 - Docker

Containere

Conceptul de container nu este unul nou, în mediul Linux având mai multe implementări. Printre primele este cunoscutul chroot(), ce permite unui proces să ruleze într-un mediu izolat, practic în propriul sistem de fișiere izolat. Un alt tip de container cunoscut este LXC, prescurtare de la LinuX Containers, și permite rularea unui întreg sistem de operare într-un container, ceea ce presupune o asemănare cu mașinile virtuale adevărate: se pot instala pachete software, se pot realiza operații de actualizare, se pot modifica configurații.

Mașini virtuale vs Containere

Există deseori o confuzie între containere și mașini virtuale, dar trebuie remarcat că ele sunt două concepte diferite. Un container nu are niciun program de emulare pentru componente hardware, precum are o mașină virtuală și este văzut ca un simplu proces. Spre deosebire, mașina virtuală conține un întreg sistem de operare incluzând procesoare virtuale, interfețe de rețea și presupune implicit un consum foarte mare de resurse, de aceea se evidențiază și diferența considerabilă de dimensiune între cele două. O diferență derivată din dimensiune este portabilitatea: implicit containerele pot fi migrate ușor pe orice platformă compatibilă (spre exemplu: orice Linux capabil să ruleze Docker). În final, un container nu reprezintă altceva decât un proces sau un grup de procese pe o mașină gazdă, care consideră că rulează pe propria mașină separată. Mașina gazdă știe că un container este de fapt un proces, dar containerul crede că el este o mașină separată în sine.

Docker

Conform documentației oficiale, Docker este o platformă pentru dezvoltare, livrare și dezvoltare de aplicații. Containerele sunt:

  • efemere
  • de dimensiune redusă
  • specializate

Efemere înseamnă ca toate datele generate în cadrul rulării acelui container vor fi pierdute atunci când el nu mai există. Containerele sunt specializate pentru un singur scop specific în general, spre exemplu: rularea unei aplicații Java, rularea de teste automate, mediu de debug cu unelte specifice(nmap, tshark). Astfel un container va conține doar minimul necesar de pachete software, rezultând o dimensiune redusă.

devops/cursuri/04.1626881142.txt.gz · Last modified: 2021/07/21 18:25 by oana.minciu.th
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0