{"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\/sq\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","title":{"rendered":"A \u00ebsht\u00eb Docker nj\u00eb loj\u00eb apo jo? Apo ndoshta po?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve!<\/p>\n<p><\/p>\n<p>T\u00eb jesh e sinqert\u00eb, kam shum\u00eb d\u00ebshir\u00eb t\u00eb filloj menj\u00ebher\u00eb me tem\u00ebn, por m\u00eb mir\u00eb do t\u00eb ishte t\u00eb flas pak rreth historis\u00eb sime:<\/p>\n<p><\/p>\n<h2>Hyrje<\/h2>\n<p><\/p>\n<p>Jam programues me p\u00ebrvoj\u00eb n\u00eb zhvillimin e aplikacioneve frontend dhe server\u00ebve me scala\/java dhe nodejs. <\/p>\n<p><\/p>\n<p>P\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb (sigurisht disa \u2014 tre vjet), kam konsideruar se docker \u00ebsht\u00eb nj\u00eb dhurat\u00eb nga qielli dhe v\u00ebrtet nj\u00eb mjet shum\u00eb i mir\u00eb q\u00eb \u00e7do zhvillues duhet ta dij\u00eb si ta p\u00ebrdor\u00eb. Nga kjo del se \u00e7do zhvillues duhet t\u00eb ket\u00eb docker n\u00eb makin\u00ebn e tij lokale. \u00c7far\u00eb mund t\u00eb them p\u00ebr mendimin tim, thjesht p\u00ebrshkoni ofertat q\u00eb shfaqen n\u00eb sajtin e pun\u00ebs hh. N\u00eb \u00e7do t\u00eb dyta ka nj\u00eb p\u00ebrmendje p\u00ebr docker dhe n\u00ebse e zot\u00ebroni at\u00eb \u2014 do t\u00eb jet\u00eb nj\u00eb p\u00ebrpar\u00ebsi konkurruese p\u00ebr ju \ud83d\ude09<\/p>\n<p><\/p>\n<p>N\u00eb rrug\u00ebn time kam takuar shum\u00eb njer\u00ebz, me q\u00ebndrime t\u00eb ndryshme ndaj docker-it dhe ekosistem\u00ebs s\u00eb tij. Disa thonin se \u00ebsht\u00eb nj\u00eb gj\u00eb e dobishme q\u00eb garanton nd\u00ebr-platformin\u00eb. T\u00eb tjer\u00eb s\u2019kuptonin p\u00ebrse duhet t\u00eb nisin n\u00eb kontejner\u00eb dhe cila \u00ebsht\u00eb p\u00ebrfitimi nga kjo, t\u00eb tret\u00ebt gati s'ua ndjente dhe ata s'kishin asnj\u00eb shqet\u00ebsim (thjesht shkruanin kodin dhe iknin n\u00eb sht\u00ebpi \u2014 madje, u haja zili atyre \ud83d\ude42)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Arsyet p\u00ebr p\u00ebrdorim<\/h2>\n<p><\/p>\n<p>Pse e p\u00ebrdora docker? Ndoshta p\u00ebr k\u00ebto arsyet:<\/p>\n<p><\/p>\n<ul>\n<li>startup i baz\u00ebs s\u00eb t\u00eb dh\u00ebnave, 99% e aplikacioneve i p\u00ebrdorin ato<\/li>\n<li>startimi i nginx p\u00ebr shp\u00ebrndarjen e frontend-it dhe proksimin n\u00eb backend<\/li>\n<li>mund t\u00eb paketoj aplikacionin n\u00eb nj\u00eb imazh docker, k\u00ebshtu q\u00eb aplikacioni im do t\u00eb funksionoj\u00eb kudo q\u00eb ka docker, problemi i shp\u00ebrndarjes \u00ebsht\u00eb zgjidhur menj\u00ebher\u00eb<\/li>\n<li>zb\u53d1\u73b0\u670d\u52a1, mund t\u00eb krijoni mikrosh\u00ebrbime, \u00e7do kontejner (i lidhur me nj\u00eb rrjet t\u00eb p\u00ebrgjithsh\u00ebm) leht\u00eb mund t\u00eb arrij\u00eb te tjetri me alias, shum\u00eb e p\u00ebrshtatshme<\/li>\n<li>\u043f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0438 &#171;\u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f&#187; \u0432 \u043d\u0435\u043c.<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u00c7far\u00eb nuk m\u00eb ka p\u00eblqyer ndonj\u00ebher\u00eb n\u00eb docker:<\/h2>\n<p><\/p>\n<ul>\n<li>p\u00ebr t\u00eb siguruar q\u00eb aplikacioni im t\u00eb funksionoj\u00eb, nevojitet docker-i n\u00eb server. P\u00ebrse m\u00eb duhet kjo, n\u00ebse aplikacionet e mia punojn\u00eb n\u00eb jre ose nodejs dhe mjedisi p\u00ebr to tashm\u00eb \u00ebsht\u00eb n\u00eb server?<\/li>\n<li>n\u00ebse dua t\u00eb nis imazhin tim (privat) t\u00eb nd\u00ebrtuar lokal n\u00eb nj\u00eb server t\u00eb larg\u00ebt, at\u00ebher\u00eb kam nevoj\u00eb p\u00ebr nj\u00eb depo t\u00eb vet\u00ebn docker, duhet q\u00eb diku t\u00eb funksionoj\u00eb registry dhe gjithashtu duhet t\u00eb konfiguroj https, sepse docker cli punon vet\u00ebm p\u00ebrmes https. Oh, ndonj\u00ebher\u00eb\u2026 sigurisht, ka mund\u00ebsi p\u00ebr ta ruajtur imazhin lokal p\u00ebrmes <code>docker save<\/code> \u0438 \u0447\u0435\u0440\u0435\u0437 scp \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0438\u043d\u0443\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u2026 \u041d\u043e \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043b\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439. \u0418 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 &#171;\u043a\u043e\u0441\u0442\u044b\u043b\u044c\u043d\u044b\u043c&#187; \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439<\/li>\n<li><code>docker-compose<\/code>. Ai nevojitet vet\u00ebm p\u00ebr t\u00eb ngritur kontejner\u00ebt. Dhe mjaft. Nuk mund t\u00eb b\u00ebj\u00eb asgj\u00eb tjet\u00ebr. <code>Docker-compose<\/code> ka shum\u00eb versione t\u00eb skedave t\u00eb tij, me sintaks\u00ebn e tij. Sa deklarativ t\u00eb jet\u00eb, nuk dua t\u00eb lexoj dokumentacionin e tyre. Nuk m\u00eb nevojitet askund tjet\u00ebr.<\/li>\n<li>kur punon n\u00eb ekip, n\u00eb shumic\u00ebn e rasteve, njer\u00ebzit shkruajn\u00eb Dockerfile shum\u00eb keq, nuk e kuptojn\u00eb si kjo ruhet n\u00eb cache, shtojn\u00eb n\u00eb imazh gjith\u00e7ka q\u00eb nevojitet dhe q\u00eb nuk nevojitet, trash\u00ebgojn\u00eb nga imazhe q\u00eb nuk ekzistojn\u00eb n\u00eb dockerhub ose n\u00eb nj\u00eb depo private, krijojn\u00eb disa <code>docker-compose<\/code> \u0444\u0430\u0439\u043b\u044b \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0438\u0440\u0443\u044e\u0442. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0433\u043e\u0440\u0434\u043e \u0437\u0430\u044f\u0432\u043b\u044f\u044e\u0442, \u0447\u0442\u043e docker \u043a\u0440\u0443\u0442, \u0443 \u043d\u0438\u0445 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0438 HR \u0432\u0430\u0436\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u0432 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438: &#171;\u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c docker \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u0441 \u0442\u0430\u043a\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b&#187;<\/li>\n<li>ngacmojn\u00eb vazhdimisht mendimet p\u00ebr ngritjen n\u00eb docker t\u00eb gjith\u00e7kaje: postgresql, kafka, redis. P\u00ebr fat t\u00eb keq, nuk funksionon gjith\u00e7ka n\u00eb kontejner\u00eb, nuk \u00ebsht\u00eb e leht\u00eb t\u00eb konfigurohet dhe t\u00eb startohet. Kjo mb\u00ebshtetet nga zhvillues t\u00eb jasht\u00ebm, jo nga vet\u00eb ofruesit. Dhe, p\u00ebr t\u00eb th\u00ebn\u00eb t\u00eb drejt\u00ebn, lind menj\u00ebher\u00eb pyetja, pse ofruesit nuk p\u00ebndohen p\u00ebr mb\u00ebshtetje t\u00eb produkteve t\u00eb tyre n\u00eb docker, ndoshta ata din\u00eb di\u00e7ka?<\/li>\n<li>gjithmon\u00eb lind pyetja rreth q\u00ebndrueshm\u00ebris\u00eb s\u00eb t\u00eb dh\u00ebnave t\u00eb kontejnerit. dhe k\u00ebtu mendon, a duhet thjesht t\u00eb montoj nj\u00eb direktori hosti ose t\u00eb krijoj nj\u00eb docker volume ose t\u00eb b\u00ebj nj\u00eb data container q\u00eb tani <code>joveprues<\/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> at\u00ebher\u00eb t\u00eb dh\u00ebnat thjesht do t\u00eb krijohen n\u00eb ndonj\u00eb <code>\/usr\/*<\/code> \u0438 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441 uid \u0438 gid \u043a\u0430\u043a \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0448\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441: &#171;\u0430 \u0432 \u043a\u0430\u043a\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u0438\u0448\u0435\u0442 \u0444\u0430\u0439\u043b\u044b?&#187;<\/li>\n<\/ul>\n<p>M\u00eb ka shqet\u00ebsuar gjithmon\u00eb se duhet t\u00eb merrem shum\u00eb gjat\u00eb me docker-in <strong>n\u00eb faz\u00ebn fillestare<\/strong>: po mendonim si t\u00eb drejtonim kontejner\u00ebt, nga cilat imazhe t\u00eb niseshim, b\u00ebja Makefile q\u00eb p\u00ebrmbanin alias p\u00ebr komandat e gjata docker. N\u00ebn e urreja docker-compose, sepse nuk doja t\u00eb m\u00ebsoja nj\u00eb mjet tjet\u00ebr t\u00eb ekosistemit docker. Dhe <code>docker-compose up<\/code> m\u00eb shqet\u00ebsonte, sidomos, n\u00ebse aty kishim <code>nd\u00ebrto<\/code> konstruksione, e jo imazhe t\u00eb nd\u00ebrtuara tashm\u00eb. E gjith\u00eb ajo q\u00eb d\u00ebshiroja v\u00ebrtet \u2014 ishte thjesht t\u00eb b\u00ebja produktin n\u00eb m\u00ebnyr\u00eb efektive dhe t\u00eb shpejt\u00eb. Por nuk mund t\u00eb rregulloja dot p\u00ebrdorimin e docker-it.<\/p>\n<p><\/p>\n<h2>Njoftim me Ansible<\/h2>\n<p><\/p>\n<p>Para disa muajve, kam punuar me ekipin e DevOps, ku shumica e an\u00ebtar\u00ebve kishin nj\u00eb q\u00ebndrim negativ ndaj docker-it. Arsyet ishin:<\/p>\n<p><\/p>\n<ul>\n<li>docker menaxhon iptables (edhe pse mund t\u00eb fiket n\u00eb daemon.json)<\/li>\n<li>docker \u00ebsht\u00eb i ngadalsh\u00ebm dhe nuk do ta p\u00ebrdorim n\u00eb prodhim<\/li>\n<li>n\u00ebse docker daemon bie, at\u00ebher\u00eb bien t\u00eb gjith\u00eb kontejner\u00ebt me infrastruktur\u00ebn<\/li>\n<li>nuk ka nevoj\u00eb p\u00ebr docker<\/li>\n<li>p\u00ebrse docker, n\u00ebse kemi Ansible dhe makinat virtuale<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb t\u00eb nj\u00ebjtin vend pune, u njoh me nj\u00eb mjet tjet\u00ebr \u2014 Ansible. Dikur kam d\u00ebgjuar p\u00ebr t\u00eb, por nuk kisha provuar t\u00eb shkruaja playbook-e t\u00eb mia. Tani kam filluar t\u00eb shkruaj detyrat e mia dhe k\u00ebtu vizioni im u ndryshua p\u00ebrfundimisht! Sepse kuptova: Ansible ka module p\u00ebr ekzekutimin e t\u00eb nj\u00ebjtave kontejner\u00eb docker, nd\u00ebrtimin e imazheve, rrjeteve etj., dhe gjithashtu kontejner\u00ebt mund t\u00eb ekzekutohen jo vet\u00ebm lokal, por edhe n\u00eb server\u00eb t\u00eb larg\u00ebt! G\u00ebzimi im ishte i pafund \u2014 un\u00eb gjeta nj\u00eb mjet T\u00cb MIR\u00cb dhe hodha p\u00ebrjashta skedat e mia Makefile dhe docker-compose, ato u z\u00ebvend\u00ebsuan me detyra yaml. Kodi u zvog\u00eblua p\u00ebr shkak t\u00eb p\u00ebrdorimit t\u00eb strukturave si <code>loop<\/code>, <code>when<\/code>, etj.<\/p>\n<p><\/p>\n<h2>Docker p\u00ebr ekzekutimin e komponenteve t\u00eb jashtme si baza e t\u00eb dh\u00ebnave<\/h2>\n<p><\/p>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 ssh \u0442\u0443\u043d\u0435\u043b\u044f\u043c\u0438. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e &#171;\u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u0442\u044c&#187; \u043f\u043e\u0440\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442. \u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435, \u0442\u0430\u043a \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0439 \u0432 VirtualBox. \u0415\u0441\u043b\u0438 \u043c\u043d\u0435 \u0438\u043b\u0438 \u043c\u043e\u0435\u043c\u0443 \u043a\u043e\u043b\u043b\u0435\u0433\u0435 \u043d\u0443\u0436\u043d\u0430 \u0431\u0434 (\u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u0439 \u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442), \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u044d\u0442\u0438\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c \u0438 \u0437\u0430\u0433\u0430\u0441\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u041f\u0440\u043e\u0431\u0440\u043e\u0441 \u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u044d\u0444\u0444\u0435\u043a\u0442, \u043a\u0430\u043a \u0438 \u0431\u0434, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u0430\u044f \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435.<\/p>\n<p><\/p>\n<p>Kjo komand\u00eb kalon portin tim lokal n\u00eb serverin e larg\u00ebt me postgresql:<\/p>\n<p><\/p>\n<blockquote><p>ssh -L 9000:localhost:5432 user@example.com<\/p><\/blockquote>\n<p>P\u00ebrdorimi i nj\u00eb serveri t\u00eb larg\u00ebt zgjidh problemin e zhvillimit n\u00eb ekip. Ky server mund t\u00eb p\u00ebrdoret nga disa zhvillues nj\u00ebkoh\u00ebsisht, ata nuk kan\u00eb nevoj\u00eb t\u00eb din\u00eb m\u00ebnyr\u00ebn se si t\u00eb konfigurojn\u00eb postgresql, nuk duhet t\u00eb merren me docker dhe sfida t\u00eb tjera. N\u00eb serverin e larg\u00ebt, mund t\u00eb instaloni t\u00eb nj\u00ebjt\u00ebn baz\u00eb t\u00eb dh\u00ebnash n\u00eb docker, n\u00ebse t\u00eb vendosni versionin specifik \u00ebsht\u00eb e nd\u00ebrlikuar. E gjitha q\u00eb do t\u00eb nevojitet p\u00ebr zhvilluesit \u00ebsht\u00eb t\u00eb sigurohen p\u00ebr akses ssh!<\/p>\n<p><\/p>\n<p>S\u00eb fundi, lexova se tunelat SSH jan\u00eb nj\u00eb funksionalitet i kufizuar i nj\u00eb VPN t\u00eb zakonshme! Thjesht mund t\u00eb konfiguroni OpenVPN ose implementime t\u00eb tjera t\u00eb VPN, t\u00eb vendosni infrastruktur\u00ebn dhe t'ia jepni zhvilluesve. A nuk \u00ebsht\u00eb kaq e mrekullueshme?<\/p>\n<p><\/p>\n<p>Fatmir\u00ebsisht, AWS, GoogleCloud dhe t\u00eb tjer\u00eb ofrojn\u00eb nj\u00eb vit p\u00ebrdorimi falas, k\u00ebshtu q\u00eb p\u00ebrfitoni prej tyre! Jan\u00eb t\u00eb lir\u00eb, n\u00ebse i fikni kur nuk p\u00ebrdoren. Gjithmon\u00eb m\u00eb ka sh\u00ebrbyer mendimi se p\u00ebr \u00e7far\u00eb do t\u00eb m\u00eb nevojitet nj\u00eb server i larg\u00ebt si gcloud, duket se e kam gjetur.<\/p>\n<p><\/p>\n<p>Si nj\u00eb makin\u00eb virtuale n\u00eb lokal, mund t\u00eb p\u00ebrdorni po at\u00eb Alpine q\u00eb p\u00ebrdoret aktivisht n\u00eb kontejner\u00ebt docker. Ose ndonj\u00eb shp\u00ebrndarje tjet\u00ebr t\u00eb leht\u00eb p\u00ebr t\u00eb ngarkuar m\u00eb shpejt makin\u00ebn.<\/p>\n<p><\/p>\n<p>P\u00ebrfundimi: \u00ebsht\u00eb e nevojshme dhe e dobishme t\u00eb filloni DB-n\u00eb dhe funksionalitete t\u00eb tjera infrastrukturore n\u00eb servera t\u00eb larg\u00ebt ose n\u00eb VirtualBox. Nuk kam nevoj\u00eb p\u00ebr docker p\u00ebr k\u00ebto q\u00ebllime.<\/p>\n<p><\/p>\n<h2>Pak p\u00ebr imazhet docker dhe shp\u00ebrndarjen<\/h2>\n<p><\/p>\n<p>Un\u00eb tashm\u00eb kam shkruar <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/443136\/\">artikullin<\/a><\/noindex> n\u00eb t\u00eb cil\u00ebn doja t\u00eb theksoja se p\u00ebrdorimi i imazheve t\u00eb docker nuk ofron asnj\u00eb garanci. Imazhet docker nevojiten vet\u00ebm p\u00ebr t\u00eb krijuar kontejner\u00eb docker. N\u00ebse ju \u00ebsht\u00eb dashur t\u00eb arrini n\u00eb imazhin docker, do t\u00eb thot\u00eb se jeni duke punuar me kontejner\u00ebt docker dhe do t\u00eb jeni vet\u00ebm me ata.<\/p>\n<p><\/p>\n<p>A keni par\u00eb ndonj\u00ebher\u00eb q\u00eb zhvilluesit e softuerit t\u00eb portojn\u00eb produktet e tyre vet\u00ebm n\u00eb imazhe docker?<br \/>\nRezultati i shumic\u00ebs s\u00eb produkteve jan\u00eb skedar\u00eb binar\u00eb p\u00ebr nj\u00eb platform\u00eb t\u00eb caktuar, pik\u00ebrisht ata thjesht shtohen n\u00eb imazhin docker i cili trash\u00ebgon nga platforma e nevojshme. A e keni menduar ndonj\u00ebher\u00eb pse n\u00eb dockerhub ka kaq shum\u00eb imazhe t\u00eb ngjashme? Shkruani p\u00ebr shembull nginx, do t\u00eb shihni 100500 imazhe nga njer\u00ebz t\u00eb ndrysh\u00ebm. K\u00ebta njer\u00ebz nuk e kan\u00eb zhvilluar vet\u00eb nginx, ata thjesht e kan\u00eb shtuar nginx-in zyrtar n\u00eb imazhin e tyre docker dhe e kan\u00eb zbukuruar me konfigurimet e tyre p\u00ebr leht\u00ebsin\u00eb e ekzekutimit t\u00eb kontejner\u00ebve. <\/p>\n<p><\/p>\n<p>N\u00eb thelb, mund t\u00eb ruani thjesht n\u00eb tgz. N\u00ebse dikush ka nevoj\u00eb ta aktivizoj\u00eb k\u00ebt\u00eb n\u00eb docker, le t\u00eb shtojn\u00eb tgz n\u00eb Dockerfile, t\u00eb trash\u00ebgojn\u00eb nga mjedisi p\u00ebrkat\u00ebs dhe t\u00eb krijojn\u00eb mund\u00ebsi shtes\u00eb q\u00eb nuk ndryshojn\u00eb aplikacionin n\u00eb tgz. Ajo q\u00eb do t\u00eb krijoj\u00eb imazhin docker do t\u00eb dij\u00eb se \u00e7far\u00eb \u00ebsht\u00eb ky tgz dhe \u00e7far\u00eb i nevojitet p\u00ebr funksionim. K\u00ebshtu e p\u00ebrdor un\u00eb docker. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kondaurovDev\/dockerfile\">k\u00ebtu<\/a><\/noindex><\/p>\n<p><\/p>\n<p>P\u00ebrfundimi: nuk m\u00eb nevojitet nj\u00eb regjistrik docker, do t\u00eb p\u00ebrdor ndonj\u00eb S3 ose thjesht nj\u00eb ruajtje skedesh si google drive\/dropbox.<\/p>\n<p><\/p>\n<h2>Docker n\u00eb CI<\/h2>\n<p><\/p>\n<p>T\u00eb gjitha kompanit\u00eb ku kam punuar jan\u00eb t\u00eb ngjashme me nj\u00ebra-tjetr\u00ebn. Ato zakonisht jan\u00eb produktive. Dometh\u00ebn\u00eb, ato kan\u00eb nj\u00eb aplikacion t\u00eb vet\u00ebm, nj\u00eb stek teknologjik (ndoshta dy-tri gjuh\u00eb programimi).<\/p>\n<p><\/p>\n<p>K\u00ebto kompani p\u00ebrdorin docker n\u00eb server\u00ebt e tyre ku aktivizohet procesi CI. Pyetja \u00ebsht\u00eb: p\u00ebrse \u00ebsht\u00eb e nevojshme t\u00eb nd\u00ebrtohen projektet n\u00eb nj\u00eb container docker n\u00eb server\u00ebt e tyre? Pse thjesht t\u00eb mos p\u00ebrgatitet mjedisi p\u00ebr nd\u00ebrtim, p\u00ebr shembull t\u00eb shkruhet nj\u00eb playbook Ansible q\u00eb do t\u00eb instalohet versionet e nevojshme t\u00eb nodejs, php, jdk, t\u00eb kopjoj\u00eb \u00e7el\u00ebsa ssh, etj. n\u00eb serverin ku do t\u00eb ndodh\u00eb nd\u00ebrtimi? <\/p>\n<p><\/p>\n<p>Tani tani m\u00eb kuptoj se \u00ebsht\u00eb si t\u00eb q\u00ebllosh n\u00eb k\u00ebmb\u00eb vet\u00eb, sepse docker nuk sjell asnj\u00eb p\u00ebrfitim me izolimin e tij. Problemet me CI n\u00eb docker me t\u00eb cilat kam hasur:<\/p>\n<p><\/p>\n<ul>\n<li>s\u00ebrish \u00ebsht\u00eb e nevojshme nj\u00eb imazh docker p\u00ebr nd\u00ebrtimin. Duhet t\u00eb k\u00ebrkohet imazhi apo t\u00eb shkruhet dockerfile i imi.<\/li>\n<li>90% se duhet t\u00eb kaloj disa \u00e7el\u00ebsa ssh, t\u00eb dh\u00ebna sekrete q\u00eb nuk d\u00ebshiroj t'i shkruaj n\u00eb imazhin docker.<\/li>\n<li>kontejneri krijohet dhe vdes, humbasin t\u00eb gjitha cache-t s\u00eb bashku me t\u00eb. Nd\u00ebrtime t\u00eb tjera do t\u00eb duan t\u00eb shkarkojn\u00eb t\u00eb gjitha var\u00ebsit\u00eb e projektit, dhe kjo \u00ebsht\u00eb e gjat\u00eb dhe jo e efektshme, sepse koha \u00ebsht\u00eb para.<\/li>\n<\/ul>\n<p><\/p>\n<p>Zhvilluesit nuk ndajn\u00eb projekte n\u00eb konteiner\u00eb docker (disa koh\u00eb m\u00eb par\u00eb isha nj\u00eb fans i till\u00eb, e pik\u00eblloj veten n\u00eb t\u00eb kaluar\u00ebn xD). N\u00eb java ka mund\u00ebsin\u00eb p\u00ebr t\u00eb pasur disa versione dhe p\u00ebr t\u00eb kaluar me nj\u00eb komand\u00eb n\u00eb at\u00eb q\u00eb nevojitet tani. N\u00eb nodejs \u00ebsht\u00eb po ashtu, ekziston nvm.<\/p>\n<p><\/p>\n<h2>P\u00ebrfundim<\/h2>\n<p><\/p>\n<p>\u042f \u0441\u0447\u0438\u0442\u0430\u044e \u0447\u0442\u043e docker \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u0449\u043d\u044b\u0439 \u0438 \u0433\u0438\u0431\u043a\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0432 \u044d\u0442\u043e\u043c \u0435\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a (\u0437\u0432\u0443\u0447\u0438\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0434\u0430). \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043b\u0435\u0433\u043a\u043e &#171;\u043f\u043e\u0434\u0441\u0430\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f&#187; \u043d\u0430 \u043d\u0435\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0441\u0432\u043e\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u043a\u0430\u043a\u043e\u0435 \u0442\u043e \u0441\u0432\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u043b\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0442\u0435\u043a\u0430\u0435\u0442 \u0432 CI, \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d. DevOps \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0438\u0448\u0435\u0442 \u043a\u0430\u043a\u0438\u0435 \u0442\u043e \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u044b \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b.<\/p>\n<p><\/p>\n<p>P\u00ebrdorni docker vet\u00ebm n\u00eb <strong>faz\u00ebn m\u00eb t\u00eb fundit<\/strong> t\u00eb procesit tuaj t\u00eb pun\u00ebs, mos e futur n\u00eb projekt n\u00eb fillim. Ai nuk do t\u00eb zgjidh\u00eb problemet tuaja t\u00eb biznesit. Ai vet\u00ebm do t\u00eb zhvendos\u00eb problemet n\u00eb NJ\u00cb NIVEL T\u00cb DYT\u00cb dhe do t\u00eb ofroj\u00eb opsione t\u00eb tjera p\u00ebr zgjidhje, do t\u00eb b\u00ebni pun\u00eb dyfish.<\/p>\n<p><\/p>\n<p><strong><em>Kur docker \u00ebsht\u00eb i nevojsh\u00ebm<\/em><\/strong>: arrita n\u00eb p\u00ebrfundimin se docker \u00ebsht\u00eb shum\u00eb i mir\u00eb n\u00eb optimizimin e procesit n\u00eb vend, por jo n\u00eb nd\u00ebrtimin e funksionalitetit baz\u00eb.<\/p>\n<p><\/p>\n<p>N\u00ebse vendos\u00ebt t\u00eb p\u00ebrdorni docker, at\u00ebher\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>jeni jasht\u00ebzakonisht t\u00eb kujdessh\u00ebm<\/li>\n<li>mos e impononi p\u00ebrdorimin e dockerit mbi zhvilluesit<\/li>\n<li>lokalizoni p\u00ebrdorimin e tij n\u00eb nj\u00eb vend, mos e shp\u00ebrndani n\u00eb t\u00eb gjitha repozitor\u00ebt Dockefile dhe docker-compose.<\/li>\n<\/ul>\n<p><\/p>\n<p>PS:<\/p>\n<p><\/p>\n<ul>\n<li>Koh\u00ebt e fundit kam hasur n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.packer.io\/\">packer<\/a><\/noindex> dhe thot\u00eb q\u00eb punon shum\u00eb mir\u00eb me Ansible dhe lejon unifikimin e procesit t\u00eb nd\u00ebrtimit t\u00eb imazheve (p\u00ebrfshir\u00eb imazhet docker)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.smashcompany.com\/technology\/docker-is-a-dangerous-gamble-which-we-will-regret\">po ashtu p\u00ebr docker, nj\u00eb artikull interesant<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Faleminderit q\u00eb e lexuat deri n\u00eb fund, ju d\u00ebshiroj zgjidhje t\u00eb qarta n\u00eb pun\u00ebt tuaja dhe dit\u00eb produktive n\u00eb pun\u00eb!<\/p>\n<p>Burimi: <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.0.1 - 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 \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\" \/>\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\/sq\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/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 \u00ebsht\u00eb nj\u00eb lod\u00ebr apo jo? Apo vall\u00eb po?","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! M\u00eb shum\u00eb do doja t\u00eb filloja menj\u00ebher\u00eb me tem\u00ebn, por \u00ebsht\u00eb m\u00eb e qart\u00eb t\u00eb flas pak p\u00ebr historin\u00eb time: Hyrje Jam nj\u00eb programues me p\u00ebrvoj\u00eb n\u00eb zhvillimin e aplikacioneve frontend nj\u00ebfaq\u00ebshe, scala\/java dhe nodejs n\u00eb server. Kam menduar p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb (me siguri disa \u2014 tre vite) se docker \u00ebsht\u00eb nj\u00eb dhurat\u00eb nga qielli dhe n\u00eb p\u00ebrgjith\u00ebsi \u00ebsht\u00eb nj\u00eb mjet shum\u00eb i shk\u00eblqyer dhe \u00e7do person individual","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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 \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","og:url":"https:\/\/prohoster.info\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/31641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=31641"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/31641\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=31641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=31641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=31641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}