{"id":16752,"date":"2020-11-06T13:11:43","date_gmt":"2020-11-06T12:11:43","guid":{"rendered":"https:\/\/www.websupport.sk\/podpora\/?post_type=ht_kb&#038;p=16752"},"modified":"2020-11-06T16:11:20","modified_gmt":"2020-11-06T15:11:20","slug":"docker-volume","status":"publish","type":"ht_kb","link":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/","title":{"rendered":"Docker &#8211; 3. Volume"},"content":{"rendered":"\n<p>V tejto \u010dasti za\u010dneme kontajner pou\u017e\u00edva\u0165 <strong>Volume<\/strong> (obsah) pre pr\u00e1cu s perzistnentn\u00fdmi d\u00e1tami.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-dockerfiles-a-images\/\">V predo\u0161lej \u010dasti sme si nazna\u010dili<\/a>, \u017ee ak chceme meni\u0165 obsah s\u00faboru <code>index.html<\/code>, nast\u00e1va komplik\u00e1cia. Aby sme t\u00fato komplik\u00e1ciu vyrie\u0161ili, s\u00fabor <code>index.html<\/code> nebudeme kop\u00edrova\u0165 do kontajnera pri ka\u017edom spusten\u00ed (run) obrazu (image) nanovo. Namiesto toho jednoducho na s\u00fabor <code>index.html<\/code> na hostite\u013eskom syst\u00e9me odk\u00e1\u017eeme. Kontajner tak nebude obsah s\u00faboru na\u010d\u00edtava\u0165 zvn\u00fatra (zo svojho s\u00faborov\u00e9ho syst\u00e9mu), ale zvonka (zo s\u00faborov\u00e9ho syst\u00e9mu hostite\u013esk\u00e9ho syst\u00e9mu). Ide o r\u00fdchlej\u0161\u00ed sp\u00f4sob sp\u00fa\u0161\u0165ania a pou\u017e\u00edvania obrazov (images), v\u010faka ktor\u00e9mu navy\u0161e pri vymazan\u00ed kontajnera nepr\u00eddeme o potrebn\u00fd obsah (napr. ten zo s\u00faboru <code>index.html<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-success\">Tip: <strong>Docker be\u017e\u00ed v\u00fdborne vo <a href=\"https:\/\/www.websupport.sk\/virtual-server\">WebSupport VPS<\/a><\/strong>. Vysk\u00fa\u0161ajte pr\u00e9miov\u00fd virtu\u00e1lny server e\u0161te dnes.<\/p>\n\n\n\n<p>\u00dadaje zdie\u013eame medzi kontajnerom a hostite\u013esk\u00fdm syst\u00e9mom, ale tie\u017e medzi viacer\u00fdmi kontajnermi. No a v\u010faka obsahu (volume) sa \u00fadaje ukladaj\u00fa iba na hostite\u013esk\u00fd po\u010d\u00edta\u010d (nie do kontajnera samotn\u00e9ho), v\u010faka \u010domu sa s prib\u00fadaj\u00facimi \u00fadajmi nezv\u00e4\u010d\u0161uje ve\u013ekos\u0165 kontajnera.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zdie\u013eame obsah medzi hostite\u013esk\u00fdm syst\u00e9mom a kontajnerom<\/h2>\n\n\n\n<p>Tak ako <a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-dockerfiles-a-images\/\">v predo\u0161lej \u010dasti<\/a>, aj v tejto budeme pracova\u0165 s textov\u00fdm konfigura\u010dn\u00fdm s\u00faborom <code>Dockerfile<\/code> v rovnakom prie\u010dinku <code>~\/docker-test<\/code> a s rovnak\u00fdm obrazom (image) <code>nginx-test<\/code>. Rozdiel v\u0161ak bude v obsahu s\u00faboru <code>Dockerfile<\/code>. Nebudeme u\u017e toti\u017e kop\u00edrova\u0165 s\u00fabor <code>index.html<\/code> z hostite\u013esk\u00e9ho syst\u00e9mu do kontajnera, iba na\u0148 odk\u00e1\u017eeme. Obsah s\u00faboru <code>Dockerfile<\/code> si v textovom editore nano uprav\u00edme takto:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano Dockerfile<\/pre>\n\n\n\n<p>a vlo\u017e\u00edme tieto 2 riadky:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">FROM nginx<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">WORKDIR \/usr\/share\/nginx\/html<\/pre>\n\n\n\n<p>Pr\u00edkaz z prv\u00e9ho riadku spust\u00ed obraz s webov\u00fdm serverom Nginx. Pr\u00edkaz v druhom riadku zabezpe\u010d\u00ed, \u017ee sa pr\u00edkazov\u00fd riadok v kontajneri celkom prakticky otvor\u00ed v prie\u010dinku <code>html<\/code>, kde sa nach\u00e1dza s\u00fabor <code>index.html<\/code>. Takto m\u00f4\u017eeme okam\u017eite po prihl\u00e1sen\u00ed do kontajnera overi\u0165, \u010di sa s\u00fabor <code>index.html<\/code> nach\u00e1dza v spr\u00e1vnom prie\u010dinku a \u010di sa jeho obsah naozaj zhoduje s t\u00fdm na hostite\u013eskom po\u010d\u00edta\u010di.<\/p>\n\n\n\n<p>S\u00fabor ulo\u017e\u00edme pomocou kl\u00e1vesovej skratky <code>Ctrl + X<\/code> a n\u00e1sledne stla\u010den\u00edm kl\u00e1vesu <code>y<\/code> a potvrden\u00edm kl\u00e1vesom enter.<\/p>\n\n\n\n<p>Vytvorime prie\u010dinok s n\u00e1zvom html a premiestnime do\u0148 s\u00fabor <code>index.html<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir ~\/docker-test\/html &amp;&amp; mv ~\/docker-test\/index.html ~\/docker-test\/html\/<\/pre>\n\n\n\n<p>Zostav\u00edme si obraz s nastaveniami z konfigura\u010dn\u00e9ho s\u00faboru <code>Dockerfile<\/code> v prie\u010dinku <code>~\/docker-test<\/code> presne tak, ako v predo\u0161lej \u010dasti (nezabudneme skop\u00edrova\u0165 aj t\u00fa bodku na konci):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker build -t nginx-test .<\/pre>\n\n\n\n<p>Po \u00faspe\u0161nom zostaven\u00ed obraz <code>nginx-test<\/code> spust\u00edme. Oproti minulej \u010dasti do procesu spustenia ale e\u0161te prid\u00e1me jedno nastavenie, ktor\u00e9 n\u00e1m v kontajneri odk\u00e1\u017ee na obsah prie\u010dinku na hostite\u013eskom po\u010d\u00edta\u010di (<code>-v ~\/docker-test\/html:\/usr\/share\/nginx\/htm<\/code>). Dvojbodkou (<code>:<\/code>) odde\u013eujeme cestu k prie\u010dinku na hostite\u013eskom po\u010d\u00edta\u010di (tu <code>~\/docker-test\/html<\/code>) a cestu k prie\u010dinku v kontajneri (tu <code>\/usr\/share\/nginx\/html<\/code>). Cesta v hostite\u013eskom po\u010d\u00edta\u010di je v\u017edy prv\u00e1 (v\u013eavo od dvojbodky) a cesta v kontajneri v\u017edy druh\u00e1 (vpravo od dvojbodky).:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker run -d -v ~\/docker-test\/html:\/usr\/share\/nginx\/html nginx-test<\/pre>\n\n\n\n<p>Zist\u00edme si ID kontajnera (12 znakov z prv\u00e9ho st\u013apca), ktor\u00fd bol spusten\u00fd z obrazu nginx-test:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps<\/pre>\n\n\n\n<p>&#8230;a prihl\u00e1sime sa do pr\u00edkazov\u00e9ho riadku (bash) kontajnera (va\u0161e ID sa bude l\u00ed\u0161i\u0165):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker exec -it aaaf9e616e0b bash<\/pre>\n\n\n\n<p>V\u010faka pr\u00edkazu <code>WORKDIR<\/code> v konfigura\u010dnom s\u00fabore <code>Dockerfile<\/code> sme v prie\u010dinku <code>html<\/code>, kde sa nach\u00e1dza s\u00fabor <code>index.html<\/code>. Tu si over\u00edme, \u010di funguje webov\u00fd server Nginx a ak\u00fd je aktu\u00e1lny obsah s\u00faboru index.html:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl localhost<\/pre>\n\n\n\n<p><a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-dockerfiles-a-images\/\">V predo\u0161lej \u010dasti<\/a> sme si do s\u00faboru index.html ulo\u017eili uv\u00edtaciu vetu <code>\u201cAhoj z Docker kontajnera!\u201d<\/code>, tak\u017ee sa n\u00e1m zobraz\u00ed aj teraz. Aby sme si overili, \u010di sa zmeny v obsahu na hostite\u013eskom po\u010d\u00edta\u010di prejavia okam\u017eite aj v kontajneri (bez op\u00e4tovn\u00e9ho mazania, zostavovania a spustenia obrazu), prid\u00e1me na hostite\u013eskom po\u010d\u00edta\u010di e\u0161te jeden riadok:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"T\u00fato vetu sme zap\u00edsali z hostite\u013esk\u00e9ho po\u010d\u00edta\u010da.\" &gt;&gt; ~\/docker-test\/html\/index.html<\/pre>\n\n\n\n<p>Op\u00e4\u0165 si v kontajneri nech\u00e1me vyp\u00edsal aktu\u00e1lny obsah s\u00faboru <code>index.html<\/code> a zist\u00edme, \u017ee to, \u010do sme zap\u00edsali na hostite\u013eskom po\u010d\u00edta\u010di, sa okam\u017eite prejav\u00ed aj v kontajneri:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl localhost<\/pre>\n\n\n\n<p>Nemuseli sme u\u017e teda kontajner zastavi\u0165, znovu zostavi\u0165 a spusti\u0165 obraz, ale sta\u010dilo iba zmeni\u0165 obsah s\u00faboru na hostite\u013eskom po\u010d\u00edta\u010di. Uzavret\u00fd kontajner z predo\u0161lej \u010dasti sme teraz otvorili tak, aby dok\u00e1zal \u010d\u00edta\u0165 a zapisova\u0165 v s\u00faboroch na hostite\u013eskom po\u010d\u00edta\u010di. Okrem tejto v\u00fdhody z\u00edskavame \u010fal\u0161iu: Aj po zastaven\u00ed kontajnera a vymazan\u00ed obrazu budeme ma\u0165 obsah s\u00faboru <code>index.html<\/code> st\u00e1le zachovan\u00fd, \u010di u\u017e sme robili zmeny v kontajneri alebo na hostite\u013eskom po\u010d\u00edta\u010di.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zhrnutie<\/h2>\n\n\n\n<p>Uk\u00e1zali sme si ako kontajner do kontajnera prid\u00e1va\u0165 d\u00e1ta pomocou obsahu (volume) tak, aby dok\u00e1zal \u010d\u00edta\u0165 a zapisova\u0165 v s\u00faboroch na hostite\u013eskom syst\u00e9me. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>V tejto \u010dasti za\u010dneme kontajner pou\u017e\u00edva\u0165 Volume (obsah) pre pr\u00e1cu s perzistnentn\u00fdmi d\u00e1tami. V predo\u0161lej \u010dasti sme si nazna\u010dili, \u017ee ak chceme meni\u0165 obsah s\u00faboru index.html, nast\u00e1va komplik\u00e1cia. Aby sme t\u00fato komplik\u00e1ciu vyrie\u0161ili, s\u00fabor index.html nebudeme kop\u00edrova\u0165 do kontajnera pri ka\u017edom spusten\u00ed (run) obrazu (image) nanovo. Namiesto toho jednoducho na&#8230;<\/p>\n","protected":false},"author":28,"template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[390],"ht-kb-tag":[336,393,396,339,381,189],"class_list":["post-16752","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-docker","ht_kb_tag-cli","ht_kb_tag-docker","ht_kb_tag-kontajnery","ht_kb_tag-open-source","ht_kb_tag-server","ht_kb_tag-vps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Docker - 3. Volume - Websupport centrum podpory<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/\" \/>\n<meta property=\"og:locale\" content=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker - 3. Volume - Websupport centrum podpory\" \/>\n<meta property=\"og:description\" content=\"V tejto \u010dasti za\u010dneme kontajner pou\u017e\u00edva\u0165 Volume (obsah) pre pr\u00e1cu s perzistnentn\u00fdmi d\u00e1tami. V predo\u0161lej \u010dasti sme si nazna\u010dili, \u017ee ak chceme meni\u0165 obsah s\u00faboru index.html, nast\u00e1va komplik\u00e1cia. Aby sme t\u00fato komplik\u00e1ciu vyrie\u0161ili, s\u00fabor index.html nebudeme kop\u00edrova\u0165 do kontajnera pri ka\u017edom spusten\u00ed (run) obrazu (image) nanovo. Namiesto toho jednoducho na...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/\" \/>\n<meta property=\"og:site_name\" content=\"Websupport centrum podpory\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-06T15:11:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Predpokladan\u00fd \u010das \u010d\u00edtania\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 min\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/docker-volume\\\/\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/docker-volume\\\/\",\"name\":\"Docker - 3. Volume - Websupport centrum podpory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\"},\"datePublished\":\"2020-11-06T12:11:43+00:00\",\"dateModified\":\"2020-11-06T15:11:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/docker-volume\\\/#breadcrumb\"},\"inLanguage\":\"sk-SK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/docker-volume\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/kb\\\/docker-volume\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker &#8211; 3. Volume\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/#website\",\"url\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/\",\"name\":\"Websupport centrum podpory\",\"description\":\"Radi v\u00e1m pom\u00f4\u017eeme s va\u0161im probl\u00e9mom\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.websupport.sk\\\/podpora\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sk-SK\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker - 3. Volume - Websupport centrum podpory","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/","og_locale":"sk_SK","og_type":"article","og_title":"Docker - 3. Volume - Websupport centrum podpory","og_description":"V tejto \u010dasti za\u010dneme kontajner pou\u017e\u00edva\u0165 Volume (obsah) pre pr\u00e1cu s perzistnentn\u00fdmi d\u00e1tami. V predo\u0161lej \u010dasti sme si nazna\u010dili, \u017ee ak chceme meni\u0165 obsah s\u00faboru index.html, nast\u00e1va komplik\u00e1cia. Aby sme t\u00fato komplik\u00e1ciu vyrie\u0161ili, s\u00fabor index.html nebudeme kop\u00edrova\u0165 do kontajnera pri ka\u017edom spusten\u00ed (run) obrazu (image) nanovo. Namiesto toho jednoducho na...","og_url":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/","og_site_name":"Websupport centrum podpory","article_modified_time":"2020-11-06T15:11:20+00:00","twitter_card":"summary_large_image","twitter_misc":{"Predpokladan\u00fd \u010das \u010d\u00edtania":"5 min\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/","url":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/","name":"Docker - 3. Volume - Websupport centrum podpory","isPartOf":{"@id":"https:\/\/www.websupport.sk\/podpora\/#website"},"datePublished":"2020-11-06T12:11:43+00:00","dateModified":"2020-11-06T15:11:20+00:00","breadcrumb":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/#breadcrumb"},"inLanguage":"sk-SK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-volume\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.websupport.sk\/podpora\/"},{"@type":"ListItem","position":2,"name":"Docker &#8211; 3. Volume"}]},{"@type":"WebSite","@id":"https:\/\/www.websupport.sk\/podpora\/#website","url":"https:\/\/www.websupport.sk\/podpora\/","name":"Websupport centrum podpory","description":"Radi v\u00e1m pom\u00f4\u017eeme s va\u0161im probl\u00e9mom","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.websupport.sk\/podpora\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sk-SK"}]}},"_links":{"self":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/16752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/users\/28"}],"version-history":[{"count":3,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/16752\/revisions"}],"predecessor-version":[{"id":16827,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/16752\/revisions\/16827"}],"wp:attachment":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/media?parent=16752"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-category?post=16752"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-tag?post=16752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}