{"id":36772,"date":"2019-10-31T22:13:44","date_gmt":"2019-10-31T19:13:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ponimaya-docker\/"},"modified":"2019-10-31T22:13:44","modified_gmt":"2019-10-31T19:13:44","slug":"ponimaya-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Pochopenie Dockeru","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>U\u017e nieko\u013eko mesiacov pou\u017e\u00edvam Docker na \u0161trukt\u00farovanie procesu v\u00fdvoja\/dod\u00e1vky webov\u00fdch projektov. Navrhujem \u010ditate\u013eom \"Habr\" preklad \u00favodn\u00e9ho \u010dl\u00e1nku o Dockeri \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\"Understanding Docker\"<\/a><\/noindex>.<\/i><\/p>\n<h3>\u010co je Docker?<\/h3>\n<p>\nDocker je otvoren\u00e1 platforma na v\u00fdvoj, dod\u00e1vku a prev\u00e1dzku aplik\u00e1ci\u00ed. Docker je navrhnut\u00fd na r\u00fdchlej\u0161ie nasadenie va\u0161ich aplik\u00e1ci\u00ed. S Dockerom m\u00f4\u017eete oddeli\u0165 va\u0161u aplik\u00e1ciu od va\u0161ej infra\u0161trukt\u00fary a zaobch\u00e1dza\u0165 s infra\u0161trukt\u00farou ako s riadenou aplik\u00e1ciou. Docker pom\u00e1ha nasadi\u0165 v\u00e1\u0161 k\u00f3d r\u00fdchlej\u0161ie, r\u00fdchlej\u0161ie testova\u0165 a zn\u00ed\u017ei\u0165 \u010das medzi p\u00edsan\u00edm k\u00f3du a jeho nasaden\u00edm. Docker to dosahuje pomocou \u013eahkej platformy kontajnerovej virtualiz\u00e1cie, ktor\u00e1 vyu\u017e\u00edva procesy a n\u00e1stroje na spr\u00e1vu a dodanie va\u0161ich aplik\u00e1ci\u00ed.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nV svojom jadre Docker umo\u017e\u0148uje spusti\u0165 takmer ak\u00fako\u013evek aplik\u00e1ciu, bezpe\u010dne izolovan\u00fa v kontajneri. Bezpe\u010dn\u00e1 izol\u00e1cia v\u00e1m umo\u017e\u0148uje spusti\u0165 na jednom hostite\u013eovi ve\u013ea kontajnerov s\u00fa\u010dasne. \u013dahk\u00e1 povaha kontajnera, ktor\u00fd sa sp\u00fa\u0161\u0165a bez dodato\u010dnej z\u00e1\u0165a\u017ee hyperv\u00edzora, v\u00e1m umo\u017e\u0148uje dosiahnu\u0165 viac z va\u0161ich zariaden\u00ed.<\/p>\n<p>Platforma a prostriedky kontajnerovej virtualiz\u00e1cie m\u00f4\u017eu by\u0165 u\u017eito\u010dn\u00e9 v nasleduj\u00facich pr\u00edpadoch:<\/p>\n<ul>\n<li>balenie va\u0161ej aplik\u00e1cie (a taktie\u017e pou\u017e\u00edvan\u00fdch komponentov) do Docker kontajnerov;<\/li>\n<li>distrib\u00facia a dod\u00e1vka t\u00fdchto kontajnerov va\u0161im t\u00edmom na v\u00fdvoj a testovanie;<\/li>\n<li>nasadenie t\u00fdchto kontajnerov na va\u0161e produk\u010dn\u00e9 prostredia, ako do d\u00e1tov\u00fdch centier, tak aj do cloudu.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Na \u010do m\u00f4\u017eem pou\u017ei\u0165 Docker?<\/h3>\n<p><\/p>\n<h4>R\u00fdchle nasadenie va\u0161ich aplik\u00e1ci\u00ed<\/h4>\n<p>\nDocker je skvel\u00fd na organizovanie v\u00fdvojov\u00e9ho cyklu. Docker umo\u017e\u0148uje v\u00fdvoj\u00e1rom pou\u017e\u00edva\u0165 lok\u00e1lne kontajnery s aplik\u00e1ciami a slu\u017ebami. To n\u00e1sledne umo\u017e\u0148uje integr\u00e1ciu s procesom kontinu\u00e1lnej integr\u00e1cie a dod\u00e1vky (continuous integration and deployment workflow).<\/p>\n<p>Napr\u00edklad va\u0161i v\u00fdvoj\u00e1ri p\u00ed\u0161u k\u00f3d lok\u00e1lne a zdie\u013eaj\u00fa svoj v\u00fdvojov\u00fd stack (s\u00fabor Docker obrazov) s kolegami. Ke\u010f s\u00fa pripraven\u00ed, odosielaj\u00fa k\u00f3d a kontajnery na testovaciu platformu a sp\u00fa\u0161\u0165aj\u00fa v\u0161etky potrebn\u00e9 testy. Z testovacej platformy m\u00f4\u017eu odosla\u0165 k\u00f3d a obrazy na produkciu.<\/p>\n<h4>Jednoduch\u0161ie nasadenie a rozdelenie<\/h4>\n<p>\nPlatforma zalo\u017een\u00e1 na kontajneroch Docker umo\u017e\u0148uje \u013eahk\u00e9 pren\u00e1\u0161anie va\u0161ich z\u00e1\u0165a\u017e\u00ed. Kontajnery Docker m\u00f4\u017eu fungova\u0165 na va\u0161ej lok\u00e1lnej ma\u0161ine, rovnako ako na virtu\u00e1lnej ma\u0161ine v d\u00e1tovom centre alebo v cloude.<\/p>\n<p>Prenosite\u013enos\u0165 a \u013eahk\u00e1 povaha Dockeru umo\u017e\u0148uje jednoduch\u00e9 dynamick\u00e9 spravovanie va\u0161ej z\u00e1\u0165a\u017ee. M\u00f4\u017eete pou\u017ei\u0165 Docker na nasadenie alebo zastavenie va\u0161ej aplik\u00e1cie alebo slu\u017eieb. R\u00fdchlos\u0165 Dockeru to umo\u017e\u0148uje takmer v re\u00e1lnom \u010dase.<\/p>\n<h4>Vysok\u00e9 z\u00e1\u0165a\u017ee a viac u\u017eito\u010dn\u00fdch za\u0165a\u017een\u00ed<\/h4>\n<p>\nDocker je \u013eahk\u00fd a r\u00fdchly. Poskytuje udr\u017eate\u013en\u00fa, n\u00e1kladovo efekt\u00edvnu alternat\u00edvu virtu\u00e1lnym strojom zalo\u017een\u00fdm na hyperv\u00edzoroch. Je obzvl\u00e1\u0161\u0165 u\u017eito\u010dn\u00fd za podmienok vysok\u00fdch z\u00e1\u0165a\u017e\u00ed, napr\u00edklad pri vytv\u00e1ran\u00ed vlastn\u00e9ho cloudu alebo platformy ako slu\u017eba (platform-as-service). Ale je tie\u017e u\u017eito\u010dn\u00fd pre mal\u00e9 a stredn\u00e9 aplik\u00e1cie, ke\u010f chcete z\u00edska\u0165 viac z existuj\u00facich zdrojov.<\/p>\n<h3>Hlavn\u00e9 komponenty Dockeru<\/h3>\n<p>\nDocker sa sklad\u00e1 z dvoch hlavn\u00fdch komponentov:<\/p>\n<ul>\n<li>Docker: platforma virtualiz\u00e1cie s otvoren\u00fdm zdrojom;<\/li>\n<li>Docker Hub: na\u0161a platforma ako slu\u017eba na distrib\u00faciu a spr\u00e1vu kontajnerov Docker.<\/li>\n<\/ul>\n<p>\n<i>Pozn\u00e1mka! Docker je distribuovan\u00fd pod licenciou Apache 2.0.<\/i><\/p>\n<h3>Architekt\u00fara Dockeru<\/h3>\n<p><\/p>\n<p>Docker pou\u017e\u00edva architekt\u00faru klient-server. Klient Dockeru komunikuje s d\u00e9monom Docker, ktor\u00fd prevzia\u0165 n\u00e1ro\u010dnos\u0165 vytv\u00e1rania, sp\u00fa\u0161\u0165ania a distribuovania va\u0161ich kontajnerov. Obe, klient a server m\u00f4\u017eu fungova\u0165 na jednom syst\u00e9me; m\u00f4\u017eete pripoji\u0165 klienta k vzdialen\u00e9mu d\u00e9monu Docker. Klient a server komunikuj\u00fa cez soket alebo cez RESTful API.<\/p>\n<p><img decoding=\"async\" alt=\"Pochopenie Dockeru\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>D\u00e9mon Docker<\/h4>\n<p>\nAko je zn\u00e1zornen\u00e9 na diagrame, d\u00e9mon be\u017e\u00ed na hostite\u013eskej ma\u0161ine. Pou\u017e\u00edvate\u013e neinteraguje so serverom priamo, ale vyu\u017e\u00edva klienta na to.<\/p>\n<h4>Klient Docker<\/h4>\n<p>\nKlient Docker, program Docker \u2014 je hlavn\u00fdm rozhran\u00edm pre Docker. Z\u00edskava pr\u00edkazy od pou\u017e\u00edvate\u013ea a interaguje s d\u00e9monom Docker.<\/p>\n<h4>Vo vn\u00fatri Dockeru<\/h4>\n<p>\nAby ste pochopili, z \u010doho sa Docker sklad\u00e1, mus\u00edte vedie\u0165 o troch komponentoch:<\/p>\n<ul>\n<li>obr\u00e1zky (images)<\/li>\n<li>registry (registries)<\/li>\n<li>kontajnery<\/li>\n<\/ul>\n<h4>Obr\u00e1zky<\/h4>\n<p>\nDocker obraz je read-only \u0161abl\u00f3na. Napr\u00edklad, obraz m\u00f4\u017ee obsahova\u0165 opera\u010dn\u00fd syst\u00e9m Ubuntu s Apache a aplik\u00e1ciu na \u0148om. Obrazy sa pou\u017e\u00edvaj\u00fa na vytv\u00e1ranie kontajnerov. Docker umo\u017e\u0148uje \u013eahko vytv\u00e1ra\u0165 nov\u00e9 obrazy, aktualizova\u0165 existuj\u00face, alebo si m\u00f4\u017eete stiahnu\u0165 obrazy vytvoren\u00e9 in\u00fdmi. Obrazy s\u00fa komponentom zostavenia dockeru.<\/p>\n<h4>Registrov\u0148a<\/h4>\n<p>\nDocker registrov\u0148a uchov\u00e1va obrazy. Existuj\u00fa verejn\u00e9 a s\u00fakromn\u00e9 registr\u00e1, z ktor\u00fdch si m\u00f4\u017eete stiahnu\u0165 alebo nahra\u0165 obrazy. Verejn\u00e1 Docker registrov\u0148a je <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Tam sa nach\u00e1dza obrovsk\u00e1 kolekcia obrazov. Ako u\u017e viete, obrazy m\u00f4\u017eu by\u0165 vytvoren\u00e9 vami alebo m\u00f4\u017eete pou\u017ei\u0165 obrazy vytvoren\u00e9 in\u00fdmi. Registr\u00e1 s\u00fa komponentom distrib\u00facie.<\/p>\n<h4>Kontajnery<\/h4>\n<p>\nKontajnery s\u00fa podobn\u00e9 adres\u00e1rom. V kontajneroch sa nach\u00e1dza v\u0161etko, \u010do potrebujete na prev\u00e1dzku aplik\u00e1cie. Ka\u017ed\u00fd kontajner je vytvoren\u00fd z obrazu. Kontajnery m\u00f4\u017eu by\u0165 vytvoren\u00e9, spusten\u00e9, zastaven\u00e9, presunut\u00e9 alebo odstr\u00e1nen\u00e9. Ka\u017ed\u00fd kontajner je izolovan\u00fd a predstavuje bezpe\u010dn\u00fa platformu pre aplik\u00e1ciu. Kontajnery s\u00fa komponentom pr\u00e1ce.<\/p>\n<h4>Ako teda funguje Docker?<\/h4>\n<p>\nDoteraz vieme, \u017ee:<\/p>\n<ul>\n<li>m\u00f4\u017eeme vytv\u00e1ra\u0165 obrazy, v ktor\u00fdch s\u00fa na\u0161e aplik\u00e1cie;<\/li>\n<li>m\u00f4\u017eeme vytv\u00e1ra\u0165 kontajnery z obrazov na sp\u00fa\u0161\u0165anie aplik\u00e1ci\u00ed;<\/li>\n<li>m\u00f4\u017eeme distribuova\u0165 obrazy prostredn\u00edctvom Docker Hub alebo in\u00e9ho registra obrazov.<\/li>\n<\/ul>\n<p>\nPozrime sa, ako sa tieto komponenty kombinuj\u00fa.<\/p>\n<h4>Ako funguje obraz?<\/h4>\n<p>\nU\u017e vieme, \u017ee obraz je read-only \u0161abl\u00f3na, z ktorej sa vytv\u00e1ra kontajner. Ka\u017ed\u00fd obraz pozost\u00e1va z mno\u017estva \u00farovn\u00ed. Docker pou\u017e\u00edva <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">union file system<\/a><\/noindex> na spojenie t\u00fdchto \u00farovn\u00ed do jedn\u00e9ho obrazu. Union file system umo\u017e\u0148uje s\u00faborom a adres\u00e1rom z r\u00f4znych s\u00faborov\u00fdch syst\u00e9mov (r\u00f4znych vetiev) transparentne sa prekry\u0165 a vytvori\u0165 koherentn\u00fd s\u00faborov\u00fd syst\u00e9m.<\/p>\n<p>Jedn\u00fdm z d\u00f4vodov, pre\u010do je docker \u013eahk\u00fd, je pou\u017eitie t\u00fdchto \u00farovn\u00ed. Ke\u010f uprav\u00edte obraz, napr\u00edklad aktualizujete aplik\u00e1ciu, vytvor\u00ed sa nov\u00e1 \u00farove\u0148. Takto, bez nahradenia cel\u00e9ho obrazu alebo jeho prekompil\u00e1cie, ako by ste to mo\u017eno museli urobi\u0165 s virtu\u00e1lnym strojom, sa iba \u00farove\u0148 prid\u00e1 alebo aktualizuje. A nemus\u00edte distribuova\u0165 cel\u00fd nov\u00fd obraz, distribuuje sa iba aktualiz\u00e1cia, \u010do umo\u017e\u0148uje r\u00fdchlej\u0161ie a jednoduch\u0161ie \u0161\u00edrenie obrazov.<\/p>\n<p>V z\u00e1klade ka\u017ed\u00e9ho obrazu sa nach\u00e1dza z\u00e1kladn\u00fd obraz. Napr\u00edklad, ubuntu, z\u00e1kladn\u00fd obraz Ubuntu alebo fedora, z\u00e1kladn\u00fd obraz distrib\u00facie Fedora. M\u00f4\u017eete tie\u017e pou\u017ei\u0165 obrazy ako z\u00e1klad pre vytv\u00e1ranie nov\u00fdch obrazov. Napr\u00edklad, ak m\u00e1te obraz apache, m\u00f4\u017eete ho pou\u017ei\u0165 ako z\u00e1kladn\u00fd obraz pre va\u0161e webov\u00e9 aplik\u00e1cie.<\/p>\n<p><i>Pozn\u00e1mka! Docker zvy\u010dajne berie obrazy z registra Docker Hub.<\/i><\/p>\n<p>Docker obrazy m\u00f4\u017eu by\u0165 vytvoren\u00e9 z t\u00fdchto z\u00e1kladn\u00fdch obrazov, kroky popisuj\u00face vytvorenie t\u00fdchto obrazov naz\u00fdvame in\u0161trukciami. Ka\u017ed\u00e1 in\u0161trukcia vytv\u00e1ra nov\u00fd obraz alebo \u00farove\u0148. In\u0161trukciami bud\u00fa nasleduj\u00face akcie:<\/p>\n<p><\/p>\n<ul>\n<li>spustenie pr\u00edkazu<\/li>\n<li>pridanie s\u00faboru alebo adres\u00e1ra<\/li>\n<li>vytvorenie premennej prostredia<\/li>\n<li>ur\u010denie toho, \u010do sa m\u00e1 spusti\u0165, ke\u010f sa sp\u00fa\u0161\u0165a kontajner tohto obrazu<\/li>\n<\/ul>\n<p>Tieto in\u0161trukcie s\u00fa ulo\u017een\u00e9 v s\u00fabore <code>Dockerfile<\/code>. Docker to \u010d\u00edta, <code>Dockerfile<\/code>ke\u010f zostavujete obraz, vykon\u00e1va tieto in\u0161trukcie a vr\u00e1ti kone\u010dn\u00fd obraz.<\/p>\n<h4>Ako funguje docker register?<\/h4>\n<p>\nRegister je \u00falo\u017eisko docker obrazov. Po vytvoren\u00ed obrazu ho m\u00f4\u017eete publikova\u0165 na verejnom registri Docker Hub alebo vo va\u0161om osobnom registri.<\/p>\n<p>S pomocou docker klienta m\u00f4\u017eete vyh\u013ead\u00e1va\u0165 u\u017e publikovan\u00e9 obrazy a s\u0165ahova\u0165 ich na va\u0161u ma\u0161inu s dockerom na vytv\u00e1ranie kontajnerov.<\/p>\n<p>Docker Hub poskytuje verejn\u00e9 a priv\u00e1tne \u00falo\u017eisk\u00e1 obrazov. Vyh\u013ead\u00e1vanie a s\u0165ahovanie obrazov z verejn\u00fdch \u00falo\u017e\u00edsk je dostupn\u00e9 pre v\u0161etk\u00fdch. Obsah priv\u00e1tnych \u00falo\u017e\u00edsk sa nezobrazuje vo v\u00fdsledkoch vyh\u013ead\u00e1vania. Iba vy a va\u0161i pou\u017e\u00edvatelia m\u00f4\u017eu z\u00edska\u0165 tieto obrazy a vytv\u00e1ra\u0165 z nich kontajnery.<\/p>\n<h4>Ako funguje kontajner?<\/h4>\n<p>\nKontajner sa sklad\u00e1 z opera\u010dn\u00e9ho syst\u00e9mu, pou\u017e\u00edvate\u013esk\u00fdch s\u00faborov a metad\u00e1t. Ako vieme, ka\u017ed\u00fd kontajner je vytvoren\u00fd z obrazu. Tento obraz hovor\u00ed dockeru, \u010do sa nach\u00e1dza v kontajneri, ak\u00fd proces spusti\u0165, ke\u010f sa kontajner sp\u00fa\u0161\u0165a, a \u010fal\u0161ie konfigura\u010dn\u00e9 \u00fadaje. Docker obraz je dostupn\u00fd iba na \u010d\u00edtanie. Ke\u010f docker sp\u00fa\u0161a kontajner, vytv\u00e1ra \u00farove\u0148 na zapisovanie nad obrazom (pou\u017eit\u00edm unie syst\u00e9mu s\u00faborov, ako bolo uveden\u00e9 sk\u00f4r), v ktorom m\u00f4\u017ee by\u0165 spusten\u00e1 aplik\u00e1cia.<\/p>\n<h4>\u010co sa stane, ke\u010f sa spust\u00ed kontajner?<\/h4>\n<p>\nBu\u010f pomocou programu <code>docker<\/code>, alebo pomocou RESTful API, docker klient hovor\u00ed docker d\u00e9monu, aby spustil kontajner.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nPo\u010fme sa pozrie\u0165 na tento pr\u00edkaz. Klient sa sp\u00fa\u0161\u0165a pomocou pr\u00edkazu <code>docker<\/code>, s mo\u017enos\u0165ou <code>run<\/code>, ktor\u00e1 hovor\u00ed, \u017ee bude spusten\u00fd nov\u00fd kontajner. Minim\u00e1lne po\u017eiadavky na spustenie kontajnera s\u00fa nasleduj\u00face atrib\u00faty:<\/p>\n<ul>\n<li>ak\u00fd obraz pou\u017ei\u0165 na vytvorenie kontajnera. V na\u0161om pr\u00edpade <code>ubuntu<\/code><\/li>\n<li>pr\u00edkaz, ktor\u00fd chcete spusti\u0165, ke\u010f bude kontajner spusten\u00fd. V na\u0161om pr\u00edpade <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>\u010co sa teda deje pod kapotou, ke\u010f spust\u00edme tento pr\u00edkaz?<\/p>\n<p>Docker v porad\u00ed vykon\u00e1 nasleduj\u00face kroky:<\/p>\n<ul>\n<li><b>stiahne obraz ubuntu:<\/b> docker kontroluje, \u010di je obraz <code>ubuntu<\/code> na lok\u00e1lnom po\u010d\u00edta\u010di, a ak nie je \u2013 stiahne ho z <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Ak je obraz dostupn\u00fd, pou\u017eije ho na vytvorenie kontajnera;<\/li>\n<li><b>vytvor\u00ed kontajner:<\/b> ke\u010f je obraz z\u00edskan\u00fd, docker ho pou\u017e\u00edva na vytvorenie kontajnera;<\/li>\n<li><b>inicializuje s\u00faborov\u00fd syst\u00e9m a montuje read-only \u00farove\u0148:<\/b> kontajner je vytvoren\u00fd v s\u00faborovom syst\u00e9me a read-only \u00farove\u0148 bola pridan\u00e1 z obrazu;<\/li>\n<li><b>inicializuje sie\u0165\/most:<\/b> vytvor\u00ed sie\u0165ov\u00e9 rozhranie, ktor\u00e9 umo\u017e\u0148uje dockeru komunikova\u0165 s hostite\u013esk\u00fdm strojom;<\/li>\n<li><b>Nastavenie IP adresy:<\/b> n\u00e1jde a nastav\u00ed adresu;<\/li>\n<li><b>Sp\u00fa\u0161\u0165a zadan\u00fd proces:<\/b> sp\u00fa\u0161\u0165a va\u0161u aplik\u00e1ciu;<\/li>\n<li><b>Spracov\u00e1va a vyd\u00e1va v\u00fdstup va\u0161ej aplik\u00e1cie:<\/b> pripojuje sa a zaznamen\u00e1va \u0161tandardn\u00fd vstup, v\u00fdstup a chybov\u00fd tok va\u0161ej aplik\u00e1cie, aby ste mohli sledova\u0165, ako va\u0161a aplik\u00e1cia funguje.<\/li>\n<\/ul>\n<p>\nTeraz m\u00e1te funk\u010dn\u00fd kontajner. M\u00f4\u017eete spravova\u0165 svoj kontajner a interagova\u0165 so svojou aplik\u00e1ciou. Ke\u010f sa rozhodnete zastavi\u0165 aplik\u00e1ciu, odstr\u00e1\u0148te kontajner.<\/p>\n<h3>Pou\u017e\u00edvan\u00e9 technol\u00f3gie<\/h3>\n<p>\nDocker je nap\u00edsan\u00fd v Go a vyu\u017e\u00edva niektor\u00e9 funkcie jadra Linuxu na implement\u00e1ciu uvedenej funkcionality.<\/p>\n<h4>Priestorov\u00e9 men\u00e1 (namespaces)<\/h4>\n<p>\nDocker pou\u017e\u00edva technol\u00f3giu <code>namespaces<\/code> na organizovanie izolovan\u00fdch pracovn\u00fdch priestorov, ktor\u00e9 naz\u00fdvame kontajnery. Ke\u010f spust\u00edme kontajner, docker vytvor\u00ed s\u00fabor priestorov n\u00e1zvov pre tento kontajner.<\/p>\n<p>T\u00fdmto sa vytv\u00e1ra izolovan\u00e1 \u00farove\u0148, ka\u017ed\u00fd aspekt kontajnera be\u017e\u00ed vo svojom vlastnom priestore n\u00e1zvov a nem\u00e1 pr\u00edstup k vonkaj\u0161iemu syst\u00e9mu.<\/p>\n<p>Zoznam niektor\u00fdch priestorov n\u00e1zvov, ktor\u00e9 docker pou\u017e\u00edva:<\/p>\n<ul>\n<li><b>pid:<\/b> na izol\u00e1ciu procesov;<\/li>\n<li><b>net:<\/b> na spr\u00e1vu sie\u0165ov\u00fdch rozhran\u00ed;<\/li>\n<li><b>ipc:<\/b> na spr\u00e1vu IPC prostriedkov. (ICP: InterProccess Communication);<\/li>\n<li><b>mnt:<\/b> na spr\u00e1vu pripojovac\u00edch bodov;<\/li>\n<li><b>utc:<\/b> na izol\u00e1ciu jadra a riadenie gener\u00e1cie verzi\u00ed (UTC: Unix timesharing system).<\/li>\n<\/ul>\n<h4>Control groups (kontroln\u00e9 skupiny)<\/h4>\n<p>\nDocker tie\u017e pou\u017e\u00edva technol\u00f3giu <code>cgroups<\/code> alebo kontroln\u00e9 skupiny. K\u013e\u00fa\u010dom k pr\u00e1ci aplik\u00e1cie v izol\u00e1cii je poskytovanie aplik\u00e1cii iba t\u00fdch zdrojov, ktor\u00e9 chcete poskytn\u00fa\u0165. To zaru\u010duje, \u017ee kontajnery bud\u00fa dobr\u00fdmi susedmi. Kontroln\u00e9 skupiny umo\u017e\u0148uj\u00fa rozdeli\u0165 dostupn\u00e9 hardv\u00e9rov\u00e9 zdroje a ak je to potrebn\u00e9, nastavi\u0165 limity a obmedzenia. Napr\u00edklad obmedzi\u0165 maxim\u00e1lny mo\u017en\u00fd po\u010det pam\u00e4te pre kontajner.<\/p>\n<h4>Union File System<\/h4>\n<p>\nUnion File System alebo UnionFS \u2014 to je s\u00faborov\u00fd syst\u00e9m, ktor\u00fd funguje vytv\u00e1ran\u00edm vrstiev, \u010do ho rob\u00ed ve\u013emi \u013eahk\u00fdm a r\u00fdchlym. Docker pou\u017e\u00edva UnionFS na vytv\u00e1ranie blokov, z ktor\u00fdch sa stavaj\u00fa kontajnery. Docker m\u00f4\u017ee pou\u017e\u00edva\u0165 nieko\u013eko variantov UnionFS vr\u00e1tane: AUFS, btrfs, vfs a DeviceMapper.<\/p>\n<h4>Form\u00e1ty kontajnerov<\/h4>\n<p>\nDocker kombinuje tieto komponenty do obalu, ktor\u00fd naz\u00fdvame form\u00e1t kontajnera. Form\u00e1t, ktor\u00fd sa pou\u017e\u00edva predvolene, sa naz\u00fdva <code>libcontainer<\/code>. Takisto docker podporuje tradi\u010dn\u00fd form\u00e1t kontajnerov v Linuxe pomocou <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. V bud\u00facnosti Docker mo\u017eno podpor\u00ed aj in\u00e9 form\u00e1ty kontajnerov. Napr\u00edklad integr\u00e1ciou s BSD Jails alebo Solaris Zones.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/253877\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36772","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Pochopenie Dockeru | ProHoster","description":"U\u017e nieko\u013eko mesiacov pou\u017e\u00edvam docker na \u0161trukt\u00farovanie procesu v\u00fdvoja\/dod\u00e1vky webov\u00fdch projektov.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster","og:description":"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/ponimaya-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:44+00:00","article:modified_time":"2019-10-31T19:13:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36772","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:47:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:22","updated":"2026-01-22 04:47:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}