{"id":36772,"date":"2019-10-31T22:13:44","date_gmt":"2019-10-31T19:13:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ponimaya-docker\/"},"modified":"2019-10-31T22:13:44","modified_gmt":"2019-10-31T19:13:44","slug":"ponimaya-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Duke kuptuar Docker","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Q\u00eb disa muaj po p\u00ebrdor docker p\u00ebr struktuar procesin e zhvillimit\/delivery t\u00eb projekteve web. Po ju ofroj lexuesve t\u00eb \u00abHabrakhabra\u00bb p\u00ebrkthimin e nj\u00eb artikulli hyr\u00ebs mbi docker \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u00abKuptimi i docker\u00bb<\/a><\/noindex>.<\/i><\/p>\n<h3>\u00c7far\u00eb \u00ebsht\u00eb docker?<\/h3>\n<p>\nDocker \u00ebsht\u00eb nj\u00eb platform\u00eb e hapur p\u00ebr zhvillimin, dor\u00ebzimin dhe funksionimin e aplikacioneve. Docker \u00ebsht\u00eb krijuar p\u00ebr ta b\u00ebr\u00eb m\u00eb t\u00eb shpejt\u00eb nxjerrjen n\u00eb publik t\u00eb aplikacioneve tuaja. Me docker, mund t\u00eb ndaheni aplikacionin tuaj nga infrastruktura juaj dhe ta trajtoni infrastruktur\u00ebn si nj\u00eb aplikacion t\u00eb menaxhuar. Docker ndihmon n\u00eb nxjerrjen m\u00eb shpejt t\u00eb kodit tuaj, testimin m\u00eb t\u00eb shpejt\u00eb, publikimin e aplikacioneve dhe reduktimin e koh\u00ebs mes shkrimit t\u00eb kodit dhe aktivizimit t\u00eb tij. Docker e b\u00ebn k\u00ebt\u00eb me nj\u00eb platform\u00eb t\u00eb leht\u00eb t\u00eb virtualizimit t\u00eb kontejner\u00ebve, duke p\u00ebrdorur procese dhe mjete q\u00eb ndihmojn\u00eb n\u00eb menaxhimin dhe publikimin e aplikacioneve tuaja.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nN\u00eb thelbin e tij, docker lejon ekzekutimin e pothuajse \u00e7do aplikacioni, n\u00eb m\u00ebnyr\u00eb t\u00eb sigurt t\u00eb izoluar n\u00eb nj\u00eb kontejner. Izolimi i sigurt ju lejon t\u00eb ekzekutoni shum\u00eb kontejner\u00eb n\u00eb nj\u00eb host t\u00eb vet\u00ebm n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb. Natyrshm\u00ebria e leht\u00eb e kontejnerit, i cili ekzekutohet pa ngarkes\u00ebn shtes\u00eb t\u00eb hipervizorit, ju lejon t\u00eb merrni m\u00eb shum\u00eb nga hardueri juaj.<\/p>\n<p>Platforma dhe mjetet e virtualizimit t\u00eb kontejner\u00ebve mund t\u00eb jen\u00eb t\u00eb dobishme n\u00eb situatat n\u00eb vijim:<\/p>\n<ul>\n<li>paketimi i aplikacionit tuaj (dhe gjithashtu p\u00ebrb\u00ebr\u00ebsit e p\u00ebrdorur) n\u00eb kontejner\u00eb docker;<\/li>\n<li>shp\u00ebrndarja dhe dor\u00ebzimi i k\u00ebtyre kontejner\u00ebve p\u00ebr ekipet tuaja p\u00ebr zhvillim dhe testim;<\/li>\n<li>publikimi i k\u00ebtyre kontejner\u00ebve n\u00eb ambientet tuaja prodhuese, si n\u00eb qendrat t\u00eb dh\u00ebnash po ashtu edhe n\u00eb cloud.<\/li>\n<\/ul>\n<p><\/p>\n<h3>P\u00ebr \u00e7far\u00eb mund t\u00eb p\u00ebrdor docker?<\/h3>\n<p><\/p>\n<h4>Publikim i shpejt\u00eb i aplikacioneve tuaja<\/h4>\n<p>\nDocker \u00ebsht\u00eb i shk\u00eblqyer p\u00ebr organizimin e ciklit t\u00eb zhvillimit. Docker lejon zhvilluesit t\u00eb p\u00ebrdorin kontejner\u00eb lokal\u00eb me aplikacione dhe sh\u00ebrbime. Kjo m\u00eb von\u00eb lejon integrimin me procesin e integrimit dhe publikimit t\u00eb vazhduesh\u00ebm.<\/p>\n<p>P\u00ebr shembull, zhvilluesit tuaj shkruajn\u00eb kodin lokalmente dhe ndajn\u00eb stekimin e tyre t\u00eb zhvillimit (grupin e imazheve docker) me koleg\u00ebt. Kur ata jan\u00eb t\u00eb gatsh\u00ebm, d\u00ebrgojn\u00eb kodin dhe kontejner\u00ebt n\u00eb nj\u00eb ambient testimi dhe ekzekutojn\u00eb \u00e7do test t\u00eb nevojsh\u00ebm. Nga ambienti i testimit, ata mund t\u00eb d\u00ebrgojn\u00eb kodin dhe imazhet n\u00eb prodhim.<\/p>\n<h4>M\u00eb e thjesht\u00eb p\u00ebr publikim dhe implementim<\/h4>\n<p>\nPlatforma e bazuar n\u00eb kontejner\u00ebt Docker lejon q\u00eb ngarkesa juaj t\u00eb migrohet leht\u00ebsisht. Kontejner\u00ebt Docker mund t\u00eb funksionojn\u00eb n\u00eb makin\u00ebn tuaj lokale, si n\u00eb makinat reale ashtu edhe n\u00eb makinat virtuale n\u00eb qendr\u00ebn e t\u00eb dh\u00ebnave, si dhe n\u00eb cloud.<\/p>\n<p>Portabiliteti dhe natyra e leht\u00eb e Docker e lejon menaxhimin dinamik t\u00eb ngarkes\u00ebs suaj. Mund t\u00eb p\u00ebrdorni Docker p\u00ebr t\u00eb vendosur ose mbyllur aplikacionin ose sh\u00ebrbimet tuaja. Shpejt\u00ebsia e Docker e b\u00ebn k\u00ebt\u00eb gati n\u00eb koh\u00eb reale.<\/p>\n<h4>Ngarkesa t\u00eb larta dhe m\u00eb shum\u00eb ngarkesa<\/h4>\n<p>\nDocker \u00ebsht\u00eb i leht\u00eb dhe i shpejt\u00eb. Ai ofron nj\u00eb alternativ\u00eb t\u00eb q\u00ebndrueshme dhe t\u00eb p\u00ebrballueshme ndaj makinave virtuale t\u00eb bazuara n\u00eb hipervizor. Ai \u00ebsht\u00eb ve\u00e7an\u00ebrisht i dobish\u00ebm n\u00eb kushte ngarkese t\u00eb larta, p\u00ebr shembull, kur krijoni cloud t\u00eb vetin ose platform\u00eb-si-sh\u00ebrbim (platform-as-service). Por ai gjithashtu \u00ebsht\u00eb i dobish\u00ebm p\u00ebr aplikacione t\u00eb vogla dhe t\u00eb mesme kur d\u00ebshironi t\u00eb merrni m\u00eb shum\u00eb nga burimet ekzistuese.<\/p>\n<h3>Komponent\u00ebt kryesor\u00eb t\u00eb Docker<\/h3>\n<p>\nDocker p\u00ebrb\u00ebhet nga dy komponente kryesore:<\/p>\n<ul>\n<li>Docker: platforma e virtualizimit me kod t\u00eb hapur;<\/li>\n<li>Docker Hub: platforma jon\u00eb-si-sh\u00ebrbim p\u00ebr shp\u00ebrndarjen dhe menaxhimin e kontejner\u00ebve Docker.<\/li>\n<\/ul>\n<p>\n<i>Sh\u00ebnim! Docker shp\u00ebrndahet sipas licenc\u00ebs Apache 2.0.<\/i><\/p>\n<h3>Arkitektura e Docker<\/h3>\n<p><\/p>\n<p>Docker p\u00ebrdor nj\u00eb arkitektur\u00eb klient-server. Klienti Docker komunikon me demonin Docker, i cili merr p\u00ebrsip\u00ebr ngarkes\u00ebn e krijimit, ekzekutimit, shp\u00ebrndarjes s\u00eb kontejner\u00ebve tuaj. T\u00eb dy, klienti dhe serveri mund t\u00eb punojn\u00eb n\u00eb t\u00eb nj\u00ebjt\u00ebn sistem, mund ta lidhni klientin me nj\u00eb demon t\u00eb larg\u00ebt Docker. Klienti dhe serveri komunikohet p\u00ebrmes soket\u00ebve ose p\u00ebrmes API-s\u00eb RESTful.<\/p>\n<p><img decoding=\"async\" alt=\"Duke kuptuar Docker\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Demon Docker<\/h4>\n<p>\nSi\u00e7 tregohet n\u00eb diagram, demon \u00ebsht\u00eb aktivizuar n\u00eb makin\u00ebn prit\u00ebse. P\u00ebrdoruesi nuk interakton drejtp\u00ebrdrejt me serverin, por p\u00ebrdor klientin p\u00ebr k\u00ebt\u00eb.<\/p>\n<h4>Klienti Docker<\/h4>\n<p>\nKlienti Docker, programi Docker \u2014 \u00ebsht\u00eb nd\u00ebrfaqja kryesore me Docker. Ai merr komandat nga p\u00ebrdoruesi dhe interakton me demonin Docker.<\/p>\n<h4>Brenda docker-it<\/h4>\n<p>\nP\u00ebr t\u00eb kuptuar se \u00e7far\u00eb p\u00ebrb\u00ebn Docker, duhet t\u00eb dini p\u00ebr tre komponente:<\/p>\n<ul>\n<li>imazhet (images)<\/li>\n<li>regjistrat (registries)<\/li>\n<li>kontejner\u00ebt<\/li>\n<\/ul>\n<h4>Imazhet<\/h4>\n<p>\nDocker image \u00ebsht\u00eb nj\u00eb model read-only. P\u00ebr shembull, nj\u00eb imazh mund t\u00eb p\u00ebrmbaj\u00eb sistemin operativ Ubuntu me Apache dhe nj\u00eb aplikacion mbi t\u00eb. Imazhet p\u00ebrdoren p\u00ebr t\u00eb krijuar kontejner\u00eb. Docker lejon q\u00eb t\u00eb krijoni leht\u00ebsisht imazhe t\u00eb reja, t\u00eb p\u00ebrdit\u00ebsoni ato ekzistuese, ose mund t\u00eb shkarkoni imazhe t\u00eb krijuara nga t\u00eb tjer\u00ebt. Imazhet jan\u00eb nj\u00eb komponent i nd\u00ebrtimit t\u00eb docker-it.<\/p>\n<h4>Regjistri<\/h4>\n<p>\nDocker Registry ruan imazhet. Ka regjistra publik\u00eb dhe privat\u00eb prej t\u00eb cil\u00ebve mund t\u00eb shkarkoni ose ngarkoni imazhe. Regjistri publik Docker \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Aty ruhen nj\u00eb koleksion i madh imazhesh. Si\u00e7 e dini, imazhet mund t\u00eb krijohen nga ju ose mund t\u00eb p\u00ebrdorni imazhe t\u00eb krijuara nga t\u00eb tjer\u00ebt. Regjistrat jan\u00eb nj\u00eb komponent i shp\u00ebrndarjes.<\/p>\n<h4>Kontenier\u00ebt<\/h4>\n<p>\nKontejner\u00ebt jan\u00eb t\u00eb ngjash\u00ebm me direktorit\u00eb. N\u00eb kontejner\u00eb p\u00ebrmban t\u00eb gjitha q\u00eb nevojiten p\u00ebr funksionimin e aplikacionit. \u00c7do kontejner krijohet nga nj\u00eb imazh. Kontejner\u00ebt mund t\u00eb krijohen, fillohen, ndalen, transferohen ose fshihen. \u00c7do kontejner \u00ebsht\u00eb i izoluara dhe \u00ebsht\u00eb nj\u00eb platform\u00eb e sigurt p\u00ebr aplikacionin. Kontejner\u00ebt jan\u00eb nj\u00eb komponent i operimit.<\/p>\n<h4>Si funksionon Docker?<\/h4>\n<p>\nDerisa ne dim\u00eb se:<\/p>\n<ul>\n<li>mund t\u00eb krijojm\u00eb imazhe, q\u00eb p\u00ebrmbajn\u00eb aplikacionet tona;<\/li>\n<li>mund t\u00eb krijojm\u00eb kontejner\u00eb nga imazhe, p\u00ebr t\u00eb ekzekutuar aplikacionet;<\/li>\n<li>mund t\u00eb shp\u00ebrndajm\u00eb imazhe p\u00ebrmes Docker Hub ose ndonj\u00eb regjistri tjet\u00ebr imazhesh.<\/li>\n<\/ul>\n<p>\nLe t\u00eb shohim se si i kombinohen k\u00ebto komponente.<\/p>\n<h4>Si funksionon imazhi?<\/h4>\n<p>\nNe e dim\u00eb tashm\u00eb se imazhi \u00ebsht\u00eb nj\u00eb model read-only, nga i cili krijohet nj\u00eb kontejner. \u00c7do imazh p\u00ebrb\u00ebhet nga nj\u00eb grup nivelesh. Docker p\u00ebrdor <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">sistemin e skedar\u00ebve union<\/a><\/noindex> p\u00ebr t\u00eb kombinuar k\u00ebto nivele n\u00eb nj\u00eb imazh t\u00eb vet\u00ebm. Sistemi i skedar\u00ebve union lejon q\u00eb skedar\u00ebt dhe direktor\u00ebt nga sisteme t\u00eb ndryshme skedar\u00ebsh (dega t\u00eb ndryshme) t\u00eb mbivendosen n\u00eb m\u00ebnyr\u00eb transparente, duke krijuar nj\u00eb sistem t\u00eb koherent skedar\u00ebsh.<\/p>\n<p>Nj\u00eb nga arsyet se pse docker \u00ebsht\u00eb i leht\u00eb \u00ebsht\u00eb p\u00ebrdorimi i till\u00eb nivelesh. Kur ndryshoni nj\u00eb imazh, p\u00ebr shembull, p\u00ebrdit\u00ebsoni aplikacionin, krijohet nj\u00eb nivel i ri. K\u00ebshtu, pa z\u00ebvend\u00ebsimin e gjith\u00eb imazhit ose nd\u00ebrtimin e tij p\u00ebrs\u00ebri, si\u00e7 mund t'ju duhet t\u00eb b\u00ebni me nj\u00eb makin\u00eb virtuale, vet\u00ebm niveli \u00ebsht\u00eb shtuar ose p\u00ebrdit\u00ebsuar. Dhe nuk keni nevoj\u00eb t\u00eb shp\u00ebrndani t\u00ebr\u00eb imazhin e ri, shp\u00ebrndahet vet\u00ebm p\u00ebrdit\u00ebsimi, duke e b\u00ebr\u00eb shp\u00ebrndarjen e imazheve m\u00eb t\u00eb thjesht\u00eb dhe m\u00eb t\u00eb shpejt\u00eb.<\/p>\n<p>N\u00eb b\u00ebrtham\u00eb t\u00eb \u00e7do imazhi \u00ebsht\u00eb nj\u00eb imazh baz\u00eb. P\u00ebr shembull, ubuntu, imazhi baz\u00eb i Ubuntu, ose fedora, imazhi baz\u00eb i shp\u00ebrndarjes Fedora. Po ashtu mund t\u00eb p\u00ebrdorni imazhet si baz\u00eb p\u00ebr t\u00eb krijuar imazhe t\u00eb reja. P\u00ebr shembull, n\u00ebse keni nj\u00eb imazh apache, mund ta p\u00ebrdorni at\u00eb si imazhin baz\u00eb p\u00ebr aplikacionet tuaja ueb.<\/p>\n<p><i>V notes! Docker zakonisht merr imazhe nga regjistri Docker Hub.<\/i><\/p>\n<p>Imazhet Docker mund t\u00eb krijohen nga k\u00ebto imazhe baz\u00eb, hapat e p\u00ebrshkrimit p\u00ebr krijimin e k\u00ebtyre imazheve i quajm\u00eb instrukcione. \u00c7do instrukcion krijon nj\u00eb imazh t\u00eb ri ose nj\u00eb nivel. Instruksionet do t\u00eb jen\u00eb k\u00ebto veprime:<\/p>\n<p><\/p>\n<ul>\n<li>ekzekutimi i komand\u00ebs<\/li>\n<li>shtimi i nj\u00eb skedari ose direktoriumi<\/li>\n<li>krijimi i nj\u00eb variabli t\u00eb mjedisit<\/li>\n<li>p\u00ebrcaktimi se \u00e7far\u00eb t\u00eb ekzekutohet kur fillohet kjo konteiner i k\u00ebtij imazhi<\/li>\n<\/ul>\n<p>K\u00ebto instrukcione ruhen n\u00eb nj\u00eb skedar <code>Dockerfile<\/code>. Docker i lexon k\u00ebto <code>Dockerfile<\/code>, kur mblidhet imazhi, ekzekuton k\u00ebto instrukcione, dhe kthen imazhin p\u00ebrfundimtar.<\/p>\n<h4>Si funksionon regjistri docker?<\/h4>\n<p>\nRegjistri \u00ebsht\u00eb nj\u00eb magazin\u00eb imazhesh docker. Pasi t\u00eb krijoni nj\u00eb imazh, mund ta publikoni at\u00eb n\u00eb regjistrin publik Docker Hub ose n\u00eb regjistrin tuaj personal.<\/p>\n<p>Me ndihm\u00ebn e klientit docker mund t\u00eb k\u00ebrkoni imazhe tashm\u00eb t\u00eb publikuara dhe t'i shkarkoni ato n\u00eb makin\u00ebn tuaj me docker p\u00ebr t\u00eb krijuar konteiner\u00eb.<\/p>\n<p>Docker Hub ofron depo publike dhe private p\u00ebr imazhe. K\u00ebrkimi dhe shkarkimi i imazheve nga depo publike \u00ebsht\u00eb e disponueshme p\u00ebr t\u00eb gjith\u00eb. P\u00ebrmbajtja e depo private nuk shfaqet n\u00eb rezultatet e k\u00ebrkimit. Dhe vet\u00ebm ju dhe p\u00ebrdoruesit tuaj mund t\u00eb merrni k\u00ebto imazhe dhe t\u00eb krijoni konteiner\u00eb prej tyre.<\/p>\n<h4>Si funksionon konteineri?<\/h4>\n<p>\nKonteineri p\u00ebrb\u00ebhet nga nj\u00eb sistem operativ, skedar\u00eb p\u00ebrdoruesi dhe meta t\u00eb dh\u00ebna. Si\u00e7 e dim\u00eb, \u00e7do konteiner krijohet nga nj\u00eb imazh. Ky imazh i thot\u00eb docker-it se \u00e7far\u00eb ndodhet n\u00eb konteiner, cilin proces t\u00eb ekzekutoj\u00eb kur iniciohet konteineri dhe t\u00eb dh\u00ebna t\u00eb tjera konfigurimi. Imazhi docker \u00ebsht\u00eb i disponuesh\u00ebm vet\u00ebm p\u00ebr lexim. Kur docker inicializon konteinerin, ai krijon nj\u00eb nivel p\u00ebr lexim\/shkrim mbi imazhin (duke p\u00ebrdorur sistemin e skedar\u00ebve union, si\u00e7 u p\u00ebrmend m\u00eb par\u00eb), n\u00eb t\u00eb cilin mund t\u00eb ekzekutohet aplikacioni.<\/p>\n<h4>\u00c7far\u00eb ndodh kur iniciohet nj\u00eb konteiner?<\/h4>\n<p>\nOse me ndihm\u00ebn e programit <code>docker<\/code>, ose me ndihm\u00ebn e RESTful API, klienti docker i thot\u00eb demonit docker t\u00eb inicializoj\u00eb konteinerin.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nLe t\u00eb shqyrtojm\u00eb k\u00ebt\u00eb komand\u00eb. Klienti fillon me k\u00ebt\u00eb komand\u00eb <code>docker<\/code>, me opsionin <code>run<\/code>, e cila shpall se do t\u00eb nis\u00eb nj\u00eb kontejner t\u00eb ri. K\u00ebrkesat minimale p\u00ebr nisjen e kontejnerit jan\u00eb atributet e m\u00ebposhtme:<\/p>\n<ul>\n<li>cili imazh duhet t\u00eb p\u00ebrdoret p\u00ebr krijimin e kontejnerit. N\u00eb rastin ton\u00eb <code>ubuntu<\/code><\/li>\n<li>komand\u00ebn q\u00eb d\u00ebshiron t\u00eb nis\u00ebsh kur kontejneri t\u00eb jet\u00eb nisur. N\u00eb rastin ton\u00eb <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>\u00c7far\u00eb ndodh n\u00ebn kapak, kur ne nisim k\u00ebt\u00eb komand\u00eb?<\/p>\n<p>Docker, hapat n\u00eb rend, b\u00ebn si m\u00eb posht\u00eb:<\/p>\n<ul>\n<li><b>shkarkon imazhin ubuntu:<\/b> docker kontrollon n\u00ebse imazhi <code>ubuntu<\/code> \u00ebsht\u00eb n\u00eb makin\u00ebn lokale, dhe n\u00ebse nuk \u00ebsht\u00eb - e shkarkon at\u00eb nga <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. N\u00ebse imazhi \u00ebsht\u00eb n\u00eb dispozicion, ai e p\u00ebrdor at\u00eb p\u00ebr krijimin e kontejnerit;<\/li>\n<li><b>krijon kontejnerin:<\/b> kur imazhi \u00ebsht\u00eb marr\u00eb, docker e p\u00ebrdor at\u00eb p\u00ebr krijimin e kontejnerit;<\/li>\n<li><b>fillon sistemin e skedar\u00ebve dhe monton nivelin read-only:<\/b> kontejneri \u00ebsht\u00eb krijuar n\u00eb sistemin e skedar\u00ebve dhe niveli read-only \u00ebsht\u00eb shtuar imazhit;<\/li>\n<li><b>fillon rrjetin\/ur\u00ebn:<\/b> krijon nj\u00eb nd\u00ebrfaqe rrjeti q\u00eb lejon docker t\u00eb komunikoj\u00eb me makin\u00ebn host;<\/li>\n<li><b>Caktimi i adres\u00ebs IP:<\/b> gjen dhe cakton adres\u00ebn;<\/li>\n<li><b>Nis procesin e specifikuar:<\/b> nis aplikacionin tuaj;<\/li>\n<li><b>P\u00ebrpunon dhe nxjerr daljen e aplikacionit tuaj:<\/b> lidhet dhe regjistron hyrjen standarde, daljen dhe rrjedh\u00ebn e gabimeve t\u00eb aplikacionit tuaj, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mund t\u00eb v\u00ebzhgosh se si funksionon aplikacioni yt.<\/li>\n<\/ul>\n<p>\nTani keni nj\u00eb kontejner n\u00eb pun\u00eb. Mund t\u00eb menaxhosh kontejnerin t\u00ebnd, t\u00eb nd\u00ebrveprosh me aplikacionin t\u00ebnd. Kur t\u00eb vendos\u00ebsh t\u00eb ndalosh aplikacionin, fshi kontejnerin.<\/p>\n<h3>Teknologjit\u00eb e p\u00ebrdorura<\/h3>\n<p>\nDocker \u00ebsht\u00eb shkruar n\u00eb Go dhe p\u00ebrdor disa mund\u00ebsi t\u00eb b\u00ebrtham\u00ebs Linux p\u00ebr t\u00eb realizuar funksionalitetet e p\u00ebrmendura m\u00eb lart\u00eb.<\/p>\n<h4>Hap\u00ebsira emrash (namespaces)<\/h4>\n<p>\nDocker p\u00ebrdor teknologjin\u00eb <code>namespaces<\/code> p\u00ebr t\u00eb organizuar hap\u00ebsira t\u00eb izoluara pune, t\u00eb cilat i quajm\u00eb kontejner\u00eb. Kur nisim nj\u00eb kontejner, docker krijon nj\u00eb grup hap\u00ebsirash emrash p\u00ebr k\u00ebt\u00eb kontejner.<\/p>\n<p>Kjo krijon nj\u00eb nivel t\u00eb izoluar, \u00e7do aspekt i kontejnerit \u00ebsht\u00eb i nisur n\u00eb hap\u00ebsir\u00ebn e tij em\u00ebr dhe nuk ka akses n\u00eb sistemin jasht\u00eb.<\/p>\n<p>Lista e disa hap\u00ebsirave emrash q\u00eb p\u00ebrdor docker:<\/p>\n<ul>\n<li><b>pid:<\/b> p\u00ebr izolimin e procesit;<\/li>\n<li><b>net:<\/b> p\u00ebr menaxhimin e nd\u00ebrfaqeve rrjet\u00eb;<\/li>\n<li><b>ipc:<\/b> p\u00ebr menaxhimin e burimeve IPC. (ICP: Komunikimi nd\u00ebrpro\u00e7esor);<\/li>\n<li><b>mnt:<\/b> p\u00ebr menaxhimin e pikave t\u00eb montimit;<\/li>\n<li><b>utc:<\/b> p\u00ebr izolimin e b\u00ebrtham\u00ebs dhe kontrollin e gjenerat\u00ebs s\u00eb versioneve (UTC: sistemi unix p\u00ebr ndarjen e koh\u00ebs).<\/li>\n<\/ul>\n<h4>Grupet e kontrollit (control groups)<\/h4>\n<p>\nDocker gjithashtu p\u00ebrdor teknologjin\u00eb <code>cgroups<\/code> ose dhe grupet e kontrollit. \u00c7el\u00ebsi i funksionimit t\u00eb aplikacionit n\u00eb izolim \u00ebsht\u00eb ofrimi i burimeve t\u00eb aplikacionit vet\u00ebm ato q\u00eb d\u00ebshironi. Kjo garanton q\u00eb kontejner\u00ebt do t\u00eb jen\u00eb fqinj\u00eb t\u00eb mir\u00eb. Grupet e kontrollit lejojn\u00eb ndarjen e burimeve t\u00eb disponueshme t\u00eb harduerit dhe, n\u00ebse \u00ebsht\u00eb e nevojshme, vendosjen e kufijve dhe kufizimeve. P\u00ebr shembull, mund t\u00eb limitoni sasin\u00eb e memories q\u00eb nj\u00eb kontejner mund t\u00eb p\u00ebrdor\u00eb.<\/p>\n<h4>Union File System<\/h4>\n<p>\nUnion File System ose UnionFS \u00ebsht\u00eb nj\u00eb sistem skedari q\u00eb funksionon duke krijuar nivele, duke e b\u00ebr\u00eb at\u00eb shum\u00eb t\u00eb leht\u00eb dhe t\u00eb shpejt\u00eb. Docker e p\u00ebrdor UnionFS p\u00ebr t\u00eb krijuar blloqet nga t\u00eb cilat nd\u00ebrtohet kontejneri. Docker mund t\u00eb p\u00ebrdor\u00eb disa variante t\u00eb UnionFS duke p\u00ebrfshir\u00eb: AUFS, btrfs, vfs dhe DeviceMapper.<\/p>\n<h4>Formatet e kontejner\u00ebve<\/h4>\n<p>\nDocker i kombinon k\u00ebto komponente n\u00eb nj\u00eb mb\u00ebshtjell\u00ebs, t\u00eb cilin ne e quajm\u00eb format kontejneri. Formati i p\u00ebrdorur nga default quhet <code>libcontainer<\/code>. Gjithashtu, docker mb\u00ebshtet formatin tradicional t\u00eb kontejner\u00ebve n\u00eb Linux p\u00ebrmes <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. N\u00eb t\u00eb ardhmen, Docker ndoshta do t\u00eb mb\u00ebshtes\u00eb formate t\u00eb tjera kontejner\u00ebsh. P\u00ebr shembull, duke u integruar me BSD Jails ose Solaris Zones.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/253877\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36772","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.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\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kuptimi i Docker | ProHoster","description":"Kam p\u00ebrdorur docker p\u00ebr disa muaj p\u00ebr t\u00eb strukturizuar procesin e zhvillimit\/delivery t\u00eb projekteve n\u00eb web.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ponimaya-docker","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\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster","og:description":"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ponimaya-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:44+00:00","article:modified_time":"2019-10-31T19:13:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36772","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:47:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:22","updated":"2026-01-22 04:47:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36772","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=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}