{"id":31641,"date":"2019-10-31T21:42:19","date_gmt":"2019-10-31T18:42:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\/"},"modified":"2019-10-31T21:42:19","modified_gmt":"2019-10-31T18:42:19","slug":"docker-eto-igrushka-ili-net-ili-vsyo-taki-da","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","title":{"rendered":"Docker \u2014 je igra\u010dka ili nije? Ili ipak jeste?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Zdravo svima!<\/p>\n<p><\/p>\n<p>Zelo bi rad takoj za\u010del s temo, vendar bo pravilneje, da najprej malo povem o svoji zgodbi:<\/p>\n<p><\/p>\n<h2>Uvod<\/h2>\n<p><\/p>\n<p>Sem programer z izku\u0161njami pri razvoju frontend enostranskih aplikacij, Scala\/Java in Node.js na stre\u017eniku. <\/p>\n<p><\/p>\n<p>Dolgo \u010dasa (\u017ee zagotovo dve do tri leta) sem imel mnenje, da je Docker bo\u017eja milost in zelo kul orodje ter da se mora vsaka razvijalec znati z njim slu\u017eiti. Od tod izhaja, da bi moral imeti vsak razvijalec Docker na svojem lokalnem ra\u010dunalniku. Pravzaprav, \u010de pogledate zaposlitvene oglase, ki se objavljajo na istem hh, v vsakem drugem je omenjeno, da je Docker za\u017eelen, in \u010de ga obvladate \u2014 to bo va\u0161a konkuren\u010dna prednost \ud83d\ude09<\/p>\n<p><\/p>\n<p>Na svoji poti sem se sre\u010dal z mnogimi ljudmi, ki so imeli razli\u010dne poglede na Docker in njegovo ekosistem. Nekateri so rekli, da je to uporabna stvar, ki zagotavlja ve\u010dplatformsko delovanje. Drugi niso razumeli, zakaj bi se morali zagnati v kontejnere in kak\u0161na je korist od tega, tretjim pa je bilo povsem vseeno in se niso obremenjevali (preprosto so pisali kodo in \u0161li domov \u2014 moram re\u010di, da jim zavidam \ud83d\ude42)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Razlogi za uporabo<\/h2>\n<p><\/p>\n<p>Zakaj sem uporabljal Docker? Verjetno iz naslednjih razlogov:<\/p>\n<p><\/p>\n<ul>\n<li>za\u017eenem bazo podatkov, 99% aplikacij jih uporablja<\/li>\n<li>za\u017eenem Nginx za razdeljevanje frontend-a in posredovanje na backend<\/li>\n<li>aplikacijo lahko zapakirate v Docker sliko, tako bo moja aplikacija delovala povsod, kjer je Docker, problem distribucije je takoj re\u0161en<\/li>\n<li>odkrivanje storitev iz \u0161katle, lahko delam mikroservise, vsak kontejner (priklju\u010den skupni mre\u017ei) zlahka dose\u017ee drugega po aliasu, zelo priro\u010dno<\/li>\n<li>Zabavno je stvoriti kontejner i 'igrati' se s njim.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kar mi nikoli ni bilo v\u0161e\u010d pri Dockerju:<\/h2>\n<p><\/p>\n<ul>\n<li>da moje aplikacije delujejo, potrebujejo sam Docker na stre\u017eniku. Zakaj bi to potreboval, \u010de moje aplikacije delujejo na JRE ali Node.js in je okolje zanje \u017ee na voljo na stre\u017eniku?<\/li>\n<li>\u010de \u017eelim zagnati svoj (privatni) lokalno sestavljen sliko na oddaljenem stre\u017eniku, potrebujem svoj Docker repozitorij, treba je, da nekje deluje registracija in \u0161e treba je nastaviti HTTPS, ker Docker CLI deluje samo preko HTTPS. O hudi\u010de... obstajajo seveda mo\u017enosti, da sliko lokalno shranim preko <code>docker save<\/code> i putem scp jednostavno prebaciti sliku\u2026 No, to zahtijeva toliko pokreta. Uz to, izgleda kao 'privremeno' rje\u0161enje, dok se ne pojavi vlastiti repozitorij.<\/li>\n<li><code>docker-compose<\/code>Potrebno je samo za pokretanje kontejnera. I to je sve. Vi\u0161e ni\u0161ta ne mo\u017ee. <code>Docker-compose<\/code> ima gomilu verzija svojih fajlova, svoj sintaksu. Kakav god da je deklarativan, ne \u017eelim da \u010ditam njihovu dokumentaciju. Vi\u0161e mi nije potrebna.<\/li>\n<li>kada radite u timu, ve\u0107ina ljudi pi\u0161e Dockerfile veoma lo\u0161e, ne razumeju kako se ke\u0161ira, dodaju u sliku sve \u0161to treba i ne treba, nasle\u0111uju slike koje nisu na dockerhub ili privatnom repozitorijumu, prave neke <code>docker-compose<\/code> datoteke s bazama podataka i ni\u0161ta ne ostaje trajno. Osim toga, programeri ponosno tvrde da je docker sjajan, sve radi lokalno, a HR va\u017eno pi\u0161e u oglasima: 'Koristimo docker i potrebna nam je osoba s tim iskustvom.'<\/li>\n<li>stalno se javljaju misli o pokretanju svega u dockeru: postgresql, kafka, redis. \u0160teta \u0161to ne radi sve u kontejnerima, nije sve lako konfigurisati i pokrenuti. To podr\u017eavaju spoljnji developeri, a ne sami vendori. I, mimo toga, odmah se postavlja pitanje, za\u0161to se vendori ne brinu o odr\u017eavanju svojih proizvoda u dockeru, mo\u017eda oni ne\u0161to znaju?<\/li>\n<li>uvek se postavlja pitanje o peristentnosti podataka kontejnera. Ovde razmi\u0161lja\u0161, da li da samo monta\u017eira\u0161 direktorijum na hostu ili da napravim docker volume ili da napravim data container koji je sada <code>deprecated<\/code>? \u0415\u0441\u043b\u0438 \u044f \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0442\u043e uid \u0438 gid \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0438\u043d\u0430\u0447\u0435 \u0444\u0430\u0439\u043b\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 root. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <code>volume<\/code> tako \u0107e podaci jednostavno biti kreirani u nekom <code>\/usr\/*<\/code> i bit \u0107e sli\u010dna pri\u010da s uid i gid kao u prvom slu\u010daju. Ako pokre\u0107e\u0161 vanjsku komponentu, mora\u0161 prou\u010diti dokumentaciju i tra\u017eiti odgovor na pitanje: 'u koje direktorije kontejnera komponenta zapisuje datoteke?'<\/li>\n<\/ul>\n<p>Uvek mi je smetalo \u0161to moram predugo da se zadr\u017ei sa docker-om <strong>u po\u010detnoj fazi<\/strong>: smi\u0161ljao sam kako da pokre\u0107em kontejnere, iz kojih slika da se pokre\u0107u, pravio Makefile koji je sadr\u017eavao alijase za duge docker komande. Nimalo nisam voleo docker-compose, jer nisam hteo da u\u010dim jo\u0161 jedan alat iz ekosistema dockera. A <code>docker-compose up<\/code> to me je nerviralo, posebno, ako su se tu jo\u0161 nalazile <code>build<\/code> konstrukcije, a ne ve\u0107 sastavljene slike. Sve \u0161to sam zaista \u017eeleo \u2014 je da jednostavno efikasno i brzo pravim proizvod. Ali nikako nisam mogao da razjasnim upotrebu dockera.<\/p>\n<p><\/p>\n<h2>Upoznavao se sa Ansible-om<\/h2>\n<p><\/p>\n<p>Nedavno (pre tri meseca), radio sam sa DevOps timom, gotovo svaki \u010dlan kojem je negativno gledao na docker. Zbog razloga:<\/p>\n<p><\/p>\n<ul>\n<li>Docker upravlja iptables (iako ga mo\u017eete isklju\u010diti u daemon.json)<\/li>\n<li>Docker je problemati\u010dan i ne\u0107emo ga pokretati u produkciji<\/li>\n<li>Ako docker daemon padne, automatski padaju svi kontejneri infrastrukture<\/li>\n<li>Nema potrebe za dockerom<\/li>\n<li>Za\u0161to koristiti docker kada postoje Ansible i virtuelne ma\u0161ine<\/li>\n<\/ul>\n<p><\/p>\n<p>Na istom poslu upoznao sam jo\u0161 jedan alat \u2014 Ansible. Nekada sam \u010duo za njega, ali nisam se usudio da pi\u0161em svoje playbook-e. Sada sam po\u010deo da pi\u0161em svoje zadatke i moje vi\u0111enje se kona\u010dno promenilo! Shvatio sam da Ansible ima module za pokretanje istih docker kontejnera, izgradnju slika, mre\u017ea i sli\u010dno, pri \u010demu se kontejneri mogu pokretati ne samo lokalno, ve\u0107 i na udaljenim serverima! Moj odu\u0161evljenje nije imalo granica \u2014 prona\u0161ao sam ODLI\u010cAN alat i bacio svoje Makefile i docker-compose fajlove, zamenjeni su yaml zadacima. Koder sam smanjio koriste\u0107i konstrukcije poput <code>loop<\/code>, <code>when<\/code>, itd.<\/p>\n<p><\/p>\n<h2>Docker za pokretanje spoljnih komponenata kao \u0161to su baze podataka<\/h2>\n<p><\/p>\n<p>Nedavno sam se upoznao s ssh tunelima. Ispostavilo se da je vrlo jednostavno 'provu\u0107i' port udaljenog servera na lokalni port. Udaljeni server mo\u017ee biti i stroj u oblaku, kao i virtualna ma\u0161ina pokrenuta u VirtualBoxu. Ako meni ili mom kolegi zatreba baza podataka (ili neka druga vanjska komponenta), mo\u017eemo jednostavno pokrenuti server s tom komponentom i ugasiti ga kada vi\u0161e nije potreban. Propu\u0161tanje portova daje isti u\u010dinak kao i baza podataka pokrenuta u docker kontejneru.<\/p>\n<p><\/p>\n<p>Ova komanda propu\u0161ta moj lokalni port na udaljeni server sa postgresql:<\/p>\n<p><\/p>\n<blockquote><p>ssh -L 9000:localhost:5432 user@example.com<\/p><\/blockquote>\n<p>Kori\u0161\u0107enje udaljenog servera re\u0161ava problem saradnje u timu. Tim serverom mo\u017ee koristiti vi\u0161e programera, ne moraju znati kako da pode\u0161avaju postgresql, snalaze se sa docker-om i ostalim komplikacijama. Na udaljenom serveru mo\u017ee se instalirati ista baza podataka u docker-u, ako je te\u0161ko instalirati specifi\u010dnu verziju. Sve \u0161to \u0107e programerima biti potrebno \u2014 to je ssh pristup!<\/p>\n<p><\/p>\n<p>Nedavno sam pro\u010ditao da su SSH tuneli ograni\u010dena funkcionalnost obi\u010dnog VPN-a! Mo\u017eete jednostavno postaviti OpenVPN ili druge implementacije VPN-a, podesiti infrastrukturu i omogu\u0107iti je programerima. To je zaista sjajno!<\/p>\n<p><\/p>\n<p>Na sre\u010do AWS, GoogleCloud in drugi nudijo leto dni brezpla\u010dnega uporabe, zato jih izkoristite! So poceni, \u010de jih izklopite, ko jih ne uporabljate. Vedno sem se spra\u0161eval, v kak\u0161ne namene bi potreboval oddaljen stre\u017enik, kot je gcloud, zdi se, da sem jih na\u0161el.<\/p>\n<p><\/p>\n<p>Kot virtualni stroj na lokalnem sistemu lahko uporabite isti Alpine, ki se aktivno uporablja v docker kontejnerjih. Ali pa kak\u0161ne druge lahke distribucije, da se stroj hitreje nalo\u017ei.<\/p>\n<p><\/p>\n<p>Zaklju\u010dek: zagon baz podatkov in drugih infrastrukturnih komponent je mogo\u010de in potrebno na oddaljenih stre\u017enikih ali v virtualboxu. Docker mi za te namene ni potreben.<\/p>\n<p><\/p>\n<h2>Nekaj o docker slikah in distribuciji<\/h2>\n<p><\/p>\n<p>\u017de sem pisal <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/443136\/\">\u010dlanak<\/a><\/noindex> v kateri sem \u017eelel sporo\u010diti, da uporaba docker slik ne zagotavlja nobene garancije. Docker slike so potrebne le za ustvarjanje docker kontejnerja. \u010ce se zaklenete na docker sliko, to pomeni, da se zaklenete na uporabo docker kontejnerjev in boste samo s temi.<\/p>\n<p><\/p>\n<p>Ste kdaj videli, da bi razvijalci programske opreme portirali svoje izdelke samo v docker sliki?<br \/>\nRezultat ve\u010dine izdelkov so binarne datoteke za dolo\u010deno platformo, ki se preprosto dodajo v docker sliko, ki izhaja iz \u017eelene platforme. Ste se kdaj vpra\u0161ali, zakaj je na dockerhubu toliko podobnih slik? Vtipkajte na primer nginx, videli boste 100500 slik razli\u010dnih ljudi. Ti ljudje niso razvili samega nginxa, preprosto so v svojo docker sliko dodali uradni nginx in obogatili ga s svojimi konfiguracijami za la\u017eji zagon kontejnerjev. <\/p>\n<p><\/p>\n<p>Na splo\u0161no jih lahko shranite preprosto v tgz, \u010de bo kdorkoli \u017eelel to zagnati v dockerju, naj v Dockerfile doda tgz, izhaja iz \u017eelenega okolja in ustvari dodatne komponente, ki ne spreminjajo samega aplikacije v tgz. Tisti, ki bo ustvarjal docker sliko, bo vedel, kaj je ta tgz in kaj potrebuje za delo. Tako jaz uporabljam docker. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kondaurovDev\/dockerfile\">tukaj<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Zaklju\u010dek: ne potrebujem docker registry, uporabil bom kak\u0161en S3 ali preprosto datote\u010dno shrambo, kot sta google drive\/dropbox.<\/p>\n<p><\/p>\n<h2>Docker v CI<\/h2>\n<p><\/p>\n<p>Vse podjetja, v katerih sem delal, so si podobna. Na splo\u0161no so produktna. Torej imajo eno aplikacijo, en tehnolo\u0161ki sklad (morda dva - tri programske jezike).<\/p>\n<p><\/p>\n<p>Te podjetja uporabljajo Docker na svojih stre\u017enikih, kjer se izvaja proces CI. Vpra\u0161anje je \u2014 zakaj bi bilo treba projekte zbirati v Docker kontejnerju na svojih stre\u017enikih? Zakaj enostavno ne pripraviti okolja za zbiranje, na primer napisati Ansible playbook, ki bo namestil potrebne razli\u010dice Node.js, PHP, JDK, kopiral SSH klju\u010de itd. na stre\u017enik, kjer bo potekala zbirka? <\/p>\n<p><\/p>\n<p>Zdaj razumem, da si streljam v koleno, ker Docker ne prina\u0161a nobene koristi s svojo izolacijo. Problemi s CI v Dockerju, s katerimi sem se sre\u010dal:<\/p>\n<p><\/p>\n<ul>\n<li>spet potrebujem Docker sliko za zbiranje. Treba je poiskati sliko ali napisati svoj Dockerfile.<\/li>\n<li>90 % je, da je treba nekako posredovati SSH klju\u010de, tajne podatke, ki jih no\u010dem zapisati v Docker sliko.<\/li>\n<li>Kontejner se ustvari in umre, vsi predpomnilniki se izgubijo z njim. Naslednja zbirka bo znova prena\u0161ala vse odvisnosti projekta, kar je dolgotrajno in neu\u010dinkovito, \u010das pa je denar.<\/li>\n<\/ul>\n<p><\/p>\n<p>Razvijalci ne zbirajo projektov v Docker kontejnerjih (kdaj sem bil sam tak obo\u017eevalec, res mi je \u017eal za preteklost xD). V Javi je mo\u017enost imeti ve\u010d razli\u010dic in jih z enojno ukazom spremeniti na tisto, ki jo potrebujemo zdaj. Enako je v Node.js, obstaja nvm.<\/p>\n<p><\/p>\n<h2>Izlaz<\/h2>\n<p><\/p>\n<p>Mislim da je docker vrlo mo\u0107an i fleksibilan alat, a u tome le\u017ei njegova mana (zvu\u010di \u010dudno, zar ne?). Pomo\u0107u njega se tvrtke lako 'ovisne' o njemu, koriste ga gdje treba i gdje ne treba. Programeri pokre\u0107u svoje kontejnere, svoje okru\u017eenje, a onda sve to polako prelazi u CI, produkciju. DevOps tim pi\u0161e neke 'bicikle' kako bi pokrenuli te kontejnere.<\/p>\n<p><\/p>\n<p>Uporabite Docker le na <strong>najbolj zadnji<\/strong> stopnji v va\u0161em delovnem procesu, ne vna\u0161ajte ga v projekt na za\u010detku. Ne bo re\u0161il va\u0161ih poslovnih te\u017eav. Le premaknil bo te\u017eave na DRUGO raven in ponujal svoje re\u0161itve, vi pa boste opravljali dvojno delo.<\/p>\n<p><\/p>\n<p><strong><em>Kdaj je Docker potreben<\/em><\/strong>: pri\u0161el sem do misli, da je Docker zelo dober pri optimizaciji postavljenega procesa, vendar ne pri gradnji osnovne funkcionalnosti.<\/p>\n<p><\/p>\n<p>\u010ce se vseeno odlo\u010dite uporabiti Docker, potem:<\/p>\n<p><\/p>\n<ul>\n<li>bodite izjemno previdni<\/li>\n<li>ne nalagajte uporabe Dockera razvijalcem<\/li>\n<li>lokalizirajte njegovo uporabo na enem mestu, ne razpr\u0161ite po vseh repozitorijih Dockerfile in docker-compose.<\/li>\n<\/ul>\n<p><\/p>\n<p>PS:<\/p>\n<p><\/p>\n<ul>\n<li>Pred kratkim sem naletel na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.packer.io\/\">packer<\/a><\/noindex> In\u0161trukcija in pravijo, da zelo dobro deluje z Ansible in omogo\u010da standardizacijo postopka ustvarjanja slik (vklju\u010dno z docker sliko)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.smashcompany.com\/technology\/docker-is-a-dangerous-gamble-which-we-will-regret\">Tudi o dockerju, zanimiv \u010dlanek<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Hvala, da ste prebrali, \u017eelim vam jasne re\u0161itve v va\u0161em delu in produktivne delovne dni!<\/p>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/445914\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, scala\/java \u0438 nodejs \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e (\u0443\u0436\u0435 \u0442\u043e\u0447\u043d\u043e \u043f\u0430\u0440\u0443 \u2014 \u0442\u0440\u043e\u0439\u043a\u0443 \u043b\u0435\u0442), \u044f \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0441\u044f \u043c\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e docker \u044d\u0442\u043e \u043c\u0430\u043d\u043d\u0430 \u043d\u0435\u0431\u0435\u0441\u043d\u0430\u044f \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 [&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-31641","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=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend.\" \/>\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\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\" \/>\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\udd47Docker \u2014 \u044d\u0442\u043e \u0438\u0433\u0440\u0443\u0448\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442? \u0418\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0434\u0430? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\" \/>\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-31T18:42:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:42:19+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\udd47Je Docker igra\u010dka ali ne? Ali pa vseeno ja? | ProHoster","description":"Pozdravljeni vsi! Zelo bi \u017eelel takoj za\u010deti s temo, a bo bolje, da najprej malo povem o svoji zgodbi: Uvod Sem programer s izku\u0161njami pri razvoju frontend.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","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\udd47Docker \u2014 \u044d\u0442\u043e \u0438\u0433\u0440\u0443\u0448\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442? \u0418\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0434\u0430? | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","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-31T18:42:19+00:00","article:modified_time":"2019-10-31T18:42:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31641","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-21 07:08:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:13:28","updated":"2026-01-21 07:08:22","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\/31641","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=31641"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/31641\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=31641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=31641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=31641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}