{"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\/sk\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","title":{"rendered":"Preh\u013ead Dockeru, \u010das\u0165 6: pr\u00e1ca s d\u00e1tami","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V dne\u0161nej \u010dasti prekladu s\u00e9rie materi\u00e1lov o Dockeri sa budeme zaobera\u0165 pr\u00e1cou s d\u00e1tami. Konkr\u00e9tne sa pozrieme na objemy Dockeru. V t\u00fdchto materi\u00e1loch sme neust\u00e1le porovn\u00e1vali softv\u00e9rov\u00e9 mechanizmy Dockeru s r\u00f4znymi jedlami. Neodbo\u010d\u00edme od tejto trad\u00edcie ani tu. D\u00e1tam v Dockeri m\u00f4\u017eeme da\u0165 podobu koren\u00edn. Na svete existuje mno\u017estvo druhov koren\u00edn a v Dockeri mno\u017estvo sp\u00f4sobov pr\u00e1ce s d\u00e1tami.<\/p>\n<p>\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/438796\/\">\u010das\u0165 1: z\u00e1klady<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/439978\/\">\u010das\u0165 2: pojmy a koncepcie<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/439980\/\">\u010das\u0165 3: s\u00fabory Dockerfile<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/440658\/\">\u010das\u0165 4: zmen\u0161ovanie ve\u013ekosti obrazov a zr\u00fdchlenie ich zostavovania<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/440660\/\">\u010das\u0165 5: pr\u00edkazy<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/441574\/\">\u010das\u0165 6: pr\u00e1ca s d\u00e1tami<\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/441574\/\"><img decoding=\"async\" alt=\"Preh\u013ead Dockeru, \u010das\u0165 6: pr\u00e1ca s d\u00e1tami\" 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 \/>\nUpozor\u0148ujeme, \u017ee tento materi\u00e1l bol pripraven\u00fd pomocou enginu Docker verzie 18.09.1 a API verzie <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/api\/version-history\/\">1.39<\/a><\/noindex>.<\/p>\n<p>D\u00e1ta v Dockeri m\u00f4\u017eu by\u0165 ulo\u017een\u00e9 bu\u010f do\u010dasne, alebo trvalo. Za\u010dneme s do\u010dasn\u00fdmi d\u00e1tami.<\/p>\n<h2>Do\u010dasn\u00e9 ukladanie d\u00e1t<\/h2>\n<p>\nV dockerov\u00fdch kontajneroch je mo\u017en\u00e9 organizova\u0165 pr\u00e1cu s do\u010dasn\u00fdmi d\u00e1tami dvoma sp\u00f4sobmi.<\/p>\n<p>Predvolene s\u00fa s\u00fabory, ktor\u00e9 vytv\u00e1ra aplik\u00e1cia pracuj\u00faca v kontajneri, ukladan\u00e9 v vrstve kontajnera podporuj\u00facej z\u00e1pis. Aby tento mechanizmus fungoval, nie je potrebn\u00e9 ni\u010d \u0161peci\u00e1lne nastavova\u0165. Ide o lacn\u00e9 a \u00fa\u010dinn\u00e9 rie\u0161enie. Aplik\u00e1cii sta\u010d\u00ed jednoducho ulo\u017ei\u0165 \u00fadaje a pokra\u010dova\u0165 vo svojej pr\u00e1ci. Av\u0161ak, ke\u010f kontajner prestane existova\u0165, zmizn\u00fa aj \u00fadaje ulo\u017een\u00e9 t\u00fdmto jednoduch\u00fdm sp\u00f4sobom.<\/p>\n<p>Na ukladanie do\u010dasn\u00fdch s\u00faborov v Dockeri m\u00f4\u017eete vyu\u017ei\u0165 e\u0161te jedno rie\u0161enie, vhodn\u00e9 pre pr\u00edpady, ke\u010f je potrebn\u00fd vy\u0161\u0161\u00ed v\u00fdkon v porovnan\u00ed s t\u00fdm, ktor\u00fd je dosiahnute\u013en\u00fd pomocou \u0161tandardn\u00e9ho mechanizmu do\u010dasn\u00e9ho ukladania d\u00e1t. Ak nepotrebujete, aby va\u0161e d\u00e1ta boli ulo\u017een\u00e9 dlh\u0161ie, ako existuje kontajner, m\u00f4\u017eete pripoji\u0165 k kontajneru tmpfs - do\u010dasn\u00e9 \u00falo\u017eisko inform\u00e1ci\u00ed, ktor\u00e9 vyu\u017e\u00edva opera\u010dn\u00fa pam\u00e4\u0165 hostite\u013esk\u00e9ho syst\u00e9mu. To ur\u00fdchli vykon\u00e1vanie oper\u00e1ci\u00ed zapisovania a \u010d\u00edtania d\u00e1t.<\/p>\n<p>\u010casto sa st\u00e1va, \u017ee d\u00e1ta je potrebn\u00e9 uchov\u00e1va\u0165 aj po tom, ako kontajner prestane existova\u0165. Na to n\u00e1m pr\u00eddu vhod mechanizmy trval\u00e9ho ukladania d\u00e1t.<\/p>\n<h2>Trval\u00e9 ukladanie d\u00e1t<\/h2>\n<p>\nExistuj\u00fa dva sp\u00f4soby, ako pred\u013a\u017ei\u0165 \u017eivotnos\u0165 d\u00e1t nad r\u00e1mec \u017eivotnosti kontajnera. Jedn\u00fdm z pr\u00edstupov je technol\u00f3gia bind mount. Pri tomto pr\u00edstupe m\u00f4\u017eete k kontajneru pripoji\u0165 skuto\u010dne existuj\u00facu zlo\u017eku. S d\u00e1tami ulo\u017een\u00fdmi v tejto zlo\u017eke m\u00f4\u017eu pracova\u0165 aj procesy mimo Dockeru. Takto <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/\">vyzeraj\u00fa<\/a><\/noindex> pripojenie tmpfs a technol\u00f3gia bind mount.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead Dockeru, \u010das\u0165 6: pr\u00e1ca s d\u00e1tami\" src=\"\/wp-content\/uploads\/2019\/05\/73b9b7fd59b1321edb9f58953285d8d5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Pripojenie tmpfs a bind mount<\/i><\/p>\n<p>Nev\u00fdhody pou\u017e\u00edvania technol\u00f3gie bind mount spo\u010d\u00edvaj\u00fa v tom, \u017ee komplikuje z\u00e1lohovanie d\u00e1t, migr\u00e1ciu d\u00e1t a zdie\u013eanie d\u00e1t medzi viacer\u00fdmi kontajnermi. Pre trval\u00e9 uchov\u00e1vanie d\u00e1t je ove\u013ea lep\u0161ie pou\u017e\u00edva\u0165 Docker volume.<\/p>\n<h2>Docker volume<\/h2>\n<p>\nVolume je s\u00faborov\u00fd syst\u00e9m, ktor\u00fd sa nach\u00e1dza na hostite\u013eskom stroji mimo kontajnerov. Spravovanie a vytv\u00e1ranie volume zabezpe\u010duje Docker. Tu s\u00fa hlavn\u00e9 vlastnosti Docker volume:<\/p>\n<ul>\n<li>S\u00fa to prostriedky na trval\u00e9 uchov\u00e1vanie inform\u00e1ci\u00ed.<\/li>\n<li>S\u00fa samostatn\u00e9 a oddelen\u00e9 od kontajnerov.<\/li>\n<li>M\u00f4\u017eu sa zdie\u013ea\u0165 medzi r\u00f4znymi kontajnermi.<\/li>\n<li>Umo\u017e\u0148uj\u00fa efekt\u00edvne \u010d\u00edtanie a zapisovanie d\u00e1t.<\/li>\n<li>Volume sa daj\u00fa umiestni\u0165 na zdrojoch vzdialen\u00e9ho cloudov\u00e9ho poskytovate\u013ea.<\/li>\n<li>M\u00f4\u017eu sa \u0161ifrova\u0165.<\/li>\n<li>M\u00f4\u017eu sa naz\u00fdva\u0165.<\/li>\n<li>Kontajner m\u00f4\u017ee vopred naplni\u0165 volume d\u00e1tami.<\/li>\n<li>S\u00fa vhodn\u00e9 na testovanie.<\/li>\n<\/ul>\n<p>\nAko vid\u00edte, Docker volume maj\u00fa vynikaj\u00face vlastnosti. Po\u010fme si poveda\u0165, ako ich vytv\u00e1ra\u0165.<\/p>\n<h2>Vytv\u00e1ranie volume<\/h2>\n<p>\nVolume m\u00f4\u017eete vytv\u00e1ra\u0165 pomocou Docker alebo prostredn\u00edctvom API po\u017eiadaviek.<\/p>\n<p>Tu je in\u0161trukcia v Dockerfile, ktor\u00e1 umo\u017e\u0148uje vytvori\u0165 volume pri spusten\u00ed kontajnera.<\/p>\n<pre><code class=\"plaintext\">VOLUME \/my_volume<\/code><\/pre>\n<p>\nPri pou\u017eit\u00ed takejto in\u0161trukcie Docker vytvor\u00ed volume obsahuj\u00face d\u00e1ta, ktor\u00e9 u\u017e s\u00fa na uvedenom mieste, po vytvoren\u00ed kontajnera. V\u0161imnite si, \u017ee ak vytv\u00e1rate volume pomocou Dockerfile, nezbavuje v\u00e1s to potreby uvies\u0165 bod pripojenia volume.<\/p>\n<p>Vytv\u00e1ra\u0165 volume v Dockerfile m\u00f4\u017eete aj v JSON form\u00e1te.<\/p>\n<p>Okrem toho je mo\u017en\u00e9 volume vytv\u00e1ra\u0165 pomocou pr\u00edkazov\u00e9ho riadku po\u010das behu kontajnera.<\/p>\n<h2>Pr\u00e1ca s volume z pr\u00edkazov\u00e9ho riadku<\/h2>\n<p><\/p>\n<h3>\u258dVytvorenie volume<\/h3>\n<p>\nSamostatn\u00e9 volume m\u00f4\u017eete vytvori\u0165 nasleduj\u00facim pr\u00edkazom:<\/p>\n<pre><code class=\"plaintext\">docker volume create --name my_volume<\/code><\/pre>\n<p><\/p>\n<h3>\u258dZ\u00edskanie inform\u00e1ci\u00ed o volume<\/h3>\n<p>\nAby ste si mohli zobrazi\u0165 zoznam Docker zv\u00e4zkov, pou\u017eite nasleduj\u00faci pr\u00edkaz:<\/p>\n<pre><code class=\"plaintext\">docker volume ls<\/code><\/pre>\n<p>\nKonkr\u00e9tny zv\u00e4zok m\u00f4\u017eete presk\u00fama\u0165 takto:<\/p>\n<pre><code class=\"plaintext\">docker volume inspect my_volume<\/code><\/pre>\n<p><\/p>\n<h3>\u258dOdstr\u00e1nenie zv\u00e4zku<\/h3>\n<p>\nZv\u00e4zok m\u00f4\u017eete odstr\u00e1ni\u0165 takto:<\/p>\n<pre><code class=\"plaintext\">docker volume rm my_volume<\/code><\/pre>\n<p>\nAk chcete odstr\u00e1ni\u0165 v\u0161etky zv\u00e4zky, ktor\u00e9 nie s\u00fa pou\u017e\u00edvan\u00e9 kontajnermi, m\u00f4\u017eete pou\u017ei\u0165 nasleduj\u00faci pr\u00edkaz:<\/p>\n<pre><code class=\"plaintext\">docker volume prune<\/code><\/pre>\n<p>\nPred odstr\u00e1nen\u00edm zv\u00e4zkov v\u00e1s Docker po\u017eiada o potvrdenie tejto oper\u00e1cie.<\/p>\n<p>Ak je zv\u00e4zok spojen\u00fd s nejak\u00fdm kontajnerom, tak\u00fd zv\u00e4zok nemo\u017eno odstr\u00e1ni\u0165, k\u00fdm nie je odstr\u00e1nen\u00fd pr\u00edslu\u0161n\u00fd kontajner. Aj ke\u010f je kontajner odstr\u00e1nen\u00fd, Docker to nemus\u00ed v\u017edy spr\u00e1vne pochopi\u0165. Ak k tomu d\u00f4jde, m\u00f4\u017eete pou\u017ei\u0165 nasleduj\u00faci pr\u00edkaz:<\/p>\n<pre><code class=\"plaintext\">docker system prune<\/code><\/pre>\n<p>\nTento pr\u00edkaz sl\u00fa\u017ei na \u010distenie zdrojov Docker. Po vykonan\u00ed tohto pr\u00edkazu by ste mali ma\u0165 mo\u017enos\u0165 odstr\u00e1ni\u0165 zv\u00e4zky, ktor\u00fdch stav bol predt\u00fdm nespr\u00e1vny.<\/p>\n<h2>Pr\u00edkazy &#8212;mount a &#8212;volume<\/h2>\n<p>\nPri pr\u00e1ci so zv\u00e4zkami budete pri volan\u00ed pr\u00edkazu <code>docker<\/code>\u010dasto musie\u0165 pou\u017e\u00edva\u0165 pr\u00edznaky. Napr\u00edklad, ak chcete vytvori\u0165 zv\u00e4zok pri vytv\u00e1ran\u00ed kontajnera, m\u00f4\u017eete pou\u017ei\u0165 tak\u00fato kon\u0161trukciu:<\/p>\n<pre><code class=\"plaintext\">docker container run --mount source=my_volume, target=\\\/container\\\/path\\\/for\\\/volume my_image<\/code><\/pre>\n<p>\nV minulosti (pred rokom 2017) bol popul\u00e1rny pr\u00edznak <code>--volume<\/code>. P\u00f4vodne sa tento pr\u00edznak (e\u0161te ho m\u00f4\u017eete pou\u017e\u00edva\u0165 v skr\u00e1tenej forme, vtedy vyzer\u00e1 ako <code>-v<\/code>) pou\u017e\u00edval pre samostatn\u00e9 kontajnery, zatia\u013e \u010do pr\u00edznak <code>--mount<\/code> bol ur\u010den\u00fd pre prostredie Docker Swarm. Av\u0161ak od verzie Docker 17.06 je mo\u017en\u00e9 pou\u017e\u00edva\u0165 pr\u00edznak <code>--mount<\/code> v ak\u00fdchko\u013evek sc\u00e9naroch.<\/p>\n<p>Je potrebn\u00e9 poznamena\u0165, \u017ee pri pou\u017e\u00edvan\u00ed pr\u00edznaku <code>--mount<\/code> sa zvy\u0161uje objem doplnkov\u00fdch \u00fadajov, ktor\u00e9 je potrebn\u00e9 uvies\u0165 v pr\u00edkaze, ale z nieko\u013ek\u00fdch d\u00f4vodov je lep\u0161ie pou\u017ei\u0165 pr\u00e1ve tento pr\u00edznak, a nie <code>--volume<\/code>. Pr\u00edznak <code>--mount<\/code> \u2014 je to jedin\u00fd mechanizmus, ktor\u00fd umo\u017e\u0148uje pracova\u0165 so slu\u017ebami alebo uv\u00e1dza\u0165 parametre ovl\u00e1da\u010da zv\u00e4zku. Okrem toho je jednoduch\u0161ie pracova\u0165 s t\u00fdmto pr\u00edznakom.<\/p>\n<p>Vo existuj\u00facich pr\u00edkladoch pr\u00edkazov, ktor\u00e9 sa zameriavaj\u00fa na pr\u00e1cu s \u00fadajmi v Dockeri, m\u00f4\u017eete stretn\u00fa\u0165 mno\u017estvo pr\u00edkladov pou\u017e\u00edvania pr\u00edznaku <code>-v<\/code>. Pri snahe prisp\u00f4sobi\u0165 si tieto pr\u00edkazy majte na pam\u00e4ti, \u017ee pr\u00edznaky <code>--mount<\/code> a <code>--volume<\/code> pou\u017e\u00edvaj\u00fa r\u00f4zne form\u00e1ty parametrov. To znamen\u00e1, \u017ee nem\u00f4\u017eete len jednoducho nahradi\u0165 <code>-v<\/code> na <code>--mount<\/code> a z\u00edska\u0165 funk\u010dn\u00fd pr\u00edkaz.<\/p>\n<p>Hlavn\u00fdm rozdielom medzi <code>--mount<\/code> a <code>--volume<\/code> je to, \u017ee pri pou\u017eit\u00ed pr\u00edznaku <code>--volume<\/code> sa v\u0161etky parametre zhroma\u017e\u010fuj\u00fa na jednom mieste, zatia\u013e \u010do pri pou\u017eit\u00ed <code>--mount<\/code> parametre s\u00fa oddelen\u00e9.<\/p>\n<p>Pri pr\u00e1ci s <code>--mount<\/code> parametre s\u00fa prezentovan\u00e9 ako p\u00e1ry k\u013e\u00fa\u010d-hodnota, konkr\u00e9tne to vyzer\u00e1 ako <code>key=value<\/code>. Tieto p\u00e1ry s\u00fa oddelen\u00e9 \u010diarkami. Tu s\u00fa \u010dasto pou\u017e\u00edvan\u00e9 parametre <code>--mount<\/code>:<\/p>\n<ul>\n<li><code>type<\/code> \u2014 typ pripojenia. Hodnotou pre zodpovedaj\u00faci k\u013e\u00fa\u010d m\u00f4\u017eu by\u0165 <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> alebo <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/tmpfs\/\">tmpfs<\/a><\/noindex>. Rozpr\u00e1vame sa tu o objemoch, teda n\u00e1s zauj\u00edma hodnota <code>volume<\/code>.<\/li>\n<li><code>source<\/code> \u2014 zdroj pripojenia. Pre pomenovan\u00e9 objemy je to \u2014 n\u00e1zov objemu. Pre nepomenovan\u00e9 objemy tento k\u013e\u00fa\u010d nie je uveden\u00fd. M\u00f4\u017ee by\u0165 skr\u00e1ten\u00fd na <code>src<\/code>.<\/li>\n<li><code>cie\u013e<\/code> \u2014 cesta, na ktor\u00fa je s\u00fabor alebo prie\u010dinok pripojen\u00fd v kontejnery. Tento k\u013e\u00fa\u010d m\u00f4\u017ee by\u0165 skr\u00e1ten\u00fd na <code>dst<\/code> alebo <code>target<\/code>.<\/li>\n<li><code>readonly<\/code> \u2014 pripoj\u00ed objem, ktor\u00fd je ur\u010den\u00fd <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/#use-a-read-only-volume\">iba na \u010d\u00edtanie<\/a><\/noindex>. Pou\u017eitie tohto k\u013e\u00fa\u010da nie je povinn\u00e9, hodnota mu nie je priraden\u00e1.<\/li>\n<\/ul>\n<p>\nTu je pr\u00edklad pou\u017eitia <code>--mount<\/code> s mnoh\u00fdmi parametrami:<\/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>Zhrnutie<\/h2>\n<p>\nTu s\u00fa u\u017eito\u010dn\u00e9 pr\u00edkazy, ktor\u00e9 m\u00f4\u017eete pou\u017e\u00edva\u0165 pri pr\u00e1ci s objemami 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>\nTu je zoznam \u010dasto pou\u017e\u00edvan\u00fdch parametrov pre <code>--mount<\/code>, aplikovate\u013en\u00fdch v pr\u00edkaze typu <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>\nTeraz, ke\u010f sme uzavreli t\u00fato s\u00e9riu materi\u00e1lov o Dockeri, pri\u0161iel \u010das poveda\u0165 p\u00e1r slov o tom, kam sa m\u00f4\u017eu t\u00ed, ktor\u00ed sa u\u010dia Docker, posun\u00fa\u0165 \u010falej. <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.freecodecamp.org\/a-beginner-friendly-introduction-to-containers-vms-and-docker-79a9e3e119b\">Tu s\u00fa<\/a><\/noindex> ve\u013ek\u00fd dobr\u00fd \u010dl\u00e1nok o Dockeri. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Docker-Deep-Dive-Nigel-Poulton-ebook\/dp\/B01LXWQUFF\">Tu s\u00fa<\/a><\/noindex> kniha o Dockeri (ke\u010f si t\u00fato knihu kupujete, sna\u017ete sa z\u00edska\u0165 najnov\u0161ie vydanie). <noindex><a rel=\"nofollow\" href=\"https:\/\/dockerbook.com\/\">Tu s\u00fa<\/a><\/noindex> e\u0161te jedna kniha, ktor\u00e1 bude vyhovova\u0165 t\u00fdm, ktor\u00ed sa domnievaj\u00fa, \u017ee prax je najlep\u0161\u00ed sp\u00f4sob u\u010denia sa technol\u00f3gi\u00ed.<\/p>\n<p><b>V\u00e1\u017een\u00ed \u010ditatelia!<\/b> Ak\u00e9 materi\u00e1ly o Dockeri by ste odporu\u010dili \u0161tudentom za\u010diato\u010dn\u00edkom?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Preh\u013ead Dockeru, \u010das\u0165 6: pr\u00e1ca s d\u00e1tami\" src=\"\/wp-content\/uploads\/2019\/05\/78a5dd35cfae6d1e291f175957207436.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Zdroj: <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.5 - 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\/sk\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47U\u010d\u00edme sa Docker, \u010das\u0165 6: pr\u00e1ca s d\u00e1tami | ProHoster","description":"V dne\u0161nej \u010dasti prekladu s\u00e9rie materi\u00e1lov o Dockeri budeme hovori\u0165 o pr\u00e1ci s d\u00e1tami. Konkr\u00e9tne \u2014 o objemoch Docker.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/32873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=32873"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/32873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/24642"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=32873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=32873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=32873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}