Docker: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 41: Line 41:
apt-get install docker.io  
apt-get install docker.io  
|}
|}
siis seda tehes paigaldatakse vanem 1.0.1 versioon (artikli kirjutamise hetkel), mis on küll uusim, mida Ubuntu repositooriumitest saab, aga siiski vanem. Uusima versiooni paigaldamiseks tuleb esmalt veenduda, et ''ap''t toetab üle HTTPS protokolli pakkide allalaadimist. Juhul, kui:
siis seda tehes paigaldatakse vanem 1.0.1 versioon (artikli kirjutamise hetkel), mis on küll uusim, mida Ubuntu repositooriumitest saab, aga siiski vanem. Uusima versiooni paigaldamiseks tuleb esmalt veenduda, et ''apt'' toetab üle HTTPS protokolli pakkide allalaadimist. Juhul, kui:
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | find /usr/lib/apt/methods/ -name 'https'
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | find /usr/lib/apt/methods/ -name 'https'

Revision as of 16:20, 14 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 olid kasutuses erinevad virtuaalmasinad. Virtuaalmasinat "klientarvuti" kasutati SSH ühenduse loomiseks virtuaalmasinasse "rakendusserver". 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 ja cgroups. 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 tugi mitmete namespace'ide jaoks. Namespace on isoleeritud vaade süsteemist omaenda mount punktidega, kasutajatega, võrgufunktsionaalsusega ja protsessidega ning see kõik töötab olemasoleva kerneli najal, mistõttu saab ka öelda, et toimub efektiivsem ressursside kasutus, kuna on jäetud ära tavapäraselt vahepeal asuvad hypervisori ja OS-i kihid ning suhtlus riistvaraga saab toimuda otsesemal moel. Selleks, et saaks kontrollida ressursside kasutust võetakse kasutusele cgroups, mis hõlpsustab grupeeritud protsesside, näiteks namespace, ressursside haldamist.

Dockeri omapära

Docker on töövahend rakenduste loomiseks, kokkupanemiseks ja paigaldamiseks kasutades konteinereid. Konteineri loomiseks võetakse aluseks mingit sorti aluspilt või image, mille peale hakatakse kihtidena laduma erinevad koostisosi, millest saab omakorda luua uue aluspildi. Näiteks saab tuua aluspildi, mis põhineb Ubuntu 14.04 LTS distributsioonil ning lisades sellele konteinerile rakendusi nagu Apache, MySQL ja PHP saab ühest konteinerist uue standardse konteineri, millel on töötav LAMP (Linux, Apache, MySQL, PHP/Python/Perl) tarkvarakogumik. Kuna see kõik on ühe konteineri raames üles seatud, siis kaovad probleemid, kus ühe rakenduse töötamine seisab erinevate sõltuvuste taga.

Paigaldus

Dockeri paigaldus toimub rakendusserveril ning kuigi on võimalik tavapäraste käskudega Docker paigaldada:

apt-get update

apt-get install docker.io

siis seda tehes paigaldatakse vanem 1.0.1 versioon (artikli kirjutamise hetkel), mis on küll uusim, mida Ubuntu repositooriumitest saab, aga siiski vanem. Uusima versiooni paigaldamiseks tuleb esmalt veenduda, et apt toetab üle HTTPS protokolli pakkide allalaadimist. Juhul, kui:

find /usr/lib/apt/methods/ -name 'https'

tagastab:

/usr/lib/apt/methods/https

Kokkuvõte

Allikad