{"id":91905,"date":"2020-08-20T07:42:23","date_gmt":"2020-08-20T05:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii"},"modified":"2020-08-20T07:42:23","modified_gmt":"2020-08-20T05:42:23","slug":"chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii","title":{"rendered":"\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e historis\u00eb dhe abstraksioneve kryesore","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>M\u00eb 10 gusht filloi n\u00eb Sly\u00ebrm <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/2patKQ\">kurset video p\u00ebr Docker<\/a><\/noindex>, n\u00eb t\u00eb cilin e shqyrtojm\u00eb Plot\u00ebsisht \u2014 nga abstraksionet kryesore deri te parametrat e rrjetit. <\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb flasim p\u00ebr historin\u00eb e shfaqjes s\u00eb Docker dhe abstraksionet e tij kryesore: Imazhi, Cli, Dockerfile. Kjo ligj\u00ebrat\u00eb \u00ebsht\u00eb e destinuar p\u00ebr fillestar\u00ebt, ndaj rrall\u00ebher\u00eb do t\u00eb jet\u00eb interesante p\u00ebr p\u00ebrdoruesit me p\u00ebrvoj\u00eb. K\u00ebtu nuk do t\u00eb ket\u00eb gjak, apendiks dhe p\u00ebrfshirje t\u00eb thell\u00eb. Vet\u00ebm t\u00eb dh\u00ebnat e para.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e historis\u00eb dhe abstraksioneve kryesore\" src=\"\/wp-content\/uploads\/2020\/08\/f01af417f24c838577b09bdf90f02fb9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"chto-takoe-docker\">\u00c7far\u00eb \u00ebsht\u00eb Docker<\/h2>\n<p><\/p>\n<p>Le t\u00eb shohim definimin e Docker nga Wikipedia.<\/p>\n<p><\/p>\n<blockquote><p>Docker \u00ebsht\u00eb nj\u00eb softuer p\u00ebr automatizimin e shp\u00ebrndarjes dhe menaxhimit t\u00eb aplikacioneve n\u00eb mjedise me mb\u00ebshtetje p\u00ebr kontejnerizimin.<\/p><\/blockquote>\n<p>Nga kjo p\u00ebrkufizim nuk kuptohet asgj\u00eb. Ve\u00e7an\u00ebrisht nuk \u00ebsht\u00eb e qart\u00eb se \u00e7far\u00eb do t\u00eb thot\u00eb \"n\u00eb mjedise me mb\u00ebshtetje p\u00ebr kontejnerizimin\". P\u00ebr t'u sqaruar, le t\u00eb kthehemi n\u00eb t\u00eb kaluar\u00ebn. Le t\u00eb fillojm\u00eb me epok\u00ebn, t\u00eb cil\u00ebn un\u00eb e quaj \"Epoka Monolitike\".<\/p>\n<p><\/p>\n<h2 id=\"monolitnaya-era\">Epoka Monolitike<\/h2>\n<p><\/p>\n<p>Epoka Monolitike \u00ebsht\u00eb fillimi i viteve 2000, kur t\u00eb gjitha aplikacionet ishin monolitike, me shum\u00eb var\u00ebsi. Zhvillimi shkonte ngadal\u00eb. N\u00eb k\u00ebt\u00eb koh\u00eb, server\u00ebt nuk ishin aq t\u00eb shumt\u00eb, ne i njihnim gjithashtu me emra dhe i monitoronim. Ka nj\u00eb krahasim interesante:<\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"Od7e6hqis7A\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/Od7e6hqis7A\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Kafsh\u00eb sht\u00ebpiake \u2014 jan\u00eb kafsh\u00ebt q\u00eb jetojn\u00eb n\u00eb sht\u00ebpi. N\u00eb epok\u00ebn monolitike i trajtonim server\u00ebt tan\u00eb si kafsh\u00eb sht\u00ebpiake, i kujdesnim dhe i p\u00ebrk\u00ebdhelnim, duke fryr\u00eb pluhurin. P\u00ebr menaxhimin m\u00eb t\u00eb mir\u00eb t\u00eb burimeve, p\u00ebrdornim virtualizimin: merrnim nj\u00eb server dhe e ndanim n\u00eb disa makina virtuale, duke siguruar k\u00ebshtu izolimin e mjedisit.<\/p>\n<p><\/p>\n<h2 id=\"sistemy-virtualizacii-na-baze-gipervizora\">Sistemet e virtualizimit bazuar n\u00eb hipervizor<\/h2>\n<p><\/p>\n<p>P\u00ebr sistemet e virtualizimit sigurisht q\u00eb t\u00eb gjith\u00eb kan\u00eb d\u00ebgjuar: VMware, VirtualBox, Hyper-V, Qemu KVM etj. Ato ofrojn\u00eb izolimin e aplikacioneve dhe menaxhimin e burimeve, por kan\u00eb dhe disavantazhe. P\u00ebr t\u00eb realizuar virtualizimin, nevojitet nj\u00eb hipervizor. Dhe hipervizori \u00ebsht\u00eb nj\u00eb ngarkes\u00eb p\u00ebr burimet. Gjithashtu, makina virtuale shpesh \u00ebsht\u00eb nj\u00eb mas\u00eb e madhe \u2014 nj\u00eb imazh i r\u00ebnd\u00eb, mbi t\u00eb \u00ebsht\u00eb sistemi operativ, Nginx, Apache, ndoshta edhe MySQL. Imazhi \u00ebsht\u00eb i madh, \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb operosh me makin\u00ebn virtuale. Si rezultat, puna me virtualizimet mund t\u00eb jet\u00eb e ngadalshme. P\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem, u krijuan sistemet e virtualizimit n\u00eb nivelin e b\u00ebrtham\u00ebs.<\/p>\n<p><\/p>\n<h2 id=\"sistemy-virtualizacii-na-urovne-yadra\">Sistemet e virtualizimit n\u00eb nivelin e b\u00ebrtham\u00ebs<\/h2>\n<p><\/p>\n<p>Virtualizimi n\u00eb nivelin e b\u00ebrtham\u00ebs mb\u00ebshtetet nga sistemet OpenVZ, Systemd-nspawn, LXC. Nj\u00eb shembull i k\u00ebsaj virtualizimi \u00ebsht\u00eb LXC (Kontejner\u00ebt Linux). <\/p>\n<p><\/p>\n<p>LXC \u00ebsht\u00eb nj\u00eb sistem virtualizimi n\u00eb nivelin e sistemit operativ p\u00ebr t\u00eb drejtuar disa kopje t\u00eb izoluara t\u00eb sistemit operativ Linux n\u00eb nj\u00eb nod. LXC nuk p\u00ebrdor makina virtuale, por krijon nj\u00eb mjedis virtual me hap\u00ebsir\u00ebn e tij t\u00eb proceseve dhe nj\u00eb stek rrjeti.<\/p>\n<p><\/p>\n<p>N\u00eb thelb, LXC krijon kontejner\u00eb. \u00c7far\u00eb \u00ebsht\u00eb diferenca midis makineve virtuale dhe kontejner\u00ebve?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e historis\u00eb dhe abstraksioneve kryesore\" src=\"\/wp-content\/uploads\/2020\/08\/55afdcfd700d4869c9de488033a8e314.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kontejneri nuk \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr izolimin e proceseve: n\u00eb sistemet e virtualizimit n\u00eb nivelin e b\u00ebrtham\u00ebs gjenden dob\u00ebsi q\u00eb lejojn\u00eb daljen nga kontejneri n\u00eb host. Prandaj, n\u00ebse keni nevoj\u00eb p\u00ebr izolim, \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb p\u00ebrdorni nj\u00eb makin\u00eb virtuale.<\/p>\n<p><\/p>\n<p>Dallimet midis virtualizimit dhe kontejnerizimit mund t\u00eb shihen n\u00eb diagram.<br \/>\nKa hipervizor\u00eb harduerik\u00eb, hipervizor\u00eb mbi OS dhe kontejner\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e historis\u00eb dhe abstraksioneve kryesore\" src=\"\/wp-content\/uploads\/2020\/08\/a0c06e9adc1fab3b4b5e9e1b05b51d66.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hipervizor\u00ebt 'harduer\u00eb' jan\u00eb nj\u00eb gj\u00eb e shk\u00eblqyer n\u00ebse v\u00ebrtet d\u00ebshironi t\u00eb izoloni di\u00e7ka. Sepse atje ka mund\u00ebsin\u00eb p\u00ebr t\u00eb izoluar n\u00eb nivelin e faqeve t\u00eb memories dhe procesor\u00ebve.<\/p>\n<p><\/p>\n<p>Ekzistojn\u00eb hypervizor\u00eb si program, dhe ka konteiner\u00eb, p\u00ebr ta do t\u00eb flasim m\u00eb pas. N\u00eb sistemet e konteinerizimit nuk ka hypervizor, por ka Container Engine, i cili krijon dhe menaxhon kontejner\u00ebt. Kjo \u00ebsht\u00eb m\u00eb e leht\u00eb, k\u00ebshtu q\u00eb p\u00ebr shkak t\u00eb funksionimit me b\u00ebrtham\u00ebn, mbingarkesa \u00ebsht\u00eb m\u00eb e vog\u00ebl, ose nuk ekziston fare.<\/p>\n<p><\/p>\n<blockquote>\n<h2 id=\"chto-ispolzuetsya-dlya-konteynerizacii-na-urovne-yadra\">\u00c7far\u00eb p\u00ebrdoret p\u00ebr konteinerizim n\u00eb nivel b\u00ebrthamor<\/h2>\n<p>Teknologjit\u00eb kryesore q\u00eb lejojn\u00eb krijimin e nj\u00eb kontejneri t\u00eb izoluar nga proceset e tjera jan\u00eb Namespaces dhe Control Groups.<\/p>\n<p>Namespaces: PID, Networking, Mount dhe User. Ka edhe t\u00eb tjera, por p\u00ebr thjesht\u00ebsin\u00eb e kuptimit do t\u00eb ndalemi te k\u00ebto.<\/p>\n<p>PID Namespace kufizon proceset. Kur krijojm\u00eb nj\u00eb PID Namespace dhe vendosim nj\u00eb proces atje, ai b\u00ebhet me PID 1. Zakonisht n\u00eb sistemet, PID 1 \u00ebsht\u00eb systemd ose init. Prandaj, kur e vendosim procesin n\u00eb nj\u00eb namespace t\u00eb ri, ai merr gjithashtu PID 1.<\/p>\n<p>Networking Namespace lejon kufizimin\/izolimin e rrjetit dhe brenda tij shp\u00ebrndajm\u00eb nd\u00ebrfaqet tona. Mount \u00ebsht\u00eb nj\u00eb kufizim p\u00ebr sistemin e skedar\u00ebve. User \u00ebsht\u00eb kufizim p\u00ebr p\u00ebrdoruesit.<\/p>\n<p>Control Groups: Memory, CPU, IOPS, Network \u2014 gjithsej rreth 12 cil\u00ebsime. Ndryshe i quajn\u00eb edhe Cgroups (\"C- grupe\").<\/p>\n<p>Grupet e Kontrollit menaxhojn\u00eb burimet p\u00ebr kontejnerin. P\u00ebrmes Grupet e Kontrollit ne mund t\u00eb themi se kontejneri nuk duhet t\u00eb konsumoj\u00eb m\u00eb shum\u00eb sesa nj\u00eb sasi e caktuar burimesh.<\/p>\n<p>P\u00ebr t\u00eb siguruar funksionimin e plot\u00eb t\u00eb kontejnerizimit, p\u00ebrdoren teknologji shtes\u00eb: Kapacitetet, Kopje-n\u00eb-shkrim dhe t\u00eb tjera.<\/p>\n<p>Kapacitetet jan\u00eb ato kur i themi procesit se \u00e7far\u00eb mund dhe \u00e7far\u00eb nuk mund t\u00eb b\u00ebj\u00eb. N\u00eb nivelin e b\u00ebrtham\u00ebs, kjo \u00ebsht\u00eb thjesht nj\u00eb harta bitore me shum\u00eb parametra. P\u00ebr shembull, p\u00ebrdoruesi root ka privilegje t\u00eb plota, mund t\u00eb b\u00ebj\u00eb gjith\u00e7ka. Serveri i koh\u00ebs mund t\u00eb ndryshoj\u00eb koh\u00ebn sistemike: ai ka kapacitete p\u00ebr Capsule t\u00eb Koh\u00ebs, dhe mjafton. Me an\u00eb t\u00eb privilegjeve mund t\u00eb konfigurohen fleksibilisht kufizimet p\u00ebr proceset, duke siguruar k\u00ebshtu mbrojtje.<\/p>\n<p>Sistemi Kopje-n\u00eb-shkrim na lejon t\u00eb punojm\u00eb me imazhet Docker, duke i p\u00ebrdorur ato n\u00eb m\u00ebnyr\u00eb m\u00eb efikase.<\/p>\n<p><em>Aktualisht, Docker ka probleme me kompatibilitetin e Cgroups v2, prandaj n\u00eb k\u00ebt\u00eb artikull shqyrtohen pik\u00ebrisht Cgroups v1.<\/em><\/p><\/blockquote>\n<p>Por le t\u00eb kthehemi n\u00eb histori. <\/p>\n<p><\/p>\n<p>Kur u shfaq\u00ebn sistemet e virtualizimit n\u00eb nivelin e b\u00ebrtham\u00ebs, ato filluan t\u00eb p\u00ebrdoren masivisht. Overhead-i n\u00eb hipervizor u zhduk, por disa probleme mbet\u00ebn:<\/p>\n<p><\/p>\n<ul>\n<li>imazhe t\u00eb m\u00ebdha: n\u00eb t\u00eb nj\u00ebjt\u00ebn OpenVZ shtyhet sistemi operativ, bibliotekat, nj\u00eb mori softuer\u00ebsh t\u00eb ndrysh\u00ebm, dhe n\u00eb fund imazhi p\u00ebrfundon duke u b\u00ebr\u00eb akoma i madh.<\/li>\n<li>nuk ka nj\u00eb standard normal p\u00ebr paketimin dhe dor\u00ebzimin, k\u00ebshtu q\u00eb problemi i var\u00ebsive mbetet. Ka raste kur dy cop\u00eb kodi p\u00ebrdorin nj\u00eb bibliotek\u00eb, por me versione t\u00eb ndryshme. Nd\u00ebrmjet tyre mund t\u00eb ndodh\u00eb nj\u00eb konflikt.<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00ebr t\u00eb zgjidhur t\u00eb gjitha k\u00ebto probleme, erdhi epoka e ardhshme.<\/p>\n<p><\/p>\n<h2 id=\"era-konteynerov\">Epoka e kontejner\u00ebve<\/h2>\n<p><\/p>\n<p>Kur erdhi Epoka e kontejner\u00ebve, u ndryshua filozofia e pun\u00ebs me to:<\/p>\n<p><\/p>\n<ul>\n<li>Nj\u00eb proces \u2014 nj\u00eb kontejner.<\/li>\n<li>T\u00eb gjitha var\u00ebsit\u00eb e nevojshme p\u00ebr procesin d\u00ebrgohen n\u00eb kontejnerin e tij. Kjo k\u00ebrkon ndarjen e monoliteve n\u00eb mikrosherbime.<\/li>\n<li>Sa m\u00eb i vog\u00ebl t\u00eb jet\u00eb imazhi, aq m\u00eb mir\u00eb \u2014 m\u00eb pak mund\u00ebsi p\u00ebr dob\u00ebsi, shpejt\u00ebsi m\u00eb t\u00eb madhe n\u00eb implementim dhe k\u00ebshtu me radh\u00eb.<\/li>\n<li>Instancat b\u00ebhen efemerale. <\/li>\n<\/ul>\n<p><\/p>\n<p>A e dini, un\u00eb thash\u00eb p\u00ebr kafsh\u00ebt sht\u00ebpiake dhe lop\u00ebt? Disa koh\u00eb m\u00eb par\u00eb, instancat ishin si kafsh\u00ebt sht\u00ebpiake, nd\u00ebrsa tani jan\u00eb si lop\u00ebt \u2014 bag\u00ebti. Disa koh\u00eb m\u00eb par\u00eb, kishte nj\u00eb monolit \u2014 nj\u00eb aplikacion t\u00eb vet\u00ebm. Tani ka 100 mikrosh\u00ebrbime, 100 kontejner\u00eb. Disa nga k\u00ebta kontejner\u00eb mund t\u00eb ken\u00eb 2-3 replika. Nuk \u00ebsht\u00eb kaq e r\u00ebnd\u00ebsishme t\u00eb kontrollojm\u00eb \u00e7do kontejner. E r\u00ebnd\u00ebsishme \u00ebsht\u00eb disponueshm\u00ebria e sh\u00ebrbimit: asaj q\u00eb b\u00ebjn\u00eb k\u00ebto grupe kontejner\u00ebsh. Kjo ndryshon qasjen ton\u00eb n\u00eb monitorim.<\/p>\n<p><\/p>\n<p>N\u00eb vitet 2014-2015, ndodhi lul\u00ebzimi i Docker \u2014 asaj teknologjie p\u00ebr t\u00eb cil\u00ebn do t\u00eb flasim tani.<\/p>\n<p><\/p>\n<p>Docker ndryshoi filozofin\u00eb dhe standardizoi paketimin e aplikacioneve. Me ndihm\u00ebn e Docker, ne mund t\u00eb paketojm\u00eb aplikacionin, ta d\u00ebrgojm\u00eb n\u00eb nj\u00eb depo, ta shkarkojm\u00eb nga aty dhe ta vendosim. <\/p>\n<p><\/p>\n<p>N\u00eb kontejnerin Docker ne p\u00ebrfshijm\u00eb gjith\u00e7ka q\u00eb nevojitet, k\u00ebshtu q\u00eb problemi i var\u00ebsive zgjidhet. Docker garanton riprodhueshm\u00ebrin\u00eb. Mendoj se shum\u00eb jan\u00eb p\u00ebrballur me mosriprodhueshm\u00ebrin\u00eb: gjith\u00e7ka funksionon, e shtyjm\u00eb n\u00eb prodhim, dhe atje fillon t\u00eb mos funksionoj\u00eb. Me Docker, ky problem zhduket. N\u00ebse kontejneri yt Docker niset dhe b\u00ebn at\u00eb q\u00eb duhet t\u00eb b\u00ebj\u00eb, at\u00ebher\u00eb me nj\u00eb probabilitet t\u00eb madh ai do t\u00eb niset n\u00eb prodhim dhe do t\u00eb b\u00ebj\u00eb t\u00eb nj\u00ebjt\u00ebn gj\u00eb atje.<\/p>\n<p><\/p>\n<blockquote>\n<h2 id=\"otstuplenie-pro-overhed\">Nj\u00eb shpjegim mbi overhead-in<\/h2>\n<p>P\u00ebr overhead-in vazhdimisht ka polemika. Disa mendojn\u00eb se Docker nuk sjell ngarkes\u00eb shtes\u00eb, pasi p\u00ebrdor b\u00ebrtham\u00ebn Linux dhe t\u00eb gjitha proceset e saj q\u00eb jan\u00eb t\u00eb nevojshme p\u00ebr kontejnerizimin. Si\u00e7 thon\u00eb, \"n\u00ebse thoni se Docker \u00ebsht\u00eb overhead, at\u00ebher\u00eb edhe b\u00ebrthama Linux \u00ebsht\u00eb overhead\".<\/p>\n<p>Nga ana tjet\u00ebr, n\u00ebse thellohemi, n\u00eb Docker v\u00ebrtet ka disa gj\u00ebra p\u00ebr t\u00eb cilat me nj\u00eb t\u00ebrheqje mund t\u00eb thuhet se jan\u00eb overhead.<\/p>\n<p>E para \u2014 \u00ebsht\u00eb PID namespace. Kur ne vendosim nj\u00eb proces n\u00eb namespace, atij i caktohet PID 1. Nd\u00ebrkoh\u00eb, kjo proces ka nj\u00eb PID tjet\u00ebr, i cili ndodhet n\u00eb host namespace, jasht\u00eb en\u00ebve. P\u00ebr shembull, ne nisim Nginx n\u00eb en\u00eb, ai b\u00ebhet PID 1 (procesi master). Nd\u00ebrsa n\u00eb host, ai ka PID 12623. Dhe \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb thuash se sa \u00ebsht\u00eb ky overhead.<\/p>\n<p>Gj\u00ebja e dyt\u00eb \u2014 jan\u00eb Cgroups. T\u00eb marrim Cgroups p\u00ebr memorie, q\u00eb do t\u00eb thot\u00eb mund\u00ebsia p\u00ebr t\u00eb kufizuar memorin\u00eb e en\u00ebs. Kur ajo aktivizohet, aktivizohen num\u00ebruesit, memory accounting: b\u00ebrthama duhet t\u00eb kuptoj\u00eb sa faqe jan\u00eb ndar\u00eb dhe sa jan\u00eb ende t\u00eb lira p\u00ebr k\u00ebt\u00eb en\u00eb. Kjo mund t\u00eb jet\u00eb overhead, por nuk kam hasur ndonj\u00eb studim t\u00eb sakt\u00eb se si ndikon n\u00eb performanc\u00eb. Dhe vet\u00eb nuk kam v\u00ebn\u00eb re se nj\u00eb aplikacion i nisur n\u00eb Docker papritur humbte shum\u00eb n\u00eb performanc\u00eb. <\/p>\n<p>Dhe nj\u00eb v\u00ebrejtje tjet\u00ebr p\u00ebr performanc\u00ebn. Disa parametra t\u00eb b\u00ebrtham\u00ebs kalojn\u00eb nga hosti n\u00eb kontejner. Sakt\u00ebsisht, disa parametra rrjeti. Prandaj, n\u00ebse d\u00ebshironi t\u00eb ekzekutoni di\u00e7ka me performanc\u00eb t\u00eb lart\u00eb n\u00eb Docker, si p\u00ebr shembull di\u00e7ka q\u00eb do t\u00eb p\u00ebrdor\u00eb aktivisht rrjetin, duhet t\u00eb p\u00ebrshtatni s\u00eb paku k\u00ebta parametra. Nj\u00eb paramet\u00ebr si nf_conntrack, p\u00ebr shembull. <\/p><\/blockquote>\n<p><\/p>\n<h2 id=\"o-koncepcii-docker\">Rreth konceptit t\u00eb Docker<\/h2>\n<p><\/p>\n<p>Docker p\u00ebrb\u00ebhet nga disa komponent\u00eb: <\/p>\n<p><\/p>\n<ol>\n<li>Docker Daemon \u2014 ai \u00ebsht\u00eb motor kontenieri; ekzekuton kontejner\u00ebt. <\/li>\n<li>Docker CLI \u2014 utilitari p\u00ebr menaxhimin e Docker.<\/li>\n<li>Dockerfile \u2014 udh\u00ebzimi p\u00ebr si t\u00eb nd\u00ebrtohet imazhi.<\/li>\n<li>Image \u2014 imazhi nga i cili krijohet kontejneri.<\/li>\n<li>Kontejner.<\/li>\n<li>Docker registry \u2014 depo imazhesh.<\/li>\n<\/ol>\n<p><\/p>\n<p>P\u00ebrshtypja e k\u00ebsaj duket af\u00ebrsisht k\u00ebshtu:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e historis\u00eb dhe abstraksioneve kryesore\" src=\"\/wp-content\/uploads\/2020\/08\/73ccc02c14485f72cfd7c64e3074f3b9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb Docker_host funksionon Docker daemon, i cili ekzekuton kontejner\u00ebt. Ka nj\u00eb klient, i cili d\u00ebrgon komanda: nd\u00ebrto imazh, shkarko imazh, ekzekuto kontejner. Docker daemon shkon n\u00eb registry dhe i realizon ato. Klienti Docker mund t\u00eb drejtohet edhe lokalisht (n\u00eb soketin unix) dhe p\u00ebrmes TCP nga nj\u00eb host i larg\u00ebt.<\/p>\n<p><\/p>\n<p>Le t\u00eb shohim \u00e7do komponent.<\/p>\n<p><\/p>\n<p><u>Docker daemon (demon)<\/u> \u2014 \u00ebsht\u00eb komponenti server, ai funksionon n\u00eb makin\u00ebn e host-it: shkarkon imazhe dhe i nis ato n\u00eb konteiner\u00eb, krijon nj\u00eb rrjet midis konteiner\u00ebve, mbledh loget. Kur themi \"krijo imazh\", kjo \u00ebsht\u00eb gjithashtu n\u00eb duar t\u00eb demonit.<\/p>\n<p><\/p>\n<p><u>Docker CLI<\/u> \u2014 \u00ebsht\u00eb komponenti klient i Docker-it, nj\u00eb utilitar n\u00eb konsol\u00eb p\u00ebr t\u00eb punuar me demonin. Po e p\u00ebrs\u00ebris, ai mund t\u00eb funksionoj\u00eb jo vet\u00ebm lokal, por edhe p\u00ebrmes rrjetit. <\/p>\n<p><\/p>\n<p><strong>Commands bazike:<\/strong><\/p>\n<p><\/p>\n<p>docker ps \u2014 tregoni konteiner\u00ebt q\u00eb jan\u00eb aktualisht n\u00eb funksion n\u00eb host-in Docker.<br \/>\ndocker images \u2014 tregoni imazhet e shkarkuara lokalisht.<br \/>\ndocker search &lt;&gt; \u2014 k\u00ebrkoni nj\u00eb imazh n\u00eb registry.<br \/>\ndocker pull &lt;&gt; \u2014 shkarkoni nj\u00eb imazh nga registry n\u00eb makin\u00eb.<br \/>\ndocker build &lt;&lt;\/path\/to\/dir&gt;&gt; \u2014 ndihmoni n\u00eb nd\u00ebrtimin e nj\u00eb imazhi.<br \/>\ndocker run &lt;&gt; \u2014 nisni nj\u00eb konteiner.<br \/>\ndocker rm &lt;&gt; \u2014 fshini nj\u00eb konteiner.<br \/>\ndocker logs &lt;&gt; \u2014 loget e konteinerit<br \/>\ndocker start\/stop\/restart &lt;&gt; \u2014 punoni me konteinerin\n<\/p>\n<p>N\u00ebse e zot\u00ebroni k\u00ebto komanda dhe do t'i p\u00ebrdorni me besim, at\u00ebher\u00eb llogaritni se keni m\u00ebsuar Docker n\u00eb nivelin e p\u00ebrdoruesit me 70%.<\/p>\n<p><\/p>\n<p><u>Dockerfile<\/u> \u2014 udh\u00ebzimi p\u00ebr t\u00eb krijuar nj\u00eb imazh. Pothuajse \u00e7do komand\u00eb n\u00eb udh\u00ebzim \u00ebsht\u00eb nj\u00eb shtres\u00eb e re. Le t\u00eb shohim n\u00ebp\u00ebrmjet nj\u00eb shembulli.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr e historis\u00eb dhe abstraksioneve kryesore\" src=\"\/wp-content\/uploads\/2020\/08\/4d61b58d0d0d8b2e4ddbbfe573f34f7e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb si duket nj\u00eb Dockerfile: nga ana e majt\u00eb komandat, nga ana e djatht\u00eb \u2014 argumentet. \u00c7do komand\u00eb q\u00eb \u00ebsht\u00eb k\u00ebtu (dhe n\u00eb fakt shkruhet n\u00eb Dockerfile) krijon nj\u00eb sloj t\u00eb ri n\u00eb Image. <\/p>\n<p><\/p>\n<p>\u0414\u0430\u0436\u0435 \u0433\u043b\u044f\u0434\u044f \u043d\u0430 \u043b\u0435\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c: \u00ab\u0441\u043e\u0437\u0434\u0430\u0439 \u043d\u0430\u043c \u043f\u0430\u043f\u043a\u0443\u00bb \u2014 \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0439. \u00ab\u0421\u0434\u0435\u043b\u0430\u0439 \u043f\u0430\u043f\u043a\u0443 \u0440\u0430\u0431\u043e\u0447\u0435\u0439\u00bb \u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0439, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0421\u043b\u043e\u0451\u043d\u044b\u0439 \u043f\u0438\u0440\u043e\u0433 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0436\u0438\u0437\u043d\u044c. \u0415\u0441\u043b\u0438 \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d Dockerfile \u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u0447\u0442\u043e-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u044e \u2014 \u0437\u0430\u043f\u0443\u0449\u0443 \u043d\u0435 &quot;python&quot; &quot;main.py&quot;, \u0430 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u043e\u0435, \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u2014 \u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u043b\u043e\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b, \u043a\u0430\u043a \u043a\u0435\u0448.<\/p>\n<p><\/p>\n<p><u>Image<\/u> \u2014 kjo \u00ebsht\u00eb paketa e kontejnerit, nga imazhi fillojn\u00eb kontejner\u00ebt. N\u00ebse e shohim Docker nga k\u00ebndv\u00ebshtrimi i menaxherit t\u00eb paketave (si t\u00eb punojm\u00eb me deb ose rpm-paketat), at\u00ebher\u00eb imazhi \u2014 \u00ebsht\u00eb n\u00eb thelb nj\u00eb rpm-paket\u00eb. P\u00ebrmes yum install mund t\u00eb vendosim aplikacionin, ta fshijm\u00eb, ta gjejm\u00eb n\u00eb depo, ta shkarkojm\u00eb. K\u00ebtu \u00ebsht\u00eb p\u00ebraf\u00ebrsisht e nj\u00ebjta gj\u00eb: nga imazhi fillojn\u00eb kontejner\u00ebt, ata ruhen n\u00eb Docker registry (po ashtu si me yum, n\u00eb depo), dhe \u00e7do imazh ka nj\u00eb hash SHA-256, em\u00ebr dhe tag.<\/p>\n<p><\/p>\n<p>Imazhi krijohet sipas udh\u00ebzimeve n\u00eb Dockerfile. \u00c7do udh\u00ebzim nga Dockerfile krijon nj\u00eb shtres\u00eb t\u00eb re. Shtresat mund t\u00eb rishfryt\u00ebzohen.<\/p>\n<p><\/p>\n<p><u>Docker registry<\/u> \u2014 \u00ebsht\u00eb nj\u00eb depo e imazheve Docker. N\u00eb ngjashm\u00ebri me OS-n\u00eb, Docker ka nj\u00eb regjist\u00ebr publik standard \u2014 dockerhub. Por \u00ebsht\u00eb e mundur t\u00eb krijoni regjistrin tuaj, Docker registry tuaj. <\/p>\n<p><\/p>\n<p><u>Konteineri<\/u> \u2014 \u00ebsht\u00eb ajo q\u00eb ekzekutohet nga imazhi. Nga udh\u00ebzimi n\u00eb Dockerfile krijuam imazhin, pastaj ne e ekzekutojm\u00eb nga ky imazh. Ky kontejner \u00ebsht\u00eb i izoluar nga kontejner\u00ebt e tjer\u00eb dhe duhet t\u00eb p\u00ebrmbaj\u00eb gjith\u00e7ka t\u00eb nevojshme p\u00ebr funksionimin e aplikacionit. Gjithashtu, nj\u00eb kontejner \u2014 nj\u00eb proces. Ndodhin raste q\u00eb duhet t\u00eb krijoni dy procese, por kjo \u00ebsht\u00eb pak n\u00eb kund\u00ebrshtim me ideologjin\u00eb e Docker.<\/p>\n<p><\/p>\n<p>K\u00ebrkesa \"nj\u00eb kontejner \u2014 nj\u00eb proces\" lidhet me PID Namespace. Kur nj\u00eb proces startup me PID 1 n\u00eb Namespace, n\u00ebse ai ndalon papritur, at\u00ebher\u00eb i gjith\u00eb kontejneri ndalon gjithashtu. N\u00ebse aty jan\u00eb aktivizuar dy procese: nj\u00eb mbijeton, nd\u00ebrsa tjetri ka vdekur, kontejneri do t\u00eb vazhdoj\u00eb t\u00eb jetoj\u00eb. Por kjo \u00ebsht\u00eb n\u00eb lidhje me Praktikat m\u00eb t\u00eb Mira, ne do t\u00eb flasim p\u00ebr to n\u00eb materiale t\u00eb tjera.<\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb studiuar m\u00eb n\u00eb detaje ve\u00e7orit\u00eb dhe programin e plot\u00eb t\u00eb kursit, mund t\u00eb ndiqni lidhjen: \"<noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/2patKQ\">Kursi video p\u00ebr Docker<\/a><\/noindex>\u00bb. <\/p>\n<p><\/p>\n<p><em>Autori: Marsel Ibajev, administrator i certifikuar Kubernetes, inxhinier praktik n\u00eb kompanin\u00eb Southbridge, fol\u00ebs dhe zhvillues kursesh n\u00eb Sl\u00ebrm.<\/em><\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/515508\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>10 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u0432 \u0421\u043b\u0451\u0440\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e\u043a\u0443\u0440\u0441 \u043f\u043e Docker, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439 \u0434\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0435\u0442\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f Docker \u0438 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f\u0445: Image, Cli, Dockerfile. \u041b\u0435\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u043e\u0432\u0438, \u0430\u043f\u043f\u0435\u043d\u0434\u0438\u043a\u0441\u0430 \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91906,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91905","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"10 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u0432 \u0421\u043b\u0451\u0440\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e\u043a\u0443\u0440\u0441 \u043f\u043e Docker, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439 \u0434\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0435\u0442\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f Docker \u0438 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f\u0445: Image, Cli, Dockerfile. \u041b\u0435\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u043e\u0432\u0438, \u0430\u043f\u043f\u0435\u043d\u0434\u0438\u043a\u0441\u0430 \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f.\" \/>\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\/chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Docker: \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"10 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u0432 \u0421\u043b\u0451\u0440\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e\u043a\u0443\u0440\u0441 \u043f\u043e Docker, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439 \u0434\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0435\u0442\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f Docker \u0438 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f\u0445: Image, Cli, Dockerfile. \u041b\u0435\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u043e\u0432\u0438, \u0430\u043f\u043f\u0435\u043d\u0434\u0438\u043a\u0441\u0430 \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii\" \/>\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=\"2020-08-20T05:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-20T05:42:23+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\udd47\u00c7far\u00eb \u00ebsht\u00eb Docker: nj\u00eb ekskurs i shkurt\u00ebr n\u00eb histori dhe abstraksionet kryesore | ProHoster","description":"m\u00eb 10 gusht n\u00eb Sl\u00ebrm filloi nj\u00eb kurs video mbi Docker, n\u00eb t\u00eb cilin analizojm\u00eb at\u00eb plot\u00ebsisht \u2014 nga abstraksionet e tij themelore deri te parametrat e rrjetit. N\u00eb k\u00ebt\u00eb artikull do t\u00eb flasim p\u00ebr historin\u00eb e shfaqjes s\u00eb Docker dhe abstraksionet e tij kryesore: Image, Cli, Dockerfile. Lezioni \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr fillestar\u00ebt, prandaj nuk do t\u00eb jet\u00eb interesante p\u00ebr p\u00ebrdoruesit e p\u00ebrvoj\u00ebs. Nuk do t\u00eb ket\u00eb gjak, apendiks dhe zhytje t\u00eb thell\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii","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\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Docker: \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 | ProHoster","og:description":"10 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u0432 \u0421\u043b\u0451\u0440\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e\u043a\u0443\u0440\u0441 \u043f\u043e Docker, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439 \u0434\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0435\u0442\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f Docker \u0438 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f\u0445: Image, Cli, Dockerfile. \u041b\u0435\u043a\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u043e\u0432\u0438, \u0430\u043f\u043f\u0435\u043d\u0434\u0438\u043a\u0441\u0430 \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/chto-takoe-docker-kratkij-ekskurs-v-istoriyu-i-osnovnye-abstrakczii","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":"2020-08-20T05:42:23+00:00","article:modified_time":"2020-08-20T05:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91905","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:18:28","updated":"2022-10-01 05:09:53"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91905","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=91905"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91905\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/91906"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=91905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=91905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=91905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}