{"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\/et\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","title":{"rendered":"Uurime Dockerit, osa 6: andmetega t\u00f6\u00f6tamine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>K\u00e4esolevas Docker'i materjalide t\u00f5lkeosas r\u00e4\u00e4gime andmete t\u00f6\u00f6tlemisest. T\u00e4psemalt - Docker'i mahutidest. Nendes materjalides v\u00f5rdlesime pidevalt Docker'i tarkvaramehhanisme erinevate s\u00f6\u00f6davate analoogidega. J\u00e4tkame seda traditsiooni ka siin. Andmeid Docker'is v\u00f5iks pidada maitseaineteks. Maailmas on palju erinevaid maitseaineid ja Docker'is on mitmeid viise andmete k\u00e4sitlemiseks.<\/p>\n<p>\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/438796\/\">Osa 1: alused<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/439978\/\">Osa 2: terminid ja kontseptsioonid<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/439980\/\">Osa 3: Dockerfile'id<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/440658\/\">Osa 4: piltide suuruse v\u00e4hendamine ja nende koostamise kiirendamine<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/440660\/\">Osa 5: k\u00e4sud<\/a><\/noindex><br \/>\n\u2192 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/441574\/\">Osa 6: andmete t\u00f6\u00f6tlemine<\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/441574\/\"><img decoding=\"async\" alt=\"Uurime Dockerit, osa 6: andmetega t\u00f6\u00f6tamine\" 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 \/>\nPange t\u00e4hele, et see materjal on valmistatud Docker'i mootori versiooniga 18.09.1 ja API versiooniga <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/engine\/api\/version-history\/\">1.39<\/a><\/noindex>.<\/p>\n<p>Andmed Docker'is v\u00f5ivad olla ajutised v\u00f5i p\u00fcsivad. Alustame ajutiste andmete k\u00e4sitlemisest.<\/p>\n<h2>Ajutine andmete salvestamine<\/h2>\n<p>\nDocker'i konteinerites saab ajutiste andmete t\u00f6\u00f6tlemiseks kasutada kahte meetodit.<\/p>\n<p>Vaikimisi salvestatakse konteineris t\u00f6\u00f6tava rakenduse loodud failid konteineri kirjutamiseks toetavas kihis. Selle mehhanismi toimimiseks ei pea midagi erilist seadistama. See on odav ja efektiivne. Rakendusele piisab, kui salvestada andmed ja j\u00e4tkata oma tegemisi. Kuid kui konteiner enam ei eksisteeri, kaovad ka sellisel lihtsal viisil salvestatud andmed.<\/p>\n<p>Ajutiste failide salvestamiseks Docker'is v\u00f5ib kasutada veel \u00fchte lahendust, mis sobib neile, kes vajavad k\u00f5rgemat j\u00f5udlust, v\u00f5rreldes tavalise ajutise andmete salvestamise mehhanismiga. Kui teile ei ole oluline, et teie andmed oleksid salvestatud kauem, kui konteiner eksisteerib, saate konteinerile \u00fchendada tmpfs - ajutise teabe salvestamise, mis kasutab hosti m\u00e4lu. See kiirendab andmete kirjutamise ja lugemise operatsioonide teostamist.<\/p>\n<p>Sageli on vaja andmeid s\u00e4ilitada ka p\u00e4rast seda, kui konteiner peab toime tulema. Selleks on meil abiks p\u00fcsivate andmete salvestamise mehhanismid.<\/p>\n<h2>P\u00fcsiv andmete salvestamine<\/h2>\n<p>\nOn olemas kaks viis, kuidas andmete eluea pikendamiseks \u00fcletada konteineri eluiga. \u00dcheks viisiks on bind mount tehnoloogia kasutamine. Sellise l\u00e4henemise puhul saab konteineriga \u00fchendada n\u00e4iteks reaalselt eksisteeriva kaustaga. Andmetega, mis on s\u00e4ilitatud sellises kaustas, saavad t\u00f6\u00f6tada ka protsessid, mis asuvad Dockerist v\u00e4ljaspool. Nii see <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/\">v\u00e4lja n\u00e4eb<\/a><\/noindex> tmpfs-i mountimine ja bind mount tehnoloogia.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Dockerit, osa 6: andmetega t\u00f6\u00f6tamine\" src=\"\/wp-content\/uploads\/2019\/05\/73b9b7fd59b1321edb9f58953285d8d5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tmpfs-i mountimine ja bind mount<\/i><\/p>\n<p>Bind mount tehnoloogia kasutamise miinused seisnevad selles, et selle kasutamine raskendab andmete varundamist, andmete migreerimist ja andmete jagamist mitmete konteinerite vahel. Oluliselt parem on pideva andmete s\u00e4ilitamise jaoks kasutada Docker volumes.<\/p>\n<h2>Docker volumes<\/h2>\n<p>\nVolume on failis\u00fcsteem, mis asub host-masinast v\u00e4ljaspool konteinerit. Volumete loomise ja haldamisega tegeleb Docker. Siin on Docker volumes peamised omadused:<\/p>\n<ul>\n<li>Need pakuvad pideva andmete s\u00e4ilitamise vahendeid.<\/li>\n<li>Need on iseseisvad ja eraldatud konteineritest.<\/li>\n<li>Neid saavad \u00fchiselt kasutada erinevad konteinerid.<\/li>\n<li>Need v\u00f5imaldavad efektiivset andmete lugemist ja kirjutamist.<\/li>\n<li>Volumes saab paigutada kaugteenuse pakkuja ressurssidele.<\/li>\n<li>Need on \u0161ifreeritavad.<\/li>\n<li>Neil saab anda nimesid.<\/li>\n<li>Konteiner saab korraldada mahu eelneva t\u00e4itmise andmetega.<\/li>\n<li>Need on mugavad testimiseks.<\/li>\n<\/ul>\n<p>\nNagu n\u00e4ete, on Docker volumes imeliste omadustega. R\u00e4\u00e4kigem n\u00fc\u00fcd sellest, kuidas neid luua.<\/p>\n<h2>Volume loomine<\/h2>\n<p>\nVolumes saab luua Docker vahenditega v\u00f5i API p\u00e4ringute abil.<\/p>\n<p>Siin on Dockerfile'i k\u00e4sk, mis v\u00f5imaldab konteineri k\u00e4ivitamisel luua volume.<\/p>\n<pre><code class=\"plaintext\">VOLUME \/my_volume<\/code><\/pre>\n<p>\nSellise k\u00e4su kasutamisel loob Docker konteinerit luues volume, mis sisaldab andmeid, mis juba on m\u00e4\u00e4ratud asukohas. Pange t\u00e4hele, et kui loote volume Dockerfile'i abil, ei vabasta see teid vajadusest m\u00e4\u00e4rata volume'i mountimise koht.<\/p>\n<p>Dockerfile'is saab volumesi luua ka JSON formaadis.<\/p>\n<p>Lisaks saab volumesid luua k\u00e4surea t\u00f6\u00f6riistade abil konteineri t\u00f6\u00f6tamise ajal.<\/p>\n<h2>Volume-dega t\u00f6\u00f6tamine k\u00e4surealt<\/h2>\n<p><\/p>\n<h3>\u258dVolume loomine<\/h3>\n<p>\nIseseisva volume'i saate luua j\u00e4rgmise k\u00e4suga:<\/p>\n<pre><code class=\"plaintext\">docker volume create --name my_volume<\/code><\/pre>\n<p><\/p>\n<h3>\u258dTeabe selgitamine volumede kohta<\/h3>\n<p>\nEtte n\u00e4ha Docker'i mahtude loendit, kasutage j\u00e4rgmist k\u00e4sku:<\/p>\n<pre><code class=\"plaintext\">docker volume ls<\/code><\/pre>\n<p>\nKonkreetset mahtu saab uurida j\u00e4rgmiselt:<\/p>\n<pre><code class=\"plaintext\">docker volume inspect my_volume<\/code><\/pre>\n<p><\/p>\n<h3>\u258dKustutamine<\/h3>\n<p>\nMahuti saab kustutada j\u00e4rgmiselt:<\/p>\n<pre><code class=\"plaintext\">docker volume rm my_volume<\/code><\/pre>\n<p>\nK\u00f5ik mahud, mida konteinerid ei kasuta, saab eemaldada j\u00e4rgmise k\u00e4suga:<\/p>\n<pre><code class=\"plaintext\">docker volume prune<\/code><\/pre>\n<p>\nEnne Docker'i mahtude kustutamist k\u00fcsitakse teilt, kas te soovite t\u00f5esti selle toimingu sooritada.<\/p>\n<p>Kui maht on seotud m\u00f5ne konteineriga, ei saa seda mahtu kustutada enne, kui vastav konteiner on kustutatud. Isegi kui konteiner on eemaldatud, ei pruugi Docker seda m\u00f5ista. Kui see juhtub, v\u00f5ite kasutada j\u00e4rgmist k\u00e4sku:<\/p>\n<pre><code class=\"plaintext\">docker system prune<\/code><\/pre>\n<p>\nSee on ette n\u00e4htud Docker'i ressursside puhastamiseks. P\u00e4rast selle k\u00e4su k\u00e4ivitamist peate saama kustutada mahud, mille olek oli varem valesti m\u00e4\u00e4ratletud.<\/p>\n<h2>Lipud \u2014mount ja \u2014volume<\/h2>\n<p>\nMahudega t\u00f6\u00f6tamiseks peate sageli k\u00e4su k\u00e4ivitamisel kasutama lippusid. <code>docker<\/code>N\u00e4iteks, et luua maht konteineri loomise ajal, v\u00f5ite kasutada j\u00e4rgmist konstruktsiooni:<\/p>\n<pre><code class=\"plaintext\">docker container run --mount source=my_volume, target=\/container\/path\/for\/volume my_image<\/code><\/pre>\n<p>\nKauges minevikus (enne 2017. aastat) oli populaarne lipp <code>--volume<\/code>. Seda lippu (v\u00f5ite kasutada ka selle l\u00fchenenud vormi, mis on <code>-v<\/code>) kasutati iseseisvate konteinerite jaoks, samas kui lipp <code>--mount<\/code> oli m\u00f5eldud Docker Swarm'i keskkonnaks. Kuid alates Docker 17.06-st saab lippu <code>--mount<\/code> kasutada igasugustes stsenaariumites.<\/p>\n<p>Oluline on m\u00e4rkida, et lipu kasutamine <code>--mount<\/code> suureendab lisainformatsiooni hulka, mida k\u00e4skluses tuleb m\u00e4rkida, kuid mitmete p\u00f5hjuste t\u00f5ttu on parem seda lippu kasutada, mitte <code>--volume<\/code>. Lipp <code>--mount<\/code> \u2014 see on ainus mehhanism, mis v\u00f5imaldab t\u00f6\u00f6tada teenuste ja mahtude draiverite parameetrite m\u00e4\u00e4ramisel. Lisaks on selle lipu kasutamine lihtsam.<\/p>\n<p>Olemasolevates k\u00e4skudes, mis on suunatud andmetele Docker'is, v\u00f5ite kohata paljusid n\u00e4iteid lipu <code>-v<\/code>kasutamise kohta. P\u00fc\u00fcdke neid k\u00e4sklusi enda jaoks kohandada, pidades meeles, et lipud <code>--mount<\/code> ja <code>--volume<\/code> kasutavad erinevaid parameetrite formaate. See t\u00e4hendab, et te ei saa lihtsalt asendada <code>-v<\/code> . Tundub, et <code>--mount<\/code> ja saada toimivat k\u00e4sku.<\/p>\n<p>Peamine erinevus <code>--mount<\/code> ja <code>--volume<\/code> on see, et lipu kasutamisel <code>--volume<\/code> k\u00f5ik parameetrid kogutakse koos \u00fchte v\u00e4lja, samas kui teiste lipu kasutamisel <code>--mount<\/code> parameetrid on eraldatud.<\/p>\n<p>T\u00f6\u00f6tades <code>--mount<\/code> parameetrid on esitatud v\u00f5tme-v\u00e4\u00e4rtuse paaridena, see n\u00e4eb v\u00e4lja nagu <code>key=value<\/code>. Need paarid eraldatakse kirjutistega. Siin on sageli kasutatavad parameetrid <code>--mount<\/code>:<\/p>\n<ul>\n<li><code>type<\/code> \u2014 mount t\u00fc\u00fcbi. Vastavuse v\u00f5tme v\u00e4\u00e4rtus v\u00f5ib olla <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> v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/tmpfs\/\">tmpfs<\/a><\/noindex>. Siin r\u00e4\u00e4gime mahutist, st meid huvitab v\u00e4\u00e4rtus <code>volume<\/code>.<\/li>\n<li><code>source<\/code> \u2014 mount allikas. Nimega mahutite puhul on see \u2014 mahuti nimi. Nimega mahutite puhul seda v\u00f5tit ei n\u00e4idata. Seda v\u00f5ib l\u00fchendada <code>src<\/code>.<\/li>\n<li><code>sihtkoht<\/code> \u2014 tee, kuhu fail v\u00f5i kaust mahutisse monteeritakse. Seda v\u00f5tit v\u00f5ib l\u00fchendada <code>dst<\/code> v\u00f5i <code>target<\/code>.<\/li>\n<li><code>readonly<\/code> \u2014 monteerib mahuti, mis on ette n\u00e4htud <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/storage\/volumes\/#use-a-read-only-volume\">ainult lugemiseks<\/a><\/noindex>. Selle v\u00f5ti kasutamine ei ole kohustuslik, sellele ei m\u00e4\u00e4rata v\u00e4\u00e4rtust.<\/li>\n<\/ul>\n<p>\nSiin on n\u00e4ide, millel on mitmeid parameetreid: <code>--mount<\/code> docker run --mount type=volume,source=volume_name,destination=\\\/path\\\/in\\\/container,readonly my_image<\/p>\n<pre><code class=\"plaintext\">Siin on kasulikud k\u00e4sud, millega saab t\u00f6\u00f6tada Docker mahutitega:<\/code><\/pre>\n<p><\/p>\n<h2>Summary<\/h2>\n<p>\ndocker volume create<\/p>\n<ul>\n<li><code>docker volume inspect<\/code><\/li>\n<li><code>docker volume ls<\/code><\/li>\n<li><code>docker volume rm<\/code><\/li>\n<li><code>Siin on nimekiri sageli kasutatavatest parameetritest<\/code><\/li>\n<li><code>docker volume prune<\/code><\/li>\n<\/ul>\n<p>\n, mida saab rakendada k\u00e4skudes, mis on kujul <code>--mount<\/code>docker run --mount my_options my_image <code>type=volume<\/code>:<\/p>\n<ul>\n<li><code>source=volume_name<\/code><\/li>\n<li><code>destination=\\\/path\\\/in\\\/container<\/code><\/li>\n<li><code>N\u00fc\u00fcd, kui oleme selle Docker materjalide seeria l\u00f5petanud, on aeg r\u00e4\u00e4kida m\u00f5nest s\u00f5nast selle kohta, kuhu need, kes \u00f5pivad Dockerit, edasi liikuda saavad.<\/code><\/li>\n<li><code>readonly<\/code><\/li>\n<\/ul>\n<p>\nsuurep\u00e4rane artikkel Dockerist. <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.freecodecamp.org\/a-beginner-friendly-introduction-to-containers-vms-and-docker-79a9e3e119b\">Siin<\/a><\/noindex> raamat Dockerist (ostes seda raamatut, p\u00fc\u00fcdke hankida selle uusim v\u00e4ljaanne). <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Docker-Deep-Dive-Nigel-Poulton-ebook\/dp\/B01LXWQUFF\">Siin<\/a><\/noindex> veel \u00fcks raamat, mis sobib neile, kes arvavad, et praktika on parim viis tehnoloogia \u00f5ppimiseks. <noindex><a rel=\"nofollow\" href=\"https:\/\/dockerbook.com\/\">Siin<\/a><\/noindex> Milliseid Dockeriga seotud materjale soovitaksite algajatele?<\/p>\n<p><b>Lugupeetud lugejad!<\/b> T\u00e4na r\u00e4\u00e4gime Docker materjalide seeria t\u00f5lke j\u00e4rgmises osas andmete k\u00e4sitlemisest. Eelk\u00f5ige \u2014 Docker mahutitest.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Uurime Dockerit, osa 6: andmetega t\u00f6\u00f6tamine\" src=\"\/wp-content\/uploads\/2019\/05\/78a5dd35cfae6d1e291f175957207436.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\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","description":"\ud83e\udd47Uurime Dockerit, osa 6: andmete k\u00e4sitlemine | ProHoster","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/izuchaem-docker-chast-6-rabota-s-dannymi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/32873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=32873"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/32873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/24642"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=32873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=32873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=32873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}