{"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\/lv\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Izprotot Docker","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Jau vair\u0101kus m\u0113ne\u0161us izmantoju docker, lai struktur\u0113tu t\u012bmek\u013ca projektu izstr\u0101des un pieg\u0101des procesu. Pied\u0101v\u0101ju \u00abHabrhabra\u00bb las\u012bt\u0101jiem ievada raksta par docker tulkojumu \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u00abIzpratne par docker\u00bb<\/a><\/noindex>.<\/i><\/p>\n<h3>Kas ir docker?<\/h3>\n<p>\nDocker ir atv\u0113rta platforma lietojumprogrammu izstr\u0101dei, pieg\u0101dei un darb\u012bbai. Docker ir izstr\u0101d\u0101ts, lai \u0101tr\u0101k ieviestu j\u016bsu lietojumprogrammas. Ar docker pal\u012bdz\u012bbu j\u016bs varat atdal\u012bt savu lietojumprogrammu no infrastrukt\u016bras un iztur\u0113ties pret infrastrukt\u016bru k\u0101 pret p\u0101rvald\u0101mu lietojumprogrammu. Docker pal\u012bdz \u0101tr\u0101k ieviest j\u016bsu kodu, \u0101tr\u0101k veikt testus, \u0101tr\u0101k izlaist lietojumprogrammas un samazin\u0101t laiku starp koda rakst\u012b\u0161anu un palai\u0161anu. Docker to pan\u0101k ar vieglu konteineru virtualiz\u0101cijas platformu, izmantojot procesus un r\u012bkus, kas pal\u012bdz p\u0101rvald\u012bt un izlaist j\u016bsu lietojumprogrammas.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDocker kodols \u013cauj palaist praktiski jebkuru lietojumprogrammu, kas dro\u0161i izol\u0113ta konteiner\u0101. Dro\u0161a izol\u0101cija \u013cauj vien\u0101 host\u0101 vienlaic\u012bgi palaist vair\u0101kus konteinerus. Viegl\u0101 konteineru dabu, kas tiek palaista bez papildu hipervizora slodzes, \u013cauj jums maksim\u0101li izmantot j\u016bsu aparat\u016bru.<\/p>\n<p>Konteineru virtualiz\u0101cijas platforma un r\u012bki var b\u016bt noder\u012bgi \u0161\u0101dos gad\u012bjumos:<\/p>\n<ul>\n<li>j\u016bsu lietojumprogrammas (un taj\u0101 pa\u0161\u0101 laik\u0101 izmantoto komponentu) iepako\u0161ana docker konteineros;<\/li>\n<li>\u0161o konteineru izplat\u012b\u0161ana un pieg\u0101de j\u016bsu komand\u0101m izstr\u0101dei un test\u0113\u0161anai;<\/li>\n<li>\u0161os konteinerus izlaist j\u016bsu ra\u017eo\u0161anas vid\u0113, gan datu centros, gan m\u0101ko\u0146os.<\/li>\n<\/ul>\n<p><\/p>\n<h3>K\u0101 es varu izmantot docker?<\/h3>\n<p><\/p>\n<h4>\u0100tra j\u016bsu lietojumprogrammu izlaide<\/h4>\n<p>\nDocker ir lieliski piem\u0113rots izstr\u0101des cikla organiz\u0113\u0161anai. Docker \u013cauj izstr\u0101d\u0101t\u0101jiem izmantot viet\u0113jos konteinerus ar lietojumprogramm\u0101m un pakalpojumiem. Tas v\u0113l\u0101k \u013cauj integr\u0113ties nep\u0101rtrauktas integr\u0101cijas un izlaiduma proces\u0101 (continuous integration and deployment workflow).<\/p>\n<p>Piem\u0113ram, j\u016bsu izstr\u0101d\u0101t\u0101ji raksta kodu lok\u0101li un dal\u0101s ar savu izstr\u0101des steku (docker att\u0113lu komplektu) ar kol\u0113\u0123iem. Kad vi\u0146i ir gatavi, vi\u0146i nos\u016bta kodu un konteinerus uz test\u0113\u0161anas vidi un veic visus nepiecie\u0161amos testus. No test\u0113\u0161anas vides vi\u0146i var nos\u016bt\u012bt kodu un att\u0113lus uz ra\u017eo\u0161anu.<\/p>\n<h4>Vienk\u0101r\u0161\u0101ka izlaide un izvieto\u0161ana<\/h4>\n<p>\nTikai ar konteineriem balst\u012bta docker platforma \u013cauj viegli p\u0101rvietot j\u016bsu slodzi. Docker konteineri var darboties j\u016bsu lok\u0101laj\u0101 dator\u0101, gan re\u0101l\u0101, gan virtu\u0101l\u0101 ma\u0161\u012bn\u0101 datu centr\u0101, k\u0101 ar\u012b m\u0101ko\u0146os.<\/p>\n<p>P\u0101rvietojam\u012bba un viegla docker daba \u013cauj viegli dinamisku p\u0101rvald\u012bbu ar j\u016bsu slodzi. J\u016bs varat izmantot docker, lai izvietotu vai izsl\u0113gtu savu lietotni vai pakalpojumus. Docker \u0101trums \u013cauj to dar\u012bt gandr\u012bz re\u0101laj\u0101 laik\u0101.<\/p>\n<h4>Augstas slodzes un vair\u0101k slod\u017eu<\/h4>\n<p>\nDocker ir viegls un \u0101trs. Tas nodro\u0161ina stabilu, izmaksu efekt\u012bvu alternat\u012bvu virtu\u0101laj\u0101m ma\u0161\u012bn\u0101m, kas balst\u0101s uz hipervizoru. Tas ir \u012bpa\u0161i noder\u012bgs apst\u0101k\u013cos ar augst\u0101m slodz\u0113m, piem\u0113ram, veidojot savu m\u0101ko\u0146a vai platformas-k\u0101-pakalpojuma (platform-as-service) risin\u0101jumus. Ta\u010du tas ir ar\u012b noder\u012bgs maziem un vid\u0113jiem lietojumiem, kad v\u0113laties maksim\u0101li izmantot pieejamos resursus.<\/p>\n<h3>Galvenie Docker komponenti<\/h3>\n<p>\nDocker sast\u0101v no diviem galvenajiem komponentiem:<\/p>\n<ul>\n<li>Docker: atv\u0113rt\u0101 koda virtualiz\u0101cijas platforma;<\/li>\n<li>Docker Hub: m\u016bsu platforma-k\u0101-pakalpojums docker konteineru izplat\u012b\u0161anai un p\u0101rvald\u012bbai.<\/li>\n<\/ul>\n<p>\n<i>Piez\u012bme! Docker tiek izplat\u012bts saska\u0146\u0101 ar Apache 2.0 licenci.<\/i><\/p>\n<h3>Docker arhitekt\u016bra<\/h3>\n<p><\/p>\n<p>Docker izmanto klienta-servera arhitekt\u016bru. Docker klients sazin\u0101s ar Docker demonu, kur\u0161 uz\u0146emas slogu j\u016bsu konteineru izveid\u0113, palai\u0161an\u0101 un sadal\u0113. Abi, klients un serveris var darboties uz vienas sist\u0113mas, j\u016bs varat piesl\u0113gt klientu att\u0101lin\u0101tam docker demona. Klients un serveris sazin\u0101s caur soketu vai caur RESTful API.<\/p>\n<p><img decoding=\"async\" alt=\"Izprotot Docker\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Docker demons<\/h4>\n<p>\nK\u0101 redzams diagramm\u0101, demons uzs\u0101kas uz hosta ma\u0161\u012bnas. Lietot\u0101js nesazin\u0101s tie\u0161i ar serveri, bet izmanto tam klientu.<\/p>\n<h4>Docker klients<\/h4>\n<p>\nDocker klients, programma docker \u2014 galvenais saskarne ar Docker. Tas sa\u0146em komandas no lietot\u0101ja un mijiedarbojas ar docker demon.<\/p>\n<h4>Iek\u0161 docker<\/h4>\n<p>\nLai saprastu, no k\u0101 sast\u0101v docker, jums j\u0101zina par trim komponentiem:<\/p>\n<ul>\n<li>att\u0113li (images)<\/li>\n<li>re\u0123istri (registries)<\/li>\n<li>konteineri<\/li>\n<\/ul>\n<h4>Att\u0113li<\/h4>\n<p>\nDocker att\u0113ls ir las\u0101m\u0101 forma balst\u012bts veidne. Piem\u0113ram, att\u0113ls var ietvert Ubuntu oper\u0113t\u0101jsist\u0113mu ar Apache un taj\u0101 eso\u0161u lietojumprogrammu. Att\u0113li tiek izmantoti konteineru izveidei. Docker \u013cauj viegli izveidot jaunus att\u0113lus, atjaunin\u0101t eso\u0161os, vai ar\u012b varat lejupiel\u0101d\u0113t att\u0113lus, ko izveidoju\u0161i citi cilv\u0113ki. Att\u0113li ir docker b\u016bvniec\u012bbas komponents.<\/p>\n<h4>Re\u0123istrs<\/h4>\n<p>\nDocker re\u0123istrs glab\u0101 att\u0113lus. Past\u0101v publiskie un priv\u0101tie re\u0123istri, no kuriem var lejupiel\u0101d\u0113t vai aug\u0161upiel\u0101d\u0113t att\u0113lus. Publiskais Docker re\u0123istrs ir <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Taj\u0101 ir milz\u012bga att\u0113lu kolekcija. K\u0101 j\u016bs zin\u0101t, att\u0113lus varat izveidot pa\u0161i vai ar\u012b izmantot att\u0113lus, ko izveidoju\u0161i citi. Re\u0123istri ir izplat\u012b\u0161anas komponents.<\/p>\n<h4>Tvertnes<\/h4>\n<p>\nKonteineri ir l\u012bdz\u012bgi direktorij\u0101m. Konteineros ir viss, kas nepiecie\u0161ams lietojumprogrammas darb\u012bbai. Katrs konteiners tiek izveidots no att\u0113la. Konteinerus var izveidot, palaist, aptur\u0113t, p\u0101rvietot vai dz\u0113st. Katrs konteiners ir izol\u0113ts un ir dro\u0161a platforma lietojumprogrammai. Konteineri ir darb\u012bbas komponents.<\/p>\n<h4>K\u0101 darbojas Docker?<\/h4>\n<p>\nPa\u0161laik m\u0113s zin\u0101m, ka:<\/p>\n<ul>\n<li>varam izveidot att\u0113lus, kuros atrodas m\u016bsu lietojumprogrammas;<\/li>\n<li>varam izveidot konteinerus no att\u0113liem, lai palaistu lietojumprogrammas;<\/li>\n<li>varam izplat\u012bt att\u0113lus caur Docker Hub vai citu att\u0113lu re\u0123istru.<\/li>\n<\/ul>\n<p>\nApskat\u012bsim, k\u0101 \u0161ie komponenti ir saist\u012bti.<\/p>\n<h4>K\u0101 darbojas att\u0113ls?<\/h4>\n<p>\nJau zin\u0101m, ka att\u0113ls ir las\u0101m\u0101 forma balst\u012bta veidne, no kuras tiek izveidots konteiners. Katrs att\u0113ls sast\u0101v no komplekta sl\u0101\u0146u. Docker izmanto <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">apvieno\u0161anas failu sist\u0113mu<\/a><\/noindex> lai apvienotu \u0161os sl\u0101\u0146us vien\u0101 att\u0113l\u0101. Apvieno\u0161anas failu sist\u0113ma \u013cauj failiem un direktorij\u0101m no da\u017e\u0101d\u0101m failu sist\u0113m\u0101m (at\u0161\u0137ir\u012bg\u0101m fili\u0101l\u0113m) caursp\u012bd\u012bgi p\u0101rkl\u0101ties, radot koherentu failu sist\u0113mu.<\/p>\n<p>Viena no iemesl\u0113m, k\u0101d\u0113\u013c docker ir viegla svara, ir \u0161\u0101du sl\u0101\u0146u izmanto\u0161ana. Kad j\u016bs main\u0101t att\u0113lu, piem\u0113ram, atjauninot lietojumprogrammu, tiek izveidots jauns sl\u0101nis. T\u0101d\u0113j\u0101di, neradot nomain\u012bt visu att\u0113lu vai p\u0101rstruktur\u0113t to, k\u0101 tas var b\u016bt j\u0101dara ar virtu\u0101lo ma\u0161\u012bnu, tikai sl\u0101nis tiek pievienots vai atjaunin\u0101ts. Un jums nav j\u0101izplata viss jaunais att\u0113ls, tiek izplat\u012bta tikai atjaunin\u0101jums, kas \u013cauj izplat\u012bt att\u0113lus viegl\u0101k un \u0101tr\u0101k.<\/p>\n<p>Katras att\u0113ls balst\u0101s uz b\u0101zes att\u0113lu. Piem\u0113ram, ubuntu ir b\u0101zes att\u0113ls Ubuntu, vai fedora ir b\u0101zes att\u0113ls Fedora distrib\u016bcijai. J\u016bs varat izmantot att\u0113lus k\u0101 pamatu jaunu att\u0113lu izveidei. Piem\u0113ram, ja jums ir att\u0113ls apache, varat to izmantot k\u0101 b\u0101zes att\u0113lu j\u016bsu t\u012bmek\u013ca lietojumprogramm\u0101m.<\/p>\n<p><i>Piez\u012bme! Docker parasti \u0146em att\u0113lus no Docker Hub re\u0123istra.<\/i><\/p>\n<p>Docker att\u0113li var tikt izveidoti no \u0161iem b\u0101zes att\u0113liem, un so\u013ci, kas apraksta \u0161o att\u0113lu izveidi, tiek d\u0113v\u0113ti par instrukcij\u0101m. Katrs nor\u0101d\u012bjums izveido jaunu att\u0113lu vai sl\u0101ni. Instrukcijas b\u016bs \u0161\u0101das darb\u012bbas:<\/p>\n<p><\/p>\n<ul>\n<li>komandas izpilde<\/li>\n<li>faila vai direktorijas pievieno\u0161ana<\/li>\n<li>vides main\u012bg\u0101 izveide<\/li>\n<li>nor\u0101d\u012bjums, ko palaist, kad tiek palaists \u0161\u012b att\u0113la konteineris<\/li>\n<\/ul>\n<p>\u0160\u012bs instrukcijas tiek glab\u0101tas fail\u0101 <code>Dockerfile<\/code>. Docker to lasa <code>Dockerfile<\/code>, kad j\u016bs veidojat att\u0113lu, izpilda \u0161\u012bs instrukcijas un atgrie\u017e gal\u012bgo att\u0113lu.<\/p>\n<h4>K\u0101 darbojas docker re\u0123istrs?<\/h4>\n<p>\nRe\u0123istrs ir docker att\u0113lu kr\u0101tuve. P\u0113c att\u0113la izveides j\u016bs varat to public\u0113t publiskaj\u0101 re\u0123istr\u0101 Docker Hub vai sav\u0101 priv\u0101taj\u0101 re\u0123istr\u0101.<\/p>\n<p>Izmantojot docker klientu, varat mekl\u0113t jau public\u0113tus att\u0113lus un lejupiel\u0101d\u0113t tos sav\u0101 ma\u0161\u012bn\u0101 ar docker, lai izveidotu konteinerus.<\/p>\n<p>Docker Hub nodro\u0161ina publiskus un priv\u0101tus att\u0113lu kr\u0101tuves. Mekl\u0113\u0161ana un lejupiel\u0101de no publiskaj\u0101m glab\u0101tav\u0101m ir pieejama visiem. Priv\u0101t\u0101s glab\u0101tuves saturs nepar\u0101d\u0101s mekl\u0113\u0161anas rezult\u0101tos. Tikai j\u016bs un j\u016bsu lietot\u0101ji var piek\u013c\u016bt \u0161iem att\u0113liem un izveidot no tiem konteinerus.<\/p>\n<h4>K\u0101 darbojas konteiners?<\/h4>\n<p>\nKonteiners sast\u0101v no oper\u0113t\u0101jsist\u0113mas, lietot\u0101ja failiem un metadatiem. K\u0101 m\u0113s zin\u0101m, katrs konteiners tiek izveidots no att\u0113la. \u0160is att\u0113ls saka docker, kas ir konteiner\u0101, k\u0101du procesu palaist, kad tiek palaists konteiners, un citus konfigur\u0101cijas datus. Docker att\u0113ls ir pieejams tikai las\u012b\u0161anai. Kad docker palaid\u012bs konteineru, tas izveidos las\u012b\u0161anas\/rakst\u012b\u0161anas sl\u0101ni virs att\u0113la (izmantojot union file system, k\u0101 iepriek\u0161 nor\u0101d\u012bts), kur\u0101 var tikt palaista lietojumprogramma.<\/p>\n<h4>Kas notiek, kad tiek palaists konteiners?<\/h4>\n<p>\nVai nu, izmantojot programmu <code>docker<\/code>, vai izmantojot RESTful API, docker klients saka docker demonam palaist konteineru.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nPaskat\u012bsimies uz \u0161o komandu. Klients tiek palaists, izmantojot komandu <code>docker<\/code>, ar opciju <code>run<\/code>, kas saka, ka tiks palaists jauns containers. Minim\u0101l\u0101s pras\u012bbas konteineru palai\u0161anai ir \u0161\u0101di atrib\u016bti:<\/p>\n<ul>\n<li>k\u0101du att\u0113lu izmantot konteineru izveidei. M\u016bsu gad\u012bjum\u0101 <code>ubuntu<\/code><\/li>\n<li>komanda, ko v\u0113laties palaist, kad kontainers tiks palaists. M\u016bsu gad\u012bjum\u0101 <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Kas notiek aizskatuves, kad m\u0113s palaist \u0161o komandu?<\/p>\n<p>Docker, sec\u012bgi, veic \u0161\u0101das darb\u012bbas:<\/p>\n<ul>\n<li><b>lejupiel\u0101d\u0113 att\u0113lu ubuntu:<\/b> docker p\u0101rbauda att\u0113la pieejam\u012bbu <code>ubuntu<\/code> lok\u0101laj\u0101 ma\u0161\u012bn\u0101, un, ja t\u0101 nav \u2014 lejupiel\u0101d\u0113 to no <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Ja att\u0113ls ir, tad izmanto to, lai izveidotu kontaineru;<\/li>\n<li><b>izveido kontaineru:<\/b> kad att\u0113ls ir sa\u0146emts, docker izmanto to, lai izveidotu kontaineru;<\/li>\n<li><b>inicializ\u0113 failu sist\u0113mu un mont\u0113 read-only l\u012bmeni:<\/b> kontainers izveidots failu sist\u0113m\u0101, un read-only l\u012bmenis pievienots att\u0113lam;<\/li>\n<li><b>inicializ\u0113 t\u012bklu\/tiltu:<\/b> izveido t\u012bkla interfeisu, kas \u013cauj docker sazin\u0101ties ar saimniekma\u0161\u012bnu;<\/li>\n<li><b>Iestata IP adresi:<\/b> atrod un nosaka adresi;<\/li>\n<li><b>Palaista nor\u0101d\u012bto procesu:<\/b> palaista j\u016bsu lietotni;<\/li>\n<li><b>Apstr\u0101d\u0101 un nodro\u0161ina j\u016bsu lietotnes izvadi:<\/b> pievienojas un re\u0123istr\u0113 standarta ievadi, izvadi un k\u013c\u016bdu pl\u016bsmu j\u016bsu lietotn\u0113, lai j\u016bs var\u0113tu sekot, k\u0101 darbojas j\u016bsu lietotne.<\/li>\n<\/ul>\n<p>\nTagad jums ir str\u0101d\u0101jo\u0161s kontainers. J\u016bs varat p\u0101rvald\u012bt savu kontaineru, mijiedarboties ar savu lietotni. Kad nolemjat aptur\u0113t lietotni, izdz\u0113siet kontaineru.<\/p>\n<h3>Izmantot\u0101s tehnolo\u0123ijas<\/h3>\n<p>\nDocker ir uzrakst\u012bts Go valod\u0101 un izmanto da\u017eas Linux kodola iesp\u0113jas, lai realiz\u0113tu iepriek\u0161 min\u0113to funkcionalit\u0101ti.<\/p>\n<h4>Nosl\u0113pumi (namespaces)<\/h4>\n<p>\nDocker izmanto tehnolo\u0123iju <code>nosaukumu telpas<\/code> lai organiz\u0113tu izol\u0113tus darba laukus, ko m\u0113s saucam par konteineriem. Kad m\u0113s palaist kontaineru, docker izveido nosl\u0113pumu kopumu \u0161im konteineram.<\/p>\n<p>Tas rada izol\u0113tu l\u012bmeni, katrs aspekts konteiner\u0101 tiek palaists sav\u0101 nosl\u0113pum\u0101 un nav piek\u013cuves \u0101r\u0113jai sist\u0113mai.<\/p>\n<p>Da\u013c\u0113js nosl\u0113pumu saraksts, ko izmanto docker:<\/p>\n<ul>\n<li><b>pid:<\/b> procesu izol\u0101cijai;<\/li>\n<li><b>net:<\/b> t\u012bkla interfeisu p\u0101rvald\u012bbai;<\/li>\n<li><b>ipc:<\/b> IPC resursu p\u0101rvald\u012bbai. (ICP: Starpprocessu komunik\u0101cija);<\/li>\n<li><b>mnt:<\/b> mont\u0113\u0161anas punktu p\u0101rvald\u012bbai;<\/li>\n<li><b>utc:<\/b> kodola izol\u0101cijai un versiju \u0123ener\u0113\u0161anas kontrolei (UTC: Unix laika dal\u012b\u0161anas sist\u0113ma).<\/li>\n<\/ul>\n<h4>Kontroles grupas<\/h4>\n<p>\nDocker ar\u012b izmanto tehnolo\u0123iju <code>cgroups<\/code> vai kontroles grupas. Atsl\u0113ga, lai lietojumprogramma darbotos izol\u0113ti, ir nodro\u0161in\u0101t lietojumprogrammai tikai t\u0101s resursus, kurus v\u0113laties pie\u0161\u0137irt. Tas garant\u0113, ka konteineri b\u016bs labi kaimi\u0146i. Kontroles grupas \u013cauj dal\u012bt pieejamos aparat\u016bras resursus un, ja nepiecie\u0161ams, noteikt robe\u017eas un ierobe\u017eojumus. Piem\u0113ram, ierobe\u017eot iesp\u0113jamo atmi\u0146as apjomu konteineram.<\/p>\n<h4>Apvienot\u0101 failu sist\u0113ma<\/h4>\n<p>\nApvienot\u0101 failu sist\u0113ma jeb UnionFS ir failu sist\u0113ma, kas darbojas, izveidojot sl\u0101\u0146us, padarot to \u013coti vieglu un \u0101tru. Docker izmanto UnionFS, lai izveidotu blokus, no kuriem tiek veidots konteiners. Docker var izmantot vair\u0101kas UnionFS vari\u0101cijas, tostarp: AUFS, btrfs, vfs un DeviceMapper.<\/p>\n<h4>Konteineru form\u0101ti<\/h4>\n<p>\nDocker apvieno \u0161os komponentus ietvar\u0101, ko m\u0113s saucam par konteineru form\u0101tu. Noklus\u0113juma izmantotais form\u0101ts tiek saukts <code>libcontainer<\/code>. T\u0101pat docker atbalsta tradicion\u0101lo konteineru form\u0101tu Linux, izmantojot <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. N\u0101kotn\u0113 Docker, iesp\u0113jams, atbalst\u012bs citus konteineru form\u0101tus, piem\u0113ram, integr\u0113joties ar BSD Jails vai Solaris Zones.<br \/>\n<br \/>Avots: <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.5 - 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\/lv\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/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\udd47Saprotot Docker | ProHoster","description":"Jau vair\u0101kus m\u0113ne\u0161us izmantoju docker, lai struktur\u0113tu t\u012bmek\u013ca projektu izstr\u0101des\/pieg\u0101des procesu.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}