Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:virtualizacija:docker-kontejneri [2020/01/06 19:35]
dsindicic [Zaključak]
racfor_wiki:virtualizacija:docker-kontejneri [2024/12/05 12:24] (trenutno)
Redak 4: Redak 4:
 ===== Sažetak ===== ===== Sažetak =====
  
-Abstract should be no longer that 400 words.+Virtualizacija je danas vrlo česta pojava u složenim računalnim sustavima i postoji nekoliko vrsta virtualizacija. Tekst prezentira virtualizaciju preko Docker kontenjera te iznosi usporedbu za dosadašnjim tehnikama virtualizacija. Iznosi se strktura Docker slike iz koje se pokreće kontenjer. Predstavljen način pohrane podataka preko Docker kontenjera  te su navedeni načini i stvari na koje računalni forenzičar mora obratiti pozornost.
  
-Keywords**abstract****bastract**astractretracttractor+Ključne riječikontenjerDockerslikavirtualizacija;
  
  
Redak 14: Redak 14:
  
  
-===== Chapter 1 =====+===== Docker slika =====
  
 Kontenjer je kao i virtualno računalo slika (engl. //image//) datotečnog sustava. Kontenjeri se pokreću iz Docker image-a koji je različite strkture od iso datoteka koje služe za virtualne strojeve. Docker image datoteka se sastoji od moguće više slojeva koji pokreću kod unutar kontenjera te može naslijediti slojeve iz drugih slika. Popis ostalih slika moguće je pronaći na [[https://hub.docker.com/|DockerHub-u.]] Kontenjer je kao i virtualno računalo slika (engl. //image//) datotečnog sustava. Kontenjeri se pokreću iz Docker image-a koji je različite strkture od iso datoteka koje služe za virtualne strojeve. Docker image datoteka se sastoji od moguće više slojeva koji pokreću kod unutar kontenjera te može naslijediti slojeve iz drugih slika. Popis ostalih slika moguće je pronaći na [[https://hub.docker.com/|DockerHub-u.]]
Redak 32: Redak 32:
 ''CMD [ "/usr/sbin/nginx" ]'' ''CMD [ "/usr/sbin/nginx" ]''
  
-Gore je prikazan Docker file nginx-a koji se pokreće na operacijskom sustavu Fedora. Ključnom riječi **FROM** navodimo roditeljski image file koji će biti skinuti sa DockerHub-a ili iz našeg lokalnog repozitorija. Svaka linija u Docker datoteci je novi sloj i preporuka je da kod kreiranja Docker datoteka njihov broj bude što manji radi performansa. Ključna riječ **RUN** označava da će se pokretati određene naredbe u komadnoj ljusci. **EXPOSE** otvara određeni port prema Docker klijentu te zadnja komanda pokreće nginx proces. Ukoliko se nginx proces ugasi, samim time taj kontenjer prestaje sa svojim izvođenjem+Gore je prikazan Docker file nginx-a koji se pokreće na operacijskom sustavu Fedora. Ključnom riječi **FROM** navodimo roditeljski image file koji će biti skinuti sa DockerHub-a ili iz našeg lokalnog repozitorija. Svaka linija u Docker datoteci je novi sloj i preporuka je da kod kreiranja Docker datoteka njihov broj bude što manji radi performansa. Ključna riječ **RUN** označava da će se pokretati određene naredbe u komadnoj ljusci. **EXPOSE** otvara određeni port prema Docker klijentu te zadnja komanda pokreće nginx proces. Ukoliko se nginx proces ugasi, samim time taj kontenjer prestaje sa svojim izvođenjem. Pitanje je zašto on prestaje sa izvođenjem možemo odgovoriti vrlo jednostavno. Kontenjer je proces kao i svaki drugi kojem je zadano da izvršava neki proces. Kada se taj proces ugasi, OS automatski gasi i proces kontenjera. Razlika između kontenjera i ostalih procesa je da on ne vidi ostale podatke o svim ostalim procesima, a to je moguće zbog proširenja Linux kernela prije 15 godina. Također zahvaljujući Systemd-u i cgrupama moguće je dati pojedinom procesu određenu količinu memorije ili CPU, ali sa puno manje fleksibilnosti nego kod virtualnih računala. Proces kontenjer može skakti sa CPU-u na CPU-u dok virtualno računalo to ne može te u slučaju krive implementacije context switcha može doći do povrede izoliranosti.
  
  
-===== Chapter 2 =====+===== Slojevi u slici =====
  
-a+Kao što je prije navedeno, kontenjer se kreira iz Docker slike (engl. //docker image//). Kada se kreira novi kontenjer, dodaje se novi sloj za pisanje na vrh postojećih iz slike. Stoga svaka promjena datoteka za vrijeme kada je kontenjer aktivan, kao na primjer nova datoteka, promjena ili brisanje datoteka je zapisana u tom novom sloju. Stoga razlika između slike i kontenjera je zapisana u tom novom dodanom sloju. Kada se kontenjer ugasi, briše taj sloj, dok ostali slojevi iz slike ostaju ne promijenjeni. To nas dovodi do zaključka da više kontenjera može koristiti istu sliku bez straha od njezine promjene pošto svaki kontenjer dodaje svoj sloj za pisanje. Copy-on-write(CoW) je strategija u kojoj procesi koji traže iste podatke dijele istu istancu na njih. Ukoliko žele promijeniti instancu onda tek tada od OS-dobivaju kopiju podataka. Docker koristi CoW tehniku kako bi brzo pokrenuo N kontenjera iz iste slike te smanjio memorijsko zauzeće. Stoga se promjene koje se rade u kontenjeru se zapisuju u mapi ///var/lib/docker//. Što dodatno olakšava forenzičku analizu jer se tamo vrlo jednostavno vide sve promjene koje su napravljene.
  
  
-===== Chapter 3 ===== +===== Podaci unutar kontenjera ===== 
-Kao što je prije navedeno, kontenjer se kreira iz Docker slike (engl. //docker image//). Kada se kreira novi kontenjer, dodaje se novi sloj za pisanje na vrh postojećih iz slike. Stoga svaka promjena datoteka za vrijeme kada je kontenjer aktivan, kao na primjer nova datoteka, promjena ili brisanje datoteka je zapisana u tom novom sloju. Stoga razlika između slike i kontenjera je zapisana u tom novom dodanom sloju. Kada se kontenjer ugasi, briše taj sloj, dok ostali slojevi iz slike ostaju ne promijenjeni. To nas dovodi do zaključka da više kontenjera može koristiti istu sliku bez straha od njezine promjene pošto svaki kontenjer dodaje svoj sloj za pisanje.  + 
-Copy-on-write(CoW) je strategija u kojoj procesi koji traže iste podatke dijele istu istancu na njih. Ukoliko žele promijeniti instancu onda tek tada od OS-a dobivaju kopiju podataka. Docker koristi CoW tehniku kako bi brzo pokrenuo N kontenjera iz iste slike te smanjio memorijsko zauzeće.  +Proces koji se pokrećunutar kontenjera koristi memoriju kao i ostali procesi koje pokreću izvan kontenjera. Proces unutar jednog kontenjera ne koristi ili ne dijeli istu memoriju kao procesi unutar nekog drugog kontenjera. To zapravo znaći da sva memorija koju koristi proces unutar jednog kontenjera je sva alocirana memorija kontenjera. 
-Stoga se promjene koje se rade u kontenjeru se zapisuju u mapi ///var/lib/docker//. Što dodatno olakšava forenzičku analizu jer se tamo vrlo jednostavno vide sve promjene koje su napravljene.  + 
-===== Chapter ... ===== +Kao prije navedeno, sve promjene sve zapisuju u novi sloj koji se dodaje na sliku, što znači da podaci nestaju kada se kontenjer ugasi. Sve promjene koje se zapisuju u novom sloju zahtjevaju poziv kernela i upravljačkog programa datotečnog sustava u pozadini te je zbog toga performansno sporije. Postoje načini na koji se podaci mogu zapisivati na datotečni sustav domačina. Jedan od njih je volume, koji su upravljani od strane Docker-a i on ne povečava veličinu kontenjera koji ga mount-a. Drugi se zove bind mounts. Oni imaju limitiranu funkcionalnost ukoliko ih usporedima sa volume-mima. Kada se radi pristup datotekama preko bind mounts-a onda se koristi njihova apsolutna putanja na domačinu (preslikavanje strukture datoteka). Prethodna dva načina se koriste kada se u kontenjere žele zapisivati perzistentni podaci te predstavljaju način dijeljenja podataka između kontenjera.
-Procesi koji se pokrećunutar kontenjera koriste memoriju kao i ostali procesi koje pokreću izvan kontenjera. Procesi unutar jednog kontenjera ne koriste ili ne dijele istu memoriju kao procesi unutar nekog drugog kontenjera. To zapravo znaći da sva memorija koju koriste svi procesu unutar jednog kontenjera  je sva alocirana memorija kontenjera. +
  
  
-Podaci unutar Docker-a 
-Kao prije navedeno, sve promjene sve zapisuju u novi sloj koji se dodaje na sliku, što znači da podaci nestaju kada se kontenjer ugasi. Sve promjene koje se zapisuju u novom sloju zahtjevaju poziv kernela i upravljačkog programa datotečnog sustava u pozadini te je zbog toga performansno sporije. Postoje načini na koji se podaci mogu zapisivati na datotečni sustav domačina. Jedan od njih je volume, koji su upravljani od strane Docker-a i on ne povečava veličinu kontenjera koji ga mount-a. Drugi se zove bind mounts. Oni imaju limitiranu funkcionalnost ukoliko ih usporedima sa volume-mima. Kada se radi pristup datotekama preko bind mounts-a onda se koristi njihova apsolutna putanja na domačinu (preslikavanje strukture datoteka).  
-Prethodna dva načina se koriste kada se u kontenjere žele zapisivati perzistentni podaci te predstavljaju način dijeljenja podataka između kontenjera.  
 ===== Zaključak ===== ===== Zaključak =====
  
-Docker kontenjeri mogu poslužiti kao dobar oponent virtualnim računalima u svijetu virtualizacije. Njihovo pokretanje je brže i oni ne zauzimaju toliko puno prostora. Jedna mana kontenjera je što oni dijele zajednički kernel sa računalom koji vrši virtualizaciju što onemogućuje virtualizaciju određenih operacijski sustava ili njihovih verzija.+Docker kontenjeri mogu poslužiti kao dobar oponent virtualnim računalima u svijetu virtualizacije. Njihovo pokretanje je brže i oni ne zauzimaju toliko puno prostora. Jedna mana kontenjera je što oni dijele zajednički kernel sa računalom koji vrši virtualizaciju što onemogućuje virtualizaciju određenih operacijski sustava ili njihovih verzija. Sve promijene koje se naprave u kontenjeru, tj. u njegovom trenutnom sloju za pisanje se spremaju u dnevnik i to se ne briše čak i kada se kontenjer ugasi što može biti vrlo pogodno pri forenzičkoj analizi. Također podaci koje koriste računalni sustavi u kontenjeru su najčešće locirani izvan njega samoga pa je moguća forenzična analiza njegovog sadržaja bez pokretanja samog kontenjera. Sukladno svemu tome, kontenjeri su vrlo pogodni za računalnu forenziku zbog načina kako spremaju promijene datoteka u sebi. 
  
 +===== Izvori =====
  
-===== Sources =====+[1] Docker kontejnerska virtualizacija / Novosti / Računala / Naslovnica - VIDI Web Portal, https://www.vidi.hr/Racunala/Novosti/Docker-kontejnerska-virtualizacija
  
-[1[[http://books.google.hr/books?id=mFJe8ZnAb3EC&printsec=frontcover#v=onepage&q&f=false|Plass, Jan L., Roxana Moreno, and Roland Brünken. Cognitive Load Theory. Cambridge University Press, 2010.]]+[2Docker Introduction — What You Need To Know To Start Creating Containers, https://medium.com/@kelvin_sp/docker-introduction-what-you-need-to-know-to-start-creating-containers-8ffaf064930a
  
-[2[[http://www.google.com/books?id=duWx8fxkkk0C&printsec=frontcover#v=onepage&q&f=false|Mayer, Richard E. The Cambridge handbook of multimedia learning. Cambridge University Press, 2005.]]+[3DockerHub, https://hub.docker.com
  
-[3[[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, P. A, Sweller, J. and Clark, R. E. Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational psychologist 41, no. 2, pp 75-86, 2006]]+[4Docker documentation, https://docs.docker.com/v17.12/get-started/
  
  
racfor_wiki/virtualizacija/docker-kontejneri.1578339319.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
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