{"id":32873,"date":"2019-10-31T21:49:25","date_gmt":"2019-10-31T18:49:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/izuchaem-docker-chast-6-rabota-s-dannymi\/"},"modified":"2019-10-31T21:49:25","modified_gmt":"2019-10-31T18:49:25","slug":"izuchaem-docker-chast-6-rabota-s-dannymi","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","title":{"rendered":"Duke studiuar Docker, pjesa 6: puna me t\u00eb dh\u00ebnat","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>N\u00eb pjes\u00ebn e sotme t\u00eb p\u00ebrkthimit t\u00eb seris\u00eb s\u00eb materialeve mbi Docker, do t\u00eb flasim p\u00ebr pun\u00ebn me t\u00eb dh\u00ebnat. N\u00eb ve\u00e7anti, p\u00ebr volumet Docker. N\u00eb k\u00ebto materiale, ne vazhdimisht kemi krahasuar mekanizmat e programit Docker me krahasime t\u00eb ndryshme kulinarike. Nuk do t\u00eb shk\u00ebputemi nga kjo tradit\u00eb as tani. T\u00eb dh\u00ebnat n\u00eb Docker le t\u00eb jen\u00eb er\u00ebza. N\u00eb bot\u00eb ka shum\u00eb lloje er\u00ebzash, po ashtu n\u00eb Docker ka shum\u00eb m\u00ebnyra p\u00ebr t\u00eb punuar me t\u00eb dh\u00ebna.<\/p>\n<p>\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/438796\/\">Pjesa 1: themellet<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/439978\/\">Pjesa 2: terminologji dhe koncepte<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/439980\/\">Pjesa 3: skedar\u00ebt Dockerfile<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/440658\/\">Pjesa 4: zvog\u00eblimi i madh\u00ebsive t\u00eb imazheve dhe p\u00ebrshpejtimi i nd\u00ebrtimit t\u00eb tyre<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/440660\/\">Pjesa 5: komandat<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/441574\/\">Pjesa 6: pun\u00eb me t\u00eb dh\u00ebna<\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/441574\/\"><img decoding=\"async\" alt=\"Duke studiuar Docker, pjesa 6: puna me t\u00eb dh\u00ebnat\" src=\"\/wp-content\/uploads\/2019\/05\/b46a9525df1a3ed70d8e2625fbfd42f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMbani parasysh se ky material \u00ebsht\u00eb p\u00ebrgatitur duke p\u00ebrdorur motorin Docker version 18.09.1 dhe API version <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/api\/version-history\/\">1.39<\/a><\/noindex>.<\/p>\n<p>T\u00eb dh\u00ebnat n\u00eb Docker mund t\u00eb ruhen ose p\u00ebrkoh\u00ebsisht, ose p\u00ebrhersh\u00ebm. Le t\u00eb fillojm\u00eb me t\u00eb dh\u00ebnat p\u00ebrkoh\u00ebsisht.<\/p>\n<h2>Ruajtja p\u00ebrkoh\u00ebsisht e t\u00eb dh\u00ebnave<\/h2>\n<p>\nN\u00eb p\u00ebrmbajtjen e kontejner\u00ebve Docker, organizimi i pun\u00ebs me t\u00eb dh\u00ebnat p\u00ebrkoh\u00ebsisht mund t\u00eb b\u00ebhet n\u00eb dy m\u00ebnyra.<\/p>\n<p>Sipas parazgjedhjes, skedar\u00ebt e krijuar nga aplikacioni q\u00eb punon n\u00eb kontejner ruhen n\u00eb layerin e kontejnerit q\u00eb mb\u00ebshtet shkrimin. P\u00ebr t\u00eb funksionuar ky mekaniz\u00ebm, nuk \u00ebsht\u00eb e nevojshme t\u00eb konfiguroni ndonj\u00eb gj\u00eb n\u00eb ve\u00e7anti. K\u00ebshtu \u00ebsht\u00eb e lir\u00eb dhe e leht\u00eb. Aplikacionit mjafton t\u00eb ruaj\u00eb t\u00eb dh\u00ebnat dhe t\u00eb vazhdoj\u00eb me pun\u00ebt e veta. Megjithat\u00eb, pasi kontejneri t\u00eb mos ekzistoj\u00eb m\u00eb, do t\u00eb zhduken edhe t\u00eb dh\u00ebnat e ruajtura n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb.<\/p>\n<p>P\u00ebr ruajtjen e skedar\u00ebve p\u00ebrkoh\u00ebsisht n\u00eb Docker, mund t\u00eb p\u00ebrdorim nj\u00eb zgjidhje tjet\u00ebr, e cila \u00ebsht\u00eb e p\u00ebrshtatshme p\u00ebr ato raste kur k\u00ebrkohet nj\u00eb nivel m\u00eb i lart\u00eb performanc\u00ebs, krahasuar me at\u00eb q\u00eb arrihet duke p\u00ebrdorur mekanizmin standard t\u00eb ruajtjes p\u00ebrkoh\u00ebsisht t\u00eb t\u00eb dh\u00ebnave. N\u00ebse nuk keni nevoj\u00eb q\u00eb t\u00eb dh\u00ebnat tuaja t\u00eb ruhen m\u00eb gjat\u00eb se sa ekziston kontejneri, mund t\u00eb lidhni me kontejnerin tmpfs - nj\u00eb ruajtje p\u00ebrkoh\u00ebsisht informacionesh, e cila p\u00ebrdor RAM-in e hostit. Kjo do t\u00eb lejoj\u00eb p\u00ebrshpejtimin e operacioneve t\u00eb shkrimit dhe leximit t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p>Shpesh ndodh q\u00eb t\u00eb dh\u00ebnat duhet t\u00eb ruhen dhe pas ikjes s\u00eb kontejnerit. P\u00ebr k\u00ebt\u00eb, do na duhen mekanizmat e ruajtjes p\u00ebrhershm\u00ebrisht t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<h2>Ruajtje e p\u00ebrhershme e t\u00eb dh\u00ebnave<\/h2>\n<p>\nEkzistojn\u00eb dy m\u00ebnyra p\u00ebr t\u00eb zgjasin jet\u00ebn e t\u00eb dh\u00ebnave m\u00eb gjat\u00eb se koha e jet\u00ebs s\u00eb kontejnerit. Nj\u00ebra nga k\u00ebto \u00ebsht\u00eb p\u00ebrdorimi i teknologjis\u00eb 'bind mount'. Me k\u00ebt\u00eb qasje, n\u00eb nj\u00eb kontejner mund t\u00eb montoni, p\u00ebr shembull, nj\u00eb dosje q\u00eb ekziston n\u00eb t\u00eb v\u00ebrtet\u00eb. Proceset q\u00eb ndodhen jasht\u00eb Docker mund t\u00eb punojn\u00eb me t\u00eb dh\u00ebnat q\u00eb ruhen n\u00eb at\u00eb dosje. Ja se si <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/\">duken<\/a><\/noindex> montimi tmpfs dhe teknologjia 'bind mount'.<\/p>\n<p><img decoding=\"async\" alt=\"Duke studiuar Docker, pjesa 6: puna me t\u00eb dh\u00ebnat\" src=\"\/wp-content\/uploads\/2019\/05\/73b9b7fd59b1321edb9f58953285d8d5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Montimi tmpfs dhe 'bind mount'<\/i><\/p>\n<p>Disavantazhet e p\u00ebrdorimit t\u00eb teknologjis\u00eb 'bind mount' jan\u00eb se p\u00ebrdorimi i saj e komplikon kopjimin e t\u00eb dh\u00ebnave, migron e t\u00eb dh\u00ebnave, ndarjen e t\u00eb dh\u00ebnave nd\u00ebrmjet disa kontejner\u00ebve. \u00cbsht\u00eb shum\u00eb m\u00eb mir\u00eb t\u00eb p\u00ebrdorni v\u00ebllime Docker p\u00ebr ruajtje t\u00eb p\u00ebrhershme t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<h2>V\u00ebllimet Docker<\/h2>\n<p>\nNj\u00eb v\u00ebllim \u00ebsht\u00eb nj\u00eb sistem skedash q\u00eb ndodhet n\u00eb makin\u00eb prit\u00ebse jasht\u00eb kontejner\u00ebve. Docker merret me krijimin dhe menaxhimin e v\u00ebllimeve. K\u00ebtu jan\u00eb pron\u00ebsit\u00eb kryesore t\u00eb v\u00ebllimeve Docker:<\/p>\n<ul>\n<li>Ato p\u00ebrfaq\u00ebsojn\u00eb mjete p\u00ebr ruajtjen e p\u00ebrhershme t\u00eb informacionit.<\/li>\n<li>Ato jan\u00eb t\u00eb pavarura dhe t\u00eb ndara nga kontejner\u00ebt.<\/li>\n<li>Ato mund t\u00eb p\u00ebrdoren n\u00eb p\u00ebrbashk\u00ebti nga kontejner\u00eb t\u00eb ndrysh\u00ebm.<\/li>\n<li>Ato lejojn\u00eb organizimin efikas t\u00eb leximit dhe shkruarjes s\u00eb t\u00eb dh\u00ebnave.<\/li>\n<li>V\u00ebllimet mund t\u00eb vendosen n\u00eb burimet e ofruesve t\u00eb cloud-it t\u00eb larg\u00ebt.<\/li>\n<li>Ato mund t\u00eb enkryptohet.<\/li>\n<li>Ato mund t\u00eb ken\u00eb emra.<\/li>\n<li>Nj\u00eb kontejner mund t\u00eb organizoj\u00eb p\u00ebrmbushjen e parakohshme t\u00eb v\u00ebllimit me t\u00eb dh\u00ebna.<\/li>\n<li>Ato jan\u00eb t\u00eb p\u00ebrshtatshme p\u00ebr testim.<\/li>\n<\/ul>\n<p>\nSi\u00e7 e shihni, v\u00ebllimet Docker kan\u00eb pron\u00ebsi t\u00eb shk\u00eblqyera. Le t\u00eb flasim se si t'i krijojm\u00eb ato.<\/p>\n<h2>Krijimi i v\u00ebllimeve<\/h2>\n<p>\nV\u00ebllimet mund t\u00eb krijohen p\u00ebrmes Docker ose me k\u00ebrkesa n\u00eb API.<\/p>\n<p>K\u00ebtu \u00ebsht\u00eb nj\u00eb udh\u00ebzim n\u00eb Dockerfile q\u00eb lejon krijimin e nj\u00eb v\u00ebllimi gjat\u00eb startimit t\u00eb kontejnerit.<\/p>\n<pre><code class=\"plaintext\">VOLUME \/my_volume<\/code><\/pre>\n<p>\nDuke p\u00ebrdorur nj\u00eb udh\u00ebzim t\u00eb till\u00eb Docker, pas krijimit t\u00eb kontejnerit, do t\u00eb krijohet nj\u00eb v\u00ebllim q\u00eb p\u00ebrmban t\u00eb dh\u00ebnat q\u00eb tashm\u00eb ekzistojn\u00eb n\u00eb vendin e caktuar. Ju lutem vini re se n\u00ebse krijoni nj\u00eb v\u00ebllim me p\u00ebrdorimin e Dockerfile, kjo nuk ju lirojn\u00eb nga nevoja p\u00ebr t\u00eb specifikuar pik\u00ebn e montimit t\u00eb v\u00ebllimit.<\/p>\n<p>V\u00ebllimet n\u00eb Dockerfile mund t\u00eb krijohen gjithashtu duke p\u00ebrdorur formatin JSON.<\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, v\u00ebllimet mund t\u00eb krijohen p\u00ebrmes komand\u00ebs n\u00eb linj\u00ebn e komand\u00ebs gjat\u00eb pun\u00ebs s\u00eb kontejnerit.<\/p>\n<h2>Puna me v\u00ebllimet nga linja e komand\u00ebs<\/h2>\n<p><\/p>\n<h3>\u258dKrijimi i nj\u00eb v\u00ebllimi<\/h3>\n<p>\nNj\u00eb v\u00ebllim t\u00eb pavarur mund ta krijoni me komand\u00ebn n\u00eb vijim:<\/p>\n<pre><code class=\"plaintext\">docker volume create \u2014-name my_volume<\/code><\/pre>\n<p><\/p>\n<h3>\u258dT\u00eb m\u00ebsosh informacion mbi v\u00ebllimet<\/h3>\n<p>\nP\u00ebr t\u00eb par\u00eb list\u00ebn e volumave Docker, p\u00ebrdorni komand\u00ebn e m\u00ebposhtme:<\/p>\n<pre><code class=\"plaintext\">docker volume ls<\/code><\/pre>\n<p>\nP\u00ebr t\u00eb hetuar nj\u00eb volum specifik, mund ta b\u00ebni k\u00ebshtu:<\/p>\n<pre><code class=\"plaintext\">docker volume inspect my_volume<\/code><\/pre>\n<p><\/p>\n<h3>\u258dFshirja e volumit<\/h3>\n<p>\nNj\u00eb volum mund t\u00eb fshihet ashtu:<\/p>\n<pre><code class=\"plaintext\">docker volume rm my_volume<\/code><\/pre>\n<p>\nP\u00ebr t\u00eb fshir\u00eb t\u00eb gjitha volumet q\u00eb nuk p\u00ebrdoren nga kontejner\u00ebt, mund t\u00eb p\u00ebrdorni k\u00ebt\u00eb komand\u00eb:<\/p>\n<pre><code class=\"plaintext\">docker volume prune<\/code><\/pre>\n<p>\nPara fshirjes s\u00eb volumve, Docker do t\u00eb k\u00ebrkoj\u00eb konfirmimin tuaj p\u00ebr t\u00eb kryer k\u00ebt\u00eb operacion.<\/p>\n<p>N\u00ebse volumi \u00ebsht\u00eb i lidhur me ndonj\u00eb kontejner, ai volum nuk mund t\u00eb fshihet derisa t\u00eb fshihet kontejneri p\u00ebrkat\u00ebs. Po ashtu, edhe n\u00ebse kontejneri \u00ebsht\u00eb fshir\u00eb, Docker nuk e kupton gjithmon\u00eb k\u00ebt\u00eb. N\u00ebse ndodh kjo, mund t\u00eb p\u00ebrdorni komand\u00ebn e m\u00ebposhtme:<\/p>\n<pre><code class=\"plaintext\">docker system prune<\/code><\/pre>\n<p>\nAjo \u00ebsht\u00eb e destinuar p\u00ebr pastrimin e burimeve Docker. Pas ekzekutimit t\u00eb k\u00ebsaj komande, duhet t\u00eb keni mund\u00ebsi p\u00ebr t\u00eb fshir\u00eb volumet, statusi i t\u00eb cilave ishte p\u00ebrcaktuar gabimisht m\u00eb par\u00eb.<\/p>\n<h2>Flamujt \u2014mount dhe \u2014volume<\/h2>\n<p>\nP\u00ebr t\u00eb punuar me volumet, gjat\u00eb thirrjes s\u00eb komand\u00ebs <code>docker<\/code>, shpesh do t'ju duhet t\u00eb p\u00ebrdorni flagjet. P\u00ebr shembull, p\u00ebr t\u00eb krijuar nj\u00eb volum gjat\u00eb krijimit t\u00eb kontejnerit mund t\u00eb p\u00ebrdorni k\u00ebt\u00eb sintaks\u00eb:<\/p>\n<pre><code class=\"plaintext\">docker container run --mount source=my_volume, target=\\\/container\\\/path\\\/for\\\/volume my_image<\/code><\/pre>\n<p>\nN\u00eb dit\u00ebt e vjetra (para vitit 2017) ishte popullor flagu <code>--volume<\/code>. Fillimisht ky flag (mund t\u00eb p\u00ebrdoret gjithashtu n\u00eb form\u00eb t\u00eb shkurtuar, at\u00ebher\u00eb duket si <code>-v<\/code>) u p\u00ebrdor p\u00ebr kontejner\u00eb t\u00eb vet\u00eb-pavarur, nd\u00ebrsa flagu <code>--mount<\/code> u p\u00ebrdor n\u00eb ambientin Docker Swarm. Megjithat\u00eb, duke filluar nga Docker 17.06, flagu <code>--mount<\/code> mund t\u00eb p\u00ebrdoret n\u00eb \u00e7do skenar.<\/p>\n<p>Duhet t\u00eb theksohet se, gjat\u00eb p\u00ebrdorimit t\u00eb flagut <code>--mount<\/code> , rritet sasia e t\u00eb dh\u00ebnave shtes\u00eb q\u00eb duhen specifikuar n\u00eb komand\u00eb, por p\u00ebr disa arsye, \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb p\u00ebrdoret ky flag, sesa <code>--volume<\/code>. Flag <code>--mount<\/code> -- \u00ebsht\u00eb mekanizmi i vet\u00ebm q\u00eb lejon pun\u00ebn me sh\u00ebrbime ose specifikimin e parametrave t\u00eb drejtuesit t\u00eb volumit. P\u00ebr m\u00eb tep\u00ebr, \u00ebsht\u00eb m\u00eb e leht\u00eb t\u00eb punosh me k\u00ebt\u00eb flag.<\/p>\n<p>N\u00eb shembujt ekzistues t\u00eb komandave t\u00eb orientuara ndaj pun\u00ebs me t\u00eb dh\u00ebna n\u00eb Docker, mund t\u00eb takoni shum\u00eb shembuj t\u00eb p\u00ebrdorimit t\u00eb flagut <code>-v<\/code>. Duke u p\u00ebrpjekur t\u00eb adaptoni k\u00ebto komanda p\u00ebr vete, merrni parasysh se flagjet <code>--mount<\/code> dhe <code>--volume<\/code> p\u00ebrdorin formate t\u00eb ndryshme parametrash. Pra, nuk mund t\u00eb z\u00ebvend\u00ebsoni thjesht <code>-v<\/code> n\u00eb <code>--mount<\/code> dhe t\u00eb merrni nj\u00eb komand\u00eb funksionale.<\/p>\n<p>Dallimi kryesor midis <code>--mount<\/code> dhe <code>--volume<\/code> p\u00ebrfshin faktin se, gjat\u00eb p\u00ebrdorimit t\u00eb flagut <code>--volume<\/code> t\u00eb gjith\u00eb parametrat mblidhen s\u00eb bashku, n\u00eb nj\u00eb fush\u00eb, nd\u00ebrsa gjat\u00eb p\u00ebrdorimit <code>--mount<\/code> parametrat ndahen.<\/p>\n<p>Kur punoni me <code>--mount<\/code> parametrat jan\u00eb t\u00eb paraqitura si \u00e7ifte \u00e7el\u00ebs-vler\u00eb, konkretisht, kjo duket si <code>key=value<\/code>. K\u00ebto \u00e7ifte ndahen me presje. Ja disa parametra t\u00eb p\u00ebrdorur shpesh <code>--mount<\/code>:<\/p>\n<ul>\n<li><code>lloji<\/code> \u2014 lloji i montimit. Vlera p\u00ebr \u00e7el\u00ebsin p\u00ebrkat\u00ebs mund t\u00eb jet\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/bind-mounts\/\">bind<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/\">volume<\/a><\/noindex> ose <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/tmpfs\/\">tmpfs<\/a><\/noindex>. K\u00ebtu flasim p\u00ebr volume, pra na intereson vlera <code>volume<\/code>.<\/li>\n<li><code>source<\/code> \u2014 burimi i montimit. P\u00ebr volumet e em\u00ebruara, ky \u00ebsht\u00eb emri i volumit. P\u00ebr volumet e paem\u00ebruara ky \u00e7el\u00ebs nuk tregohet. Ai mund t\u00eb shkurtosej n\u00eb <code>src<\/code>.<\/li>\n<li><code>destination<\/code> \u2014 rruga, ku skedari ose dosja montohet n\u00eb kontejner. Ky \u00e7el\u00ebs mund t\u00eb shkurtosej n\u00eb <code>dst<\/code> ose <code>target<\/code>.<\/li>\n<li><code>readonly<\/code> \u2014 montohet nj\u00eb volum, i cili \u00ebsht\u00eb i destinuar <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/#use-a-read-only-volume\">t\u00eb lexuesh\u00ebm vet\u00ebm<\/a><\/noindex>. P\u00ebrdorimi i k\u00ebtij \u00e7el\u00ebsi nuk \u00ebsht\u00eb i detyruesh\u00ebm, vlera e tij nuk caktohet.<\/li>\n<\/ul>\n<p>\nJa nj\u00eb shembull i p\u00ebrdorimit <code>--mount<\/code> me shum\u00eb parametrat:<\/p>\n<pre><code class=\"plaintext\">docker run --mount type=volume,source=volume_name,destination=\\\/path\\\/in\\\/container,readonly my_image<\/code><\/pre>\n<p><\/p>\n<h2>P\u00ebrfundime<\/h2>\n<p>\nJa komandat e dobishme, q\u00eb mund t\u00eb p\u00ebrdoren kur punoni me volume Docker:<\/p>\n<ul>\n<li><code>docker volume create<\/code><\/li>\n<li><code>docker volume ls<\/code><\/li>\n<li><code>docker volume inspect<\/code><\/li>\n<li><code>docker volume rm<\/code><\/li>\n<li><code>docker volume prune<\/code><\/li>\n<\/ul>\n<p>\nJa lista e parametrave t\u00eb p\u00ebrdorur shpesh p\u00ebr <code>--mount<\/code>, t\u00eb aplikuesh\u00ebm n\u00eb komand\u00ebn e form\u00ebs <code>docker run --mount my_options my_image<\/code>:<\/p>\n<ul>\n<li><code>type=volume<\/code><\/li>\n<li><code>source=volume_name<\/code><\/li>\n<li><code>destination=\\\/path\\\/in\\\/container<\/code><\/li>\n<li><code>readonly<\/code><\/li>\n<\/ul>\n<p>\nTani, q\u00eb kemi p\u00ebrfunduar k\u00ebt\u00eb seris\u00eb t\u00eb materialeve mbi Docker, \u00ebsht\u00eb koha p\u00ebr t\u00eb th\u00ebn\u00eb disa fjal\u00eb p\u00ebr at\u00eb, ku ata q\u00eb studiojn\u00eb Docker mund t\u00eb vazhdojn\u00eb m\u00eb tej. <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.freecodecamp.org\/a-beginner-friendly-introduction-to-containers-vms-and-docker-79a9e3e119b\">Ja<\/a><\/noindex> nj\u00eb artikull i shk\u00eblqyer mbi Docker. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Docker-Deep-Dive-Nigel-Poulton-ebook\/dp\/B01LXWQUFF\">Ja<\/a><\/noindex> libri mbi Docker (kur bleni k\u00ebt\u00eb lib\u00ebr, p\u00ebrpiquni t\u00eb siguroni edicionin m\u00eb t\u00eb ri t\u00eb tij). <noindex><a rel=\"nofollow\" href=\"https:\/\/dockerbook.com\/\">Ja<\/a><\/noindex> nj\u00eb lib\u00ebr tjet\u00ebr, i cili do t\u00eb p\u00ebrputhej me ata q\u00eb mendojn\u00eb se praktika \u00ebsht\u00eb m\u00ebnyra m\u00eb e mir\u00eb p\u00ebr t\u00eb m\u00ebsuar teknologjit\u00eb.<\/p>\n<p><b>T\u00eb nderuar lexues!<\/b> \u00c7far\u00eb materialesh mbi Docker do t\u00eb rekomandonit t\u00eb studiojn\u00eb fillestar\u00ebt?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Duke studiuar Docker, pjesa 6: puna me t\u00eb dh\u00ebnat\" src=\"\/wp-content\/uploads\/2019\/05\/78a5dd35cfae6d1e291f175957207436.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/441574\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0435\u0440\u0438\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043e Docker \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 \u043e \u0442\u043e\u043c\u0430\u0445 Docker. \u0412 \u044d\u0442\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445 \u043c\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b Docker \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u044a\u0435\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044f\u043c\u0438. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0442 \u044d\u0442\u043e\u0439 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0438 \u0437\u0434\u0435\u0441\u044c. \u0414\u0430\u043d\u043d\u044b\u0435 \u0432 Docker \u043f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0443\u0442 \u0441\u043f\u0435\u0446\u0438\u044f\u043c\u0438. \u0412 \u043c\u0438\u0440\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0434\u043e\u0432 \u0441\u043f\u0435\u0446\u0438\u0439, \u0430 \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24642,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0435\u0440\u0438\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043e Docker \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 \u043e \u0442\u043e\u043c\u0430\u0445 Docker.\" \/>\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\/izuchaem-docker-chast-6-rabota-s-dannymi\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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\u0418\u0437\u0443\u0447\u0430\u0435\u043c Docker, \u0447\u0430\u0441\u0442\u044c 6: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0435\u0440\u0438\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043e Docker \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 \u043e \u0442\u043e\u043c\u0430\u0445 Docker.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi\" \/>\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:49:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:49:25+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\udd47T\u00eb m\u00ebsojm\u00eb Docker, pjesa 6: pun\u00eb me t\u00eb dh\u00ebna | ProHoster","description":"N\u00eb k\u00ebt\u00eb pjes\u00eb t\u00eb sotme t\u00eb p\u00ebrkthimit t\u00eb seris\u00eb s\u00eb materialeve mbi Docker, ne do t\u00eb flasim p\u00ebr pun\u00ebn me t\u00eb dh\u00ebnat. Sakt\u00ebsisht \u2014 p\u00ebr volumet Docker.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","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\u0418\u0437\u0443\u0447\u0430\u0435\u043c Docker, \u0447\u0430\u0441\u0442\u044c 6: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 | ProHoster","og:description":"\u0412 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0435\u0440\u0438\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043e Docker \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 \u043e \u0442\u043e\u043c\u0430\u0445 Docker.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","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:49:25+00:00","article:modified_time":"2019-10-31T18:49:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32873","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"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 12:57:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:56:03","updated":"2026-08-11 12:50:34","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\/32873","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=32873"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24642"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}