{"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\/sl\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Razumevanje Dockerja","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>\u017de nekaj mesecev uporabljam docker za strukturiranje procesa razvoja\/izro\u010danja spletnih projektov. Predlagam bralcem 'Habrabro' prevod uvodnega \u010dlanka o dockerju \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u201eRazumevanje dockra\u201c<\/a><\/noindex>.<\/i><\/p>\n<h3>Kaj je docker?<\/h3>\n<p>\nDocker je odprta platforma za razvoj, izro\u010danje in upravljanje aplikacij. Docker je zasnovan za hitrej\u0161e uvajanje va\u0161ih aplikacij. S pomo\u010djo dockra lahko lo\u010dite svojo aplikacijo od svoje infrastrukture in ravnate z infrastrukturo kot z upravljano aplikacijo. Docker pomaga hitreje uvajati va\u0161 kodo, hitreje testirati, hitreje izdajati aplikacije in zmanj\u0161ati \u010das med pisanjem kode in njenim zagonom. Docker to dosega s pomo\u010djo lahkotne platforme za kontejnersko virtualizacijo, ki uporablja procese in orodja za upravljanje ter uvajanje va\u0161ih aplikacij.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nV svojem jedru docker omogo\u010da zagon skoraj katerekoli aplikacije, varno izolirane v kontejnerju. Varnostna izolacija vam omogo\u010da zagon ve\u010d kontejnerjev hkrati na enem gostitelju. Lahkotna narava kontejnerja, ki se za\u017eene brez dodatne obremenitve hipervizorja, vam omogo\u010da, da iz svojega strojnega dela iztisnete ve\u010d.<\/p>\n<p>Platforma in orodja za kontejnersko virtualizacijo so lahko koristna v naslednjih primerih:<\/p>\n<ul>\n<li>pakiranje va\u0161e aplikacije (in povezanih komponent) v docker kontejnerje;<\/li>\n<li>dodeljevanje in izro\u010danje teh kontejnerjev va\u0161im ekipam za razvoj in testiranje;<\/li>\n<li>uvajanje teh kontejnerjev v va\u0161e produkcijske okolje, tako v podatkovne centre kot v oblake.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Za kaj lahko uporabljam docker?<\/h3>\n<p><\/p>\n<h4>Hitro uvajanje va\u0161ih aplikacij<\/h4>\n<p>\nDocker je odli\u010den za organizacijo cikla razvoja. Docker omogo\u010da razvijalcem, da uporabljajo lokalne kontejnerje z aplikacijami in storitvami. To kasneje omogo\u010da integracijo s procesom stalne integracije in uvajanja (continuous integration and deployment workflow).<\/p>\n<p>Na primer, va\u0161i razvijalci pi\u0161ejo kodo lokalno in delijo svoj razvojni kup (nabor docker slik) s sodelavci. Ko so pripravljeni, po\u0161ljejo kodo in kontejnerje na testno okolje in izvedejo vse potrebne teste. Iz testne platforme lahko po\u0161ljejo kodo in slike na produkcijo.<\/p>\n<h4>Enostavnej\u0161e uvajanje in name\u0161\u010danje<\/h4>\n<p>\nPlattform ki, jo docker par adharit hai, aapke workload ko aasani se port karne ki anumati deti hai. Docker containers aapke local machine par, chahe wo asli ho ya virtual machine data center me, ya cloud me bhi kaam kar sakte hain.<\/p>\n<p>Docker ki portabilitiy aur lightweight prakriti aapki workload ko aasani se dynamically manage karna sambhav bana deti hai. Aap docker ka upyog apne application ya services ko deploy ya shut down karne ke liye kar sakte hain. Docker ki tezi isse lagbhag real time me karne ki anumati deti hai.<\/p>\n<h4>Uchch bharat aur adhik workload<\/h4>\n<p>\nDocker lightweight aur tezi se kaam karta hai. Ye hypervisor-based virtual machines ke liye ek stable, cost-effective vikalp pradan karta hai. Ye visesh roop se uchch load ke paristhitiyon me upyogi hai, jaise apna khud ka cloud ya platform-as-a-service banate samay. Lekin ye choti aur madhyam applications ke liye bhi upyogi hai jab aap apne maujooda resources ka adhik upyog karna chahte hain.<\/p>\n<h3>Docker ke mukhya components<\/h3>\n<p>\nDocker do mukhya components se milkar bana hai:<\/p>\n<ul>\n<li>Docker: khula source virtualization platform;<\/li>\n<li>Docker Hub: hamara platform-as-a-service docker containers ka vitran aur prabandhan karne ke liye.<\/li>\n<\/ul>\n<p>\n<i>Tip! Docker Apache 2.0 license ke antargat prasarit hai.<\/i><\/p>\n<h3>Docker ki architecture<\/h3>\n<p><\/p>\n<p>Docker client-server architecture ka upyog karta hai. Docker client Docker daemon se samvaad karta hai, jo aapke containers ko banana, chalana, aur vitran karne ka bojh uthata hai. Dono, client aur server ek hi system par kaam kar sakte hain, aap client ko door ke docker daemon se jod sakte hain. Client aur server socket ya RESTful API ke madhyam se samvaad karte hain.<\/p>\n<p><img decoding=\"async\" alt=\"Razumevanje Dockerja\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Docker daemon<\/h4>\n<p>\nJaise ki diagram me dikhaya gaya hai, daemon host machine par suru hota hai. User server se sidhe samvaad nahi karta, balki client ke madhyam se karta hai.<\/p>\n<h4>Docker client<\/h4>\n<p>\nDocker client, docker program \u2014 Docker ka pramukh interface hai. Ye user se commands prapt karta hai aur docker daemon ke saath samvaad karta hai.<\/p>\n<h4>Docker ke andar<\/h4>\n<p>\nDocker ke gyaan ke liye, aapko teen components ke bare me jaankari honi chahiye:<\/p>\n<ul>\n<li>images (obraz)<\/li>\n<li>registries (registri)<\/li>\n<li>containers (kontejnery)<\/li>\n<\/ul>\n<h4>Obraz<\/h4>\n<p>\nDocker image is a read-only template. For example, an image may contain the Ubuntu operating system with Apache and an application running on it. Images are used to create containers. Docker makes it easy to create new images, update existing ones, or you can download images created by others. Images are a component of Docker assembly.<\/p>\n<h4>Registry<\/h4>\n<p>\nThe Docker registry stores images. There are public and private registries from which you can download or upload images. The public Docker registry is <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. It hosts a vast collection of images. As you know, images can be created by you or you can use images created by others. Registries are a component of distribution.<\/p>\n<h4>Kontejnerji<\/h4>\n<p>\nContainers are similar to directories. Containers contain everything needed to run an application. Each container is created from an image. Containers can be created, started, stopped, moved, or deleted. Each container is isolated and is a secure platform for an application. Containers are a component of operation.<\/p>\n<h4>So how does Docker work?<\/h4>\n<p>\nSo far, we know that:<\/p>\n<ul>\n<li>we can create images that contain our applications;<\/li>\n<li>we can create containers from images to run applications;<\/li>\n<li>we can distribute images through Docker Hub or another image registry.<\/li>\n<\/ul>\n<p>\nLet's see how these components fit together.<\/p>\n<h4>How does an image work?<\/h4>\n<p>\nWe already know that an image is a read-only template from which a container is created. Each image consists of a set of layers. Docker uses <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">union file system<\/a><\/noindex> to combine these layers into a single image. The union file system allows files and directories from different file systems (different branches) to be transparently overlaid, creating a coherent file system.<\/p>\n<p>One of the reasons Docker is lightweight is due to the use of such layers. When you modify an image, for instance, by updating an application, a new layer is created. Thus, without replacing the entire image or rebuilding it, as you might have to do with a virtual machine, only the layer is added or updated. And you don't need to distribute the entire new image; only the update is distributed, making it easier and faster to distribute images.<\/p>\n<p>Osnova ka\u017ed\u00e9ho obrazu je z\u00e1kladn\u00ed obraz. Nap\u0159\u00edklad ubuntu, z\u00e1kladn\u00ed obraz Ubuntu nebo fedora, z\u00e1kladn\u00ed obraz distribuce Fedora. M\u016f\u017eete tak\u00e9 pou\u017e\u00edt obrazy jako z\u00e1klad pro vytv\u00e1\u0159en\u00ed nov\u00fdch obraz\u016f. Nap\u0159\u00edklad, pokud m\u00e1te obraz apache, m\u016f\u017eete ho pou\u017e\u00edt jako z\u00e1kladn\u00ed obraz pro va\u0161e webov\u00e9 aplikace.<\/p>\n<p><i>Pozn\u00e1mka! Docker obvykle bere obrazy z registru Docker Hub.<\/i><\/p>\n<p>Docker obrazy mohou b\u00fdt vytvo\u0159eny z t\u011bchto z\u00e1kladn\u00edch obraz\u016f, kroky popsan\u00e9 pro vytvo\u0159en\u00ed t\u011bchto obraz\u016f naz\u00fdv\u00e1me instrukcemi. Ka\u017ed\u00e1 instrukce vytv\u00e1\u0159\u00ed nov\u00fd obraz nebo \u00farove\u0148. Instrukcemi budou n\u00e1sleduj\u00edc\u00ed akce:<\/p>\n<p><\/p>\n<ul>\n<li>spu\u0161t\u011bn\u00ed p\u0159\u00edkazu<\/li>\n<li>p\u0159id\u00e1n\u00ed souboru nebo adres\u00e1\u0159e<\/li>\n<li>vytvo\u0159en\u00ed prom\u011bnn\u00e9 prost\u0159ed\u00ed<\/li>\n<li>pokyny, co spustit, kdy\u017e se spust\u00ed kontejner tohoto obrazu<\/li>\n<\/ul>\n<p>Tyto instrukce jsou ulo\u017eeny v souboru <code>Dockerfile<\/code>. Docker to \u010dte <code>Dockerfile<\/code>, kdy\u017e sestavujete obraz, vykon\u00e1v\u00e1 tyto instrukce a vrac\u00ed kone\u010dn\u00fd obraz.<\/p>\n<h4>Jak funguje docker registr?<\/h4>\n<p>\nRegistr je \u00falo\u017ei\u0161t\u011b docker obraz\u016f. Po vytvo\u0159en\u00ed obrazu jej m\u016f\u017eete publikovat na ve\u0159ejn\u00e9m registru Docker Hub nebo na va\u0161em osobn\u00edm registru.<\/p>\n<p>Pomoc\u00ed docker klienta m\u016f\u017eete vyhled\u00e1vat ji\u017e publikovan\u00e9 obrazy a stahovat je na v\u00e1\u0161 stroj s dockerem pro vytv\u00e1\u0159en\u00ed kontejner\u016f.<\/p>\n<p>Docker Hub poskytuje ve\u0159ejn\u00e9 a soukrom\u00e9 \u00falo\u017ei\u0161t\u011b obraz\u016f. Vyhled\u00e1v\u00e1n\u00ed a stahov\u00e1n\u00ed obraz\u016f z ve\u0159ejn\u00fdch \u00falo\u017ei\u0161\u0165 je p\u0159\u00edstupn\u00e9 v\u0161em. Obsah soukrom\u00fdch \u00falo\u017ei\u0161\u0165 se neobjevuje ve v\u00fdsledc\u00edch vyhled\u00e1v\u00e1n\u00ed. Pouze vy a va\u0161i u\u017eivatel\u00e9 m\u016f\u017eete z\u00edskat tyto obrazy a vytv\u00e1\u0159et z nich kontejnery.<\/p>\n<h4>Jak funguje kontejner?<\/h4>\n<p>\nKontejner se skl\u00e1d\u00e1 z opera\u010dn\u00edho syst\u00e9mu, u\u017eivatelsk\u00fdch soubor\u016f a metadat. Jak v\u00edme, ka\u017ed\u00fd kontejner je vytvo\u0159en z obrazu. Tento obraz \u0159\u00edk\u00e1 dockeru, co je v kontejneru, jak\u00fd proces spustit p\u0159i spu\u0161t\u011bn\u00ed kontejneru a dal\u0161\u00ed konfigura\u010dn\u00ed \u00fadaje. Docker obraz je dostupn\u00fd pouze pro \u010dten\u00ed. Kdy\u017e docker spust\u00ed kontejner, vytvo\u0159\u00ed \u00farove\u0148 pro \u010dten\u00ed\/z\u00e1pis nad obrazem (pou\u017e\u00edvaj\u00edc\u00ed union file system, jak bylo zm\u00edn\u011bno d\u0159\u00edve), ve kter\u00e9 m\u016f\u017ee b\u00fdt spu\u0161t\u011bna aplikace.<\/p>\n<h4>Co se stane, kdy\u017e se spust\u00ed kontejner?<\/h4>\n<p>\nBu\u010f pomoc\u00ed programu <code>docker<\/code>, nebo pomoc\u00ed RESTful API, docker klient \u0159\u00edk\u00e1 docker d\u00e9monu, aby spustil kontejner.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nPoj\u010fme si rozebrat tento p\u0159\u00edkaz. Klient se spou\u0161t\u00ed pomoc\u00ed p\u0159\u00edkazu <code>docker<\/code>, s volbou <code>run<\/code>, ki pravi, da bo zagnan nov kontejner. Minimalne zahteve za zagon kontejnerja so naslednji atributi:<\/p>\n<ul>\n<li>katero sliko uporabiti za ustvarjanje kontejnerja. V na\u0161em primeru <code>ubuntu<\/code><\/li>\n<li>ukaz, ki ga \u017eelite zagnati, ko bo kontejner zagnan. V na\u0161em primeru <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Kaj se dogaja pod pokrovom, ko za\u017eenemo ta ukaz?<\/p>\n<p>Docker zaporedno izvede naslednje:<\/p>\n<ul>\n<li><b>nalo\u017ei sliko ubuntu:<\/b> docker preveri, ali obstaja slika <code>ubuntu<\/code> na lokalnem sistemu, in \u010de je ni \u2014 jo nalo\u017ei z <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. \u010ce slika \u017ee obstaja, jo uporabi za ustvarjanje kontejnerja;<\/li>\n<li><b>ustvari kontejner:<\/b> ko je slika pridobljena, docker jo uporabi za ustvarjanje kontejnerja;<\/li>\n<li><b>inicializira datote\u010dni sistem in montira read-only raven:<\/b> kontejner je ustvarjen v datote\u010dnem sistemu in read-only raven je dodana sliki;<\/li>\n<li><b>inicializira omre\u017eje\/mosht:<\/b> ustvari omre\u017eni vmesnik, ki omogo\u010da dockerju, da komunicira s host ra\u010dunalnikom;<\/li>\n<li><b>Nastavitev IP naslova:<\/b> najde in nastavi naslov;<\/li>\n<li><b>Za\u017eene dolo\u010den proces:<\/b> za\u017eene va\u0161o aplikacijo;<\/li>\n<li><b>Obdeluje in izda izhod va\u0161e aplikacije:<\/b> povezuje se in bele\u017ei standardni vhod, izhod ter tok napak va\u0161e aplikacije, da lahko spremljate, kako deluje va\u0161a aplikacija.<\/li>\n<\/ul>\n<p>\nZdaj imate delujo\u010d kontejner. Lahko upravljate s svojim kontejnerjem in komunicirate s svojo aplikacijo. Ko se odlo\u010dite, da ustavite aplikacijo, izbri\u0161ite kontejner.<\/p>\n<h3>Uporabljene tehnologije<\/h3>\n<p>\nDocker je napisan v Go in uporablja nekatere funkcionalnosti jedra Linux, da implementira zgoraj navedeno funkcionalnost.<\/p>\n<h4>Imenskih prostorov (namespaces)<\/h4>\n<p>\nDocker uporablja tehnologijo <code>namespaces<\/code> za organizacijo izoliranih delovnih prostorov, ki jih imenujemo kontejnerji. Ko za\u017eenemo kontejner, docker ustvari niz imenskih prostorov za ta kontejner.<\/p>\n<p>To ustvari izolirano raven, vsak vidik kontejnerja je zagnan v svojem imenskem prostoru in nima dostopa do zunanjega sistema.<\/p>\n<p>Seznam nekaterih imenskih prostorov, ki jih uporablja docker:<\/p>\n<ul>\n<li><b>pid:<\/b> za izolacijo procesov;<\/li>\n<li><b>net:<\/b> za upravljanje omre\u017enih vmesnikov;<\/li>\n<li><b>ipc:<\/b> za upravljanje IPC virov. (ICP: Medproces komunikacija);<\/li>\n<li><b>mnt:<\/b> za upravljanje to\u010dk montiranja;<\/li>\n<li><b>utc:<\/b> za izolacijo jedra in nadzor generacije verzij (UTC: Unix timesharing system).<\/li>\n<\/ul>\n<h4>Kontrolne skupine (Control groups)<\/h4>\n<p>\nDocker prav tako uporablja tehnologijo <code>cgroups<\/code> ali kontrolne grupe. Klju\u010d za rad aplikacije u izolaciji, pru\u017eaju\u0107i aplikaciji samo one resurse koje \u017eelite da joj date. To garantuje da \u0107e kontejneri biti dobri susedi. Kontrolne grupe omogu\u0107avaju deljenje dostupnih resursa hardvera i, ako je potrebno, postavljanje granica i ograni\u010denja. Na primer, ograni\u010davanje mogu\u0107e koli\u010dine memorije kontejneru.<\/p>\n<h4>Union File System<\/h4>\n<p>\nUnion File System ili UnionFS - to je datote\u010dni sistem koji funkcioni\u0161e stvaranjem nivoa, \u010dine\u0107i ga veoma laganim i brzim. Docker koristi UnionFS za kreiranje blokova od kojih se pravi kontejner. Docker mo\u017ee koristiti nekoliko varijanti UnionFS, uklju\u010duju\u0107i: AUFS, btrfs, vfs i DeviceMapper.<\/p>\n<h4>Formati kontejnera<\/h4>\n<p>\nDocker kombinuje ove komponente u omota\u010d, koji nazivamo formatom kontejnera. Format koji se koristi po defaultu zove se <code>libcontainer<\/code>. Tako\u0111e, Docker podr\u017eava tradicionalni format kontejnera u Linuxu pomo\u0107u <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. U budu\u0107nosti, Docker \u0107e mo\u017eda podr\u017eati druge formate kontejnera. Na primer, integracijom sa BSD Jails ili Solaris Zones.<br \/>\n<br \/>Izvor: <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\/sl\/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=\"sl_SI\" \/>\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\/sl\/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\udd47Razumevanje Dockera | ProHoster","description":"Ve\u0107 nekoliko meseci koristim Docker za strukturisanje procesa razvoja\/dostave web projekata.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}