Docker: Difference between revisions
Line 30: | Line 30: | ||
Konteinerid on operatsioonisüsteemi (edaspidi OS) virtualiseerimise meetodi tulemus, mis võimaldavad efektiivsemat füüsiliste ressursside kasutust ''host'' seadmel ning madalamat ajakulu uue ''guest'' instantsi loomisel. Konteinerite aluseks on samuti füüsiline riistvara ja OS nagu traditsioonilise virtualiseerimise puhulgi, kuid edasine puudutab juba peamiselt GNU/Linuxi spetsiifilisi termineid nagu ''kernel'', ''namespace'', ''user space'', ''cgroups'' ja ''chroot''. Selle asemel, et olemasoleva OS-i peale paigaldada ''hypervisor'', mis looks virtuaalmasina koos uue ''guest'' OS-iga, kasutatakse ära OS-i tasemel virtualiseerimist, mis tagab ilma ''hypervisor'' tarkvarata eraldiseisvad alad ''host'' OS-il ning lõppkasutaja jaoks tekib endiselt mulje, et tegemist on täiesti uue serveriga. | Konteinerid on operatsioonisüsteemi (edaspidi OS) virtualiseerimise meetodi tulemus, mis võimaldavad efektiivsemat füüsiliste ressursside kasutust ''host'' seadmel ning madalamat ajakulu uue ''guest'' instantsi loomisel. Konteinerite aluseks on samuti füüsiline riistvara ja OS nagu traditsioonilise virtualiseerimise puhulgi, kuid edasine puudutab juba peamiselt GNU/Linuxi spetsiifilisi termineid nagu ''kernel'', ''namespace'', ''user space'', ''cgroups'' ja ''chroot''. Selle asemel, et olemasoleva OS-i peale paigaldada ''hypervisor'', mis looks virtuaalmasina koos uue ''guest'' OS-iga, kasutatakse ära OS-i tasemel virtualiseerimist, mis tagab ilma ''hypervisor'' tarkvarata eraldiseisvad alad ''host'' OS-il ning lõppkasutaja jaoks tekib endiselt mulje, et tegemist on täiesti uue serveriga. | ||
Operatsioonisüsteemi tasemel virtualiseerimine toimub läbi kerneli, või teisisõnu läbi tuumikprogrammi, mis haldab tarkvaralisi sisendeid ja väljundeid ning tõlgendab neid protsessorile ja teistele komponentidele mõistetavateks juhisteks. GNU/Linuxi põhistel kernelitel on sisseehitatud funktsionaalsus toetada mitmeid isoleeritud ''user space'''e, või otse tõlkides kasutajaalasid. Tavapärase kasutaja jaoks oleks mitmekihilises GNU/Linuxi distributsioonis kasutusel ainult üks kasutajaala, kus paiknevad erinevad kõrgema taseme süsteemi taustprotsessid, tavakasutaja programmid, graafikadraiverid ja muu säärane. | Operatsioonisüsteemi tasemel virtualiseerimine toimub läbi kerneli, või teisisõnu läbi tuumikprogrammi, mis haldab tarkvaralisi sisendeid ja väljundeid ning tõlgendab neid protsessorile ja teistele komponentidele mõistetavateks juhisteks. GNU/Linuxi põhistel kernelitel on sisseehitatud funktsionaalsus toetada mitmeid isoleeritud ''user space'''e, või otse tõlkides kasutajaalasid. Tavapärase kasutaja jaoks oleks mitmekihilises GNU/Linuxi distributsioonis kasutusel ainult üks kasutajaala, kus paiknevad erinevad kõrgema taseme süsteemi taustprotsessid, tavakasutaja programmid, graafikadraiverid ja muu säärane. Võttes kasutusele OS-i tasemel virtualiseerimine saab luua uusi kasutajaalasid sama tuuma najal kasutades chroot'il tuginevat lähenemist, mis võimaldab muuta hetkel töötava protsessi ja tema poolt algatatud protsesside juurkataloogi. | ||
=Dockeri omapära= | =Dockeri omapära= |
Revision as of 17:19, 12 December 2014
Info ja eeldused
Autor: Üllar Seerme
Rühm: A31
Artikkel on mõeldud kõigile, kes valdavad GNU/Linuxit vähemalt algaja tasemel, st käsurea enesekindlat kasutamist. Kirjatöö raames tehtud tegevused viidi ellu IT Kolledži kauglabori süsteemis i-Tee, kus oli kasutuses erinevad virtuaalmasinad. Edasi järgnevad tehnilised andmed kasutatud distributsioonide kohta.
Selleks, et saada ülevaade distributsioonist, sisestada järgnev käsk, kusjuures juurkasutaja õigustes tegutsemine ei ole eeldatud:
cat /etc/*-release |
Rakendusserver:
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS" NAME="Ubuntu" VERSION="14.04.1 LTS, Trusty Tahr" ...
Klientarvuti:
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS" NAME="Ubuntu" VERSION="14.04.1 LTS, Trusty Tahr" ...
Edaspidi on kõik artiklis kirjeldatud käsud käivitatud juurkasutaja õigustes, justkui teisiti öeldud ei ole!
Konteineritest
Konteinerid on operatsioonisüsteemi (edaspidi OS) virtualiseerimise meetodi tulemus, mis võimaldavad efektiivsemat füüsiliste ressursside kasutust host seadmel ning madalamat ajakulu uue guest instantsi loomisel. Konteinerite aluseks on samuti füüsiline riistvara ja OS nagu traditsioonilise virtualiseerimise puhulgi, kuid edasine puudutab juba peamiselt GNU/Linuxi spetsiifilisi termineid nagu kernel, namespace, user space, cgroups ja chroot. Selle asemel, et olemasoleva OS-i peale paigaldada hypervisor, mis looks virtuaalmasina koos uue guest OS-iga, kasutatakse ära OS-i tasemel virtualiseerimist, mis tagab ilma hypervisor tarkvarata eraldiseisvad alad host OS-il ning lõppkasutaja jaoks tekib endiselt mulje, et tegemist on täiesti uue serveriga.
Operatsioonisüsteemi tasemel virtualiseerimine toimub läbi kerneli, või teisisõnu läbi tuumikprogrammi, mis haldab tarkvaralisi sisendeid ja väljundeid ning tõlgendab neid protsessorile ja teistele komponentidele mõistetavateks juhisteks. GNU/Linuxi põhistel kernelitel on sisseehitatud funktsionaalsus toetada mitmeid isoleeritud user space'e, või otse tõlkides kasutajaalasid. Tavapärase kasutaja jaoks oleks mitmekihilises GNU/Linuxi distributsioonis kasutusel ainult üks kasutajaala, kus paiknevad erinevad kõrgema taseme süsteemi taustprotsessid, tavakasutaja programmid, graafikadraiverid ja muu säärane. Võttes kasutusele OS-i tasemel virtualiseerimine saab luua uusi kasutajaalasid sama tuuma najal kasutades chroot'il tuginevat lähenemist, mis võimaldab muuta hetkel töötava protsessi ja tema poolt algatatud protsesside juurkataloogi.