Nov 13, 2023

Šta je Docker?

Šta je Docker?

 Docker je platforma za razvoj, dostavu i pokretanje aplikacija u kontejnerima. Ova tehnologija omogućava programerima da pakuju aplikacije i sve njihove zavisnosti u lagan i prenosiv kontejner. Docker koristi tehnologiju kontejnerizacije na nivou operativnog sistema kako bi omogućio izolaciju resursa i konzistentno izvršavanje aplikacija nezavisno od okoline.

Glavne komponente Docker platforme uključuju:

  1. Docker Engine: Jezgro Docker platforme koje omogućava kreiranje i upravljanje kontejnerima. To uključuje Docker daemon (servis koji upravlja kontejnerima) i Docker CLI (komandna linija za interakciju sa Dockerom).

  2. Docker Image: Paket koji sadrži aplikaciju, zajedno sa svim potrebnim zavisnostima, konfiguracijama i kôdom. Docker image se koristi za kreiranje kontejnera.

  3. Docker Container: Instanca Docker image-a koja se izvršava kao izolovani proces. Kontejneri su prenosivi, dosledni i brzo se mogu pokrenuti ili zaustaviti.

Docker olakšava rad razvojnih timova tako što eliminiše probleme oko različitih okolina za razvoj, testiranje i produkciju. Programeri mogu kreirati Docker image svoje aplikacije na svom računaru i taj isti image može se koristiti u bilo kojoj Docker kompatibilnoj okolini bez brige o razlikama u konfiguraciji ili zavisnostima.

U suštini, Docker omogućava lakše upravljanje i isporuku aplikacija pomoću kontejnerizacije.

Šta je Docker Engine?

Docker Engine je centralna komponenta Docker platforme koja omogućava upravljanje i izvršavanje kontejnera. Sastoji se iz nekoliko ključnih delova:

  1. Docker Daemon: Ovo je pozadinski proces (servis) koji upravlja kontejnerima na sistemu. On prima zahteve od Docker CLI (Command Line Interface) i komunicira sa Docker Registrom (gde se čuvaju Docker image-ovi) i lokalnim Docker Storage-om (gde se čuvaju Docker image-i i podaci kontejnera). Docker Daemon je odgovoran za pokretanje, zaustavljanje, i upravljanje životnim ciklusom kontejnera.

  2. Docker CLI: Ovo je korisnički interfejs putem komandne linije koji omogućava korisnicima da komuniciraju sa Docker Daemon-om. Korisnici koriste Docker CLI da izdaju komande kao što su kreiranje, pokretanje, zaustavljanje i brisanje kontejnera, kao i upravljanje Docker image-ovima i drugim aspektima Docker platforme.

  3. Docker API: Docker Engine ima API (Application Programming Interface) koji omogućava programerima i drugim alatima da komuniciraju sa Dockerom i automatizuju različite zadatke. Docker CLI, na primer, koristi ovaj API da bi interagovao sa Docker Daemon-om.

  4. Docker Compose: Ovo je alat koji omogućava definisanje i upravljanje više kontejnera kao deo jedne aplikacije. Pomoću Docker Compose-a možete opisati konfiguraciju aplikacije, uključujući servise, mreže i volume, u jednom fajlu, a zatim pokrenuti sve ove kontejnere jednostavnom komandom.

Docker Engine omogućava kreiranje, upravljanje i izvršavanje kontejnera na operativnom sistemu. On je ključna komponenta koja čini Docker tehnologiju funkcionalnom i korisnom za razvoj, testiranje i isporuku aplikacija.


Docker Image

Docker Image je paket koji sadrži sve što je potrebno da bi se pokrenula aplikacija, uključujući kôd, runtime, sistemske alatke, biblioteke i postavke. Ovi image-ovi se koriste za kreiranje Docker kontejnera, koji su izvršne instance tih image-ova. Evo ključnih elemenata Docker image-a:

  1. Osnovni sloj (Base Layer): Svaki Docker image počinje određenim osnovnim slojem koji obično predstavlja bazni operativni sistem, kao što su Ubuntu, Alpine Linux ili neki drugi. Ovaj sloj obezbeđuje osnovno okruženje za izvršavanje aplikacije.

  2. Dodatni slojevi (Additional Layers): Nakon osnovnog sloja, image može sadržavati dodatne slojeve koji predstavljaju promene i dodatke u odnosu na osnovni sloj. Na primer, svaki dodatni sloj može sadržavati instalaciju dodatnih paketa, kôda ili postavki. Ovo je ključna karakteristika Docker image-a jer omogućava deljenje zajedničkih slojeva između različitih image-ova, što economično koristi prostor za skladištenje.

  3. Metapodaci i Konfiguracije: Docker image sadrži metapodatke kao što su informacije o autoru, verziji, i druge informacije koje pomažu u identifikaciji i upravljanju image-om. Takođe, image može sadržavati i konfiguracione fajlove ili skripte koje se automatski pokreću prilikom pokretanja kontejnera.

Docker image-ovi se često deljenju i distribuiraju putem Docker Registra, kao što je Docker Hub. Ovo su online repozitorijumi koji omogućavaju programerima da dele, pretražuju i preuzimaju Docker image-ove. Kada želite pokrenuti aplikaciju, koristite Docker image da biste brzo stvorili izolovani kontejner sa svim potrebnim zavisnostima.

Docker Container

Docker Container predstavlja izvršnu instancu Docker Image-a. To je izolovani proces koji pokreće aplikaciju sa svim potrebnim zavisnostima i okolinom za izvršavanje. Svaki kontejner se izvršava nezavisno od drugih kontejnera i deli jezgro operativnog sistema sa host mašinom. Evo ključnih karakteristika Docker kontejnera:

  1. Izolacija: Kontejneri koriste mehanizme izolacije operativnog sistema kako bi se osiguralo da aplikacija u jednom kontejneru ne utiče na druge kontejnere ili host sistem. Svaki kontejner ima svoj sistemski prostor, mrežu i fajl sistem.

  2. Laganost: Kontejneri dele jezgro operativnog sistema sa host mašinom, što ih čini lakim i brzim za pokretanje. Kontejneri se dižu mnogo brže od virtualnih mašina, jer nema potrebe za pokretanjem kompletnog operativnog sistema za svaki kontejner.

  3. Prenosivost: Kontejneri su prenosivi između različitih okolina jer sadrže sve potrebne zavisnosti unutar sebe. Oni se mogu pokretati na različitim sistemima koji podržavaju Docker, bez obzira na razlike u operativnim sistemima ili konfiguraciji.

  4. Reproducibilnost: Zbog korišćenja Docker Image-a, svaki kontejner pokreće isti skup zavisnosti i konfiguracija. Ovo obezbeđuje konzistentnost između razvojnog okruženja, testiranja i produkcije.

  5. Jednostavnost upravljanja: Docker Engine omogućava lako upravljanje kontejnerima. Možete ih pokretati, zaustavljati, brisati ili skalirati prema potrebi.

Kada želite pokrenuti određenu aplikaciju, koristite odgovarajući Docker Image kako biste kreirali kontejner. Kontejneri se mogu pokretati lokalno na vašem računaru tokom razvoja, a zatim se prenositi u produkcijsko okruženje bez problema. Docker kontejneri su ključna komponenta u razvoju, testiranju i isporuci aplikacija.

No comments:

Post a Comment