{"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\/hr\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","title":{"rendered":"Docker \u2014 je li to igra\u010dka ili nije? Ili ipak jest?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pozdrav svima!<\/p>\n<p><\/p>\n<p>Jako bih \u017eelio odmah po\u010deti s temom, ali ispravnije \u0107e biti da malo pri\u010dam o svojoj pri\u010di:<\/p>\n<p><\/p>\n<h2>Uvod<\/h2>\n<p><\/p>\n<p>Ja sam programer s iskustvom u razvoju frontend aplikacija, scala\/java i nodejs na serveru. <\/p>\n<p><\/p>\n<p>Dugo sam vjerovao (ve\u0107 sigurno par \u2014 tri godine) da je Docker dar s neba, jako dobar alat i da bi svaki programer trebao znati kako ga koristiti. Iz toga slijedi da bi svaki programer trebao imati Docker instaliran na svom lokalnom ra\u010dunalu. \u0160to se ti\u010de mog mi\u0161ljenja, pogledajte ponude poslova na istom hh. U svakoj drugoj spominje se Docker i ako ga posjedujete \u2014 to \u0107e vam biti konkurentska prednost \ud83d\ude09<\/p>\n<p><\/p>\n<p>Na svom putu susreo sam mnoge ljude s razli\u010ditim stavovima prema Dockera i njegovom ekosustavu. Neki su govorili da je to zgodna stvar koja jam\u010di unakrsnu platformsku kompatibilnost. Drugi nisu razumjeli za\u0161to bi trebali raditi unutar kontejnera i kakvu korist od toga, nekima je bilo svejedno i nisu se optere\u0107ivali (samo su pisali kod i odlazili ku\u0107i \u2014 usput, zavidim im \ud83d\ude42)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Razlozi za kori\u0161tenje<\/h2>\n<p><\/p>\n<p>Za\u0161to sam ja koristio Docker? Vjerojatno zbog sljede\u0107ih razloga:<\/p>\n<p><\/p>\n<ul>\n<li>pokretanje baze podataka, 99% aplikacija koristi njih<\/li>\n<li>pokretanje nginx-a za isporuku frontenda i proksiranje na backend<\/li>\n<li>mo\u017ee se pakirati aplikacija u Docker sliku, tako da \u0107e moja aplikacija raditi svugdje gdje postoji Docker, problem distribucije je odmah rije\u0161en<\/li>\n<li>otkrivanje servisa iz kutije, mogu\u0107e je napraviti mikroservise, svaki kontejner (spojen na zajedni\u010dku mre\u017eu) lako mo\u017ee do\u0107i do drugog po aliasu, jako zgodno<\/li>\n<li>Cool to create a container and 'play' in it.<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u0160to mi se uvijek NIKADA nije svidjelo u Dockeru:<\/h2>\n<p><\/p>\n<ul>\n<li>za da bi moja aplikacija radila, potreban je sam Docker na serveru. A za\u0161to mi to, ako moje aplikacije rade na jre ili nodejs i okru\u017eenje za njih ve\u0107 postoji na serveru?<\/li>\n<li>ako \u017eelim pokrenuti svoju (privatnu) lokalno sastavljenu sliku na udaljenom serveru, trebam vlastiti Docker repozitorij, treba da negdje bude registry i tako\u0111er treba postaviti https, budu\u0107i da Docker CLI radi samo preko https. Oh, brate\u2026 postoje opcije, naravno, pohraniti sliku lokalno koriste\u0107i <code>docker save<\/code> and just drop the image via scp... But it's so much hassle. Moreover, it looks like a 'hacky' solution until you have your own repository.<\/li>\n<li><code>docker-compose<\/code>On je potreban samo za pokretanje kontejnera. I to je sve. Vi\u0161e ni\u0161ta ne mo\u017ee. <code>Docker-compose<\/code> ima hrpu verzija svojih datoteka, svoju sintaksu. Bez obzira koliko deklarativan bio, ne \u017eelim \u010ditati njihovu dokumentaciju. Nije mi vi\u0161e nigdje potrebna.<\/li>\n<li>u timskom radu, ve\u0107ina ljudi naj\u010de\u0161\u0107e pi\u0161e Dockerfile vrlo lo\u0161e, ne razumiju kako se ke\u0161ira, dodaju u sliku sve \u0161to treba i ne treba, naslje\u0111uju slike koje ne postoje na dockerhubu ili privatnom repozitoriju, stvaraju neke <code>docker-compose<\/code> Files with databases don\u2019t persist at all. Meanwhile, developers proudly claim that Docker is great, everything works locally and it\u2019s important for HR to write in the vacancies: 'We use Docker and we need a candidate with this experience.'<\/li>\n<li>neprestano me proganjaju misli o podizanju svega i sva\u010dega u dockeru: postgresql, kafka, redis. \u0160teta \u0161to ne radi sve u kontejnerima, nije sve lako konfigurirati i pokrenuti. Podr\u017eavaju to strana razvijatelji, a ne sami dobavlja\u010di. I, usput, odmah se postavlja pitanje, dobavlja\u010di se ne brinu oko odr\u017eavanja svojih proizvoda u dockeru, za\u0161to, mo\u017eda oni ne\u0161to znaju?<\/li>\n<li>uvijek se postavlja pitanje o perzistenciji podataka kontejnera. I tada razmi\u0161lja\u0161, trebam li jednostavno montirati doma\u0107i direktorij ili stvoriti docker volume ili napraviti data container koji sad <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> \u0107e jednostavno stvoriti podatke u nekoj <code>\/usr\/*<\/code> and there will be the same story with uid and gid as in the first case. If you run a third-party component, you need to delve into the documentation and find the answer to the question: 'in which directories does the component write files in the container?'<\/li>\n<\/ul>\n<p>Oduvijek mi se nije svi\u0111alo \u0161to predugo mu\u010dim s dockerom <strong>u po\u010detnoj fazi<\/strong>: smi\u0161ljao sam kako pokretati kontejneri, iz kojih slika pokretati, pravio Makefile koji je sadr\u017eavao alias za duge docker naredbe. Nimalo nisam volio docker-compose, jer nisam htio u\u010diti jo\u0161 jedan alat ekosustava dockera. I <code>docker-compose up<\/code> to me nerviralo, pogotovo ako je tu jo\u0161 bilo <code>build<\/code> konstrukcija, a ne ve\u0107 izgra\u0111enih slika. Sve \u0161to sam stvarno \u017eelio \u2014 bilo je jednostavno raditi produktivno i brzo. Ali nikako nisam mogao ra\u0161aliti kori\u0161tenje dockera.<\/p>\n<p><\/p>\n<h2>Upoznavanje s Ansibleom<\/h2>\n<p><\/p>\n<p>Nedavno (prije tri mjeseca), radio sam s DevOps timom, gotovo svaki \u010dlan tima negativno se odnosio prema dockeru. Iz razloga:<\/p>\n<p><\/p>\n<ul>\n<li>Docker upravlja iptables (iako to 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, tada padaju i svi kontejneri s infrastrukturom<\/li>\n<li>U Dockeru nema potrebe<\/li>\n<li>Za\u0161to Docker kada postoje Ansible i virtualne ma\u0161ine<\/li>\n<\/ul>\n<p><\/p>\n<p>Na toj istoj radnoj mjestu upoznao sam jo\u0161 jedan alat \u2014 Ansible. Nekad sam \u010duo za njega, ali nisam poku\u0161avao pisati svoje playbookove. A sada sam po\u010deo pisati svoje zadatke i tu se moja percepcija potpuno promijenila! Jer sam shvatio: Ansible ima module za pokretanje istih Docker kontejnera, gradnju slika, mre\u017ee itd., pritom se kontejneri mogu pokrenuti ne samo lokalno, ve\u0107 i na udaljenim serverima! Mojoj odu\u0161evljenju nije bilo kraja \u2014 prona\u0161ao sam NORMALAN alat i odbacio sam svoje Makefile i docker-compose datoteke, koje su zamijenjene yaml zadacima. Kod je smanjen zahvaljuju\u0107i kori\u0161tenju konstrukcija poput <code>loop<\/code>, <code>when<\/code>, itd.<\/p>\n<p><\/p>\n<h2>Docker za pokretanje vanjskih komponenti poput baze podataka<\/h2>\n<p><\/p>\n<p>Recently I got acquainted with SSH tunnels. It turned out that it's very easy to 'forward' the remote server's port to a local port. The remote server can be either a machine in the cloud or a virtual machine running in VirtualBox. If I or my colleague need a database (or some other third-party component), we can just start the server with this component and shut it down when it\u2019s not needed. Port forwarding gives the same effect as a database running in a Docker container.<\/p>\n<p><\/p>\n<p>Ova komanda propu\u0161ta moj lokalni port na udaljeni server s PostgreSQL-om:<\/p>\n<p><\/p>\n<blockquote><p>ssh -L 9000:localhost:5432 user@example.com<\/p><\/blockquote>\n<p>Kori\u0161tenje udaljenog servera rje\u0161ava problem razvoja u timu. Taj server mogu koristiti vi\u0161e programera istovremeno, ne moraju znati kako postaviti PostgreSQL, razumjeti Docker i ostale kompleksnosti. Na udaljenom serveru mo\u017eete instalirati istu bazu podataka u Dockeru, \u010dak i ako je instalacija specifi\u010dne verzije te\u0161ka. Sve \u0161to programerima treba 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, postaviti infrastrukturu i omogu\u0107iti je programerima. To je toliko super!<\/p>\n<p><\/p>\n<p>Sre\u0107om, AWS, GoogleCloud i drugi nude godi\u0161nje besplatno kori\u0161\u0107enje, zato ih iskoristite! Ekstremno su jeftini ako ih isklju\u010dite kada se ne koriste. Uvek sam se pitao u kojim bih okolnostima mogao da koristim udaljeni server kao gcloud, \u010dini se da sam prona\u0161ao odgovor.<\/p>\n<p><\/p>\n<p>Kao virtualnu ma\u0161inu na lokalnom okru\u017eenju mo\u017eete koristiti isti Alpine koji se aktivno koristi u docker kontejnerima. Ili neke druge lak\u0161e distribucije kako bi br\u017ee pokrenuli ma\u0161inu.<\/p>\n<p><\/p>\n<p>Zaklju\u010dak: pokretanje baza podataka i drugih infrastrukturnih dodataka mogu\u0107e je i potrebno na udaljenim serverima ili u virtualbox-u. Ne treba mi docker za te svrhe.<\/p>\n<p><\/p>\n<h2>Malo o docker slikama i distribuciji<\/h2>\n<p><\/p>\n<p>Ve\u0107 sam pisao <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/443136\/\">\u010dlanak<\/a><\/noindex> u kojem sam hteo da prenesem da kori\u0161\u0107enje docker slika ne pru\u017ea nikakvu garanciju. Docker slike su potrebne samo za kreiranje docker kontejnera. Ako se oslanjate na docker sliku, to zna\u010di da se oslanjate na kori\u0161\u0107enje docker kontejnera i samo \u0107ete raditi s njima.<\/p>\n<p><\/p>\n<p>Da li ste ikada videli da programeri softvera portuju svoje proizvode isklju\u010divo u docker slikama?<br \/>\nRezultat ve\u0107ine proizvoda su binarni fajlovi za odre\u0111enu platformu, koji se jednostavno dodaju u docker sliku koja nasle\u0111uje potrebnu platformu. Da li ste se ikada zapitali za\u0161to ima toliko sli\u010dnih slika na dockerhub-u? Ukucajte, na primer, nginx, vide\u0107ete 100500 slika od razli\u010ditih ljudi. Ti ljudi nisu razvijali sam nginx, oni su jednostavno dodali zvani\u010dni nginx u svoju docker sliku i obogatili je svojim konfiguracijama radi lak\u0161eg pokretanja kontejnera. <\/p>\n<p><\/p>\n<p>U su\u0161tini, mo\u017ee se jednostavno \u010duvati u tgz, ako nekome zatreba pokretanje u dockeru, neka dodaju tgz u Dockerfile, nasle\u0111uju iz potrebnog okru\u017eenja i kreiraju dodatne funkcionalnosti koje ne menjaju samo aplikaciju u tgz. Onaj ko bude kreirao docker sliku zna\u0107e \u0161ta je to tgz i \u0161ta mu je potrebno za rad. Tako ja koristim docker. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kondaurovDev\/dockerfile\">ovdje<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Zaklju\u010dak: ne treba mi docker registry, iskoristi\u0107u neko S3 ili jednostavno skladi\u0161te datoteka poput google drive-a\/dropbox-a.<\/p>\n<p><\/p>\n<h2>Docker u CI<\/h2>\n<p><\/p>\n<p>Sve kompanije u kojima sam radio sli\u010dne su jedna drugoj. Obi\u010dno su to kompanije orijentisane na proizvod. To jest, imaju neku aplikaciju, jedan tehnolo\u0161ki stog (mo\u017eda dva - tri programska jezika).<\/p>\n<p><\/p>\n<p>Te tvrtke koriste Docker na svojim poslu\u017eiteljima gdje se pokre\u0107e CI proces. Pitam se \u2014 za\u0161to je potrebno graditi projekte unutar Docker kontejnera na vlastitim poslu\u017eiteljima? Za\u0161to jednostavno ne pripremiti okru\u017eenje za gradnju, na primjer, napisati Ansible playbook koji \u0107e instalirati potrebne verzije nodejs, php, jdk, kopirati ssh klju\u010deve i sli\u010dno na poslu\u017eitelj gdje \u0107e se odvijati gradnja? <\/p>\n<p><\/p>\n<p>Sada shva\u0107am da si pucam u nogu, jer Docker ne donosi nikakvu korist sa svojom izolacijom. Problemi s CI u Dockeru s kojima sam se susreo:<\/p>\n<p><\/p>\n<ul>\n<li>opet je potreban Docker image za gradnju. Treba tra\u017eiti image ili napisati svoj Dockerfile.<\/li>\n<li>90% slu\u010dajeva treba proslijediti neke ssh klju\u010deve, tajne podatke koje ne \u017eelim pisati u Docker image.<\/li>\n<li>kontejner se stvara i umire, svi cache-ovi se gube s njim. Sljede\u0107a gradnja \u0107e ponovno preuzeti sve ovisnosti projekta, a to je sporo i neu\u010dinkovito, a vrijeme \u2014 novac.<\/li>\n<\/ul>\n<p><\/p>\n<p>Programeri ne grade projekte unutar Docker kontejnera (nekada sam bio veliki obo\u017eavatelj, \u017eao mi je svog pro\u0161log ja xD). U Javi postoji mogu\u0107nost imati vi\u0161e verzija i promijeniti ih jednim naredbom na onu koja je potrebna sada. U Node.js je isto, postoji nvm.<\/p>\n<p><\/p>\n<h2>Izvje\u0161taj<\/h2>\n<p><\/p>\n<p>I believe that Docker is a very powerful and flexible tool, and that\u2019s its downside (sounds strange, right?). Companies easily 'get hooked' on it, using it where it's needed and where it\u2019s not. Developers run their containers, some environment of their own, and then it all smoothly transitions into CI, production. The DevOps team writes some custom solutions to run these containers.<\/p>\n<p><\/p>\n<p>Koristite Docker samo na <strong>najnovijem<\/strong> stupnju u va\u0161em radnom procesu, ne uvla\u010dite ga u projekt na po\u010detku. On ne\u0107e rije\u0161iti va\u0161e poslovne probleme. Samo \u0107e ih premjestiti na DRUGU razinu i nuditi svoja rje\u0161enja, a vi \u0107ete raditi dvostruki posao.<\/p>\n<p><\/p>\n<p><strong><em>Kada je Docker potreban<\/em><\/strong>: do\u0161ao sam do zaklju\u010dka da je Docker vrlo dobar u optimizaciji postavljenog procesa, ali ne u izgradnji osnovne funkcionalnosti.<\/p>\n<p><\/p>\n<p>Ako ste ipak odlu\u010dili koristiti Docker, tada:<\/p>\n<p><\/p>\n<ul>\n<li>budite izuzetno oprezni<\/li>\n<li>ne name\u0107ite kori\u0161tenje Dockera programerima<\/li>\n<li>lokalizirajte njegovo kori\u0161tenje na jednom mjestu, ne \u0161irite ga po svim repozitorijima Dockerfile i docker-compose<\/li>\n<\/ul>\n<p><\/p>\n<p>PS:<\/p>\n<p><\/p>\n<ul>\n<li>Nedavno sam nai\u0161ao na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.packer.io\/\">packer<\/a><\/noindex> i ka\u017eu da jako dobro radi s Ansibleom i omogu\u0107ava unificiranje procesa izrade slika (uklju\u010duju\u0107i docker image)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.smashcompany.com\/technology\/docker-is-a-dangerous-gamble-which-we-will-regret\">tako\u0111er o dockera, zanimljiv \u010dlanak<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Hvala \u0161to ste pro\u010ditali, \u017eelim vam transparentna rje\u0161enja u va\u0161im poslovima i produktivne radne dane!<\/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\/hr\/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=\"hr_HR\" \/>\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\/hr\/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\udd47Docker \u2014 igra\u010dka ili nije? Ili ipak da? | ProHoster","description":"Pozdrav svima! Uistinu bih \u017eelio odmah pre\u0107i na temu, ali ispravnije bi bilo malo ispri\u010dati svoju pri\u010du: Uvod. Ja sam programer s iskustvom u razvoju frontenda.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/31641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=31641"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/31641\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=31641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=31641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=31641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}