{"id":16785,"date":"2020-11-06T15:15:43","date_gmt":"2020-11-06T14:15:43","guid":{"rendered":"https:\/\/www.websupport.sk\/podpora\/?post_type=ht_kb&#038;p=16785"},"modified":"2020-11-06T16:12:06","modified_gmt":"2020-11-06T15:12:06","slug":"docker-compose","status":"publish","type":"ht_kb","link":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/","title":{"rendered":"Docker &#8211; 5. Compose"},"content":{"rendered":"\n<p><a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Compose<\/a> umo\u017enuje sp\u00fa\u0161tanie a konfigur\u00e1ciu viacer\u00fdch kontajnerov.<\/p>\n\n\n\n<p>Docker Compose je samostatn\u00fd n\u00e1stroj od v\u00fdvoj\u00e1rov projektu Docker, ktor\u00fd sl\u00fa\u017ei na spustenie izolovan\u00e9ho viackontajnerov\u00e9ho prostredia na jednom hostite\u013eskom syst\u00e9me. Typicky ide o pr\u00edpady ako sme si u\u017e popisovali <a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-network\/\">v predo\u0161lej \u010dasti<\/a>: V jednom kontajneri m\u00e1me spusten\u00fd webov\u00fd server a v druhom zase datab\u00e1zov\u00fd server. V\u0161etko potrebn\u00e9 na fungovanie a komunik\u00e1ciu spomenut\u00fdch kontajnerov v izolovanom prostred\u00ed je mo\u017en\u00e9 jednoducho nastavi\u0165 v textovom konfigura\u010dnom s\u00fabore form\u00e1tu YAML <code>docker-compose.yml<\/code>. V\u00fdhodou tak\u00e9hoto z\u00e1pisu nastaven\u00ed je fakt, \u017ee na spustenie v\u0161etk\u00fdch kontajnerov sta\u010d\u00ed jedin\u00fd pr\u00edkaz <code>docker-compose up<\/code>. Rovnako re\u0161tartujeme kontajnery s nov\u00fdmi nastaveniami, pri\u010dom kontajnery s nezmenen\u00fdmi nastaveniami ostan\u00fa nedotknut\u00e9.<\/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<h2 class=\"wp-block-heading\">In\u0161tal\u00e1cia Docker Compose<\/h2>\n\n\n\n<p>N\u00e1stroj Docker Compose si stiahneme z ofici\u00e1lneho repozit\u00e1ra na GitHub-e (aktu\u00e1lny odkaz <a href=\"https:\/\/docs.docker.com\/compose\/install\/\">v dokument\u00e1cii<\/a>) a ulo\u017e\u00edme do prie\u010dinka <code>\/usr\/local\/bin\/<\/code> (prv\u00fd riadok). N\u00e1sledne stiahnut\u00e9mu s\u00faboru prid\u00e1me pr\u00e1va na spustenie (druh\u00fd riadok). V tomto pr\u00edpade in\u0161talujeme verziu 1.27.4, ak potrebujete in\u00fa verziu, zme\u0148te ozna\u010denie na po\u017eadovan\u00fa verziu.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo curl -L \"https:\/\/github.com\/docker\/compose\/releases\/download\/1.27.4\/docker-compose-$(uname -s)-$(uname -m)\" -o \/usr\/local\/bin\/docker-compose<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo chmod +x \/usr\/local\/bin\/docker-compose<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Nastavujeme a sp\u00fa\u0161\u0165ame kontajnery<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-network\/\">V predo\u0161lej \u010dasti<\/a> sme si spustili dva kontajnery, aby sme ich mohli prida\u0165 do rovnakej siete pomocou siete (network). N\u00e1strojom obsah (volume) sme kontajnerom povedali, aby pou\u017e\u00edvali obsah hostite\u013esk\u00e9ho syst\u00e9mu. V\u0161etko sme nastavili pomocou konfigura\u010dn\u00e9ho s\u00faboru <code>Dockerfile<\/code> a pr\u00edkazov\u00e9ho riadku. Teraz si uk\u00e1\u017eeme, ako sa to d\u00e1 systematickej\u0161ie pomocou n\u00e1stroja Docker Compose.<\/p>\n\n\n\n<p>Presunieme sa do prie\u010dinka <code>~\/docker-test<\/code> (prv\u00fd riadok), v ktorom prie\u010dinok html z minulej \u010dasti premenujeme na <code>html-compose-1<\/code> (druh\u00fd riadok) a ten e\u0161te skop\u00edrujeme ako <code>html-compose-2<\/code> (tret\u00ed riadok). V oboch prie\u010dinkoch je s\u00fabor s n\u00e1zvom <code>index.html<\/code>, ktor\u00fd webov\u00fd server Nginx zobraz\u00ed ako hlavn\u00fa str\u00e1nku:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~\/docker-test<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">mv html html-compose-1<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">cp -r html-compose-1 html-compose-2<\/pre>\n\n\n\n<p>Vytvor\u00edme konfigura\u010dn\u00fd s\u00fabor n\u00e1stroja Docker Compose pod n\u00e1zvom <code>docker-compose.yml<\/code>:<\/p>\n\n\n\n<p>nano docker-compose.yml<\/p>\n\n\n\n<p>a zap\u00ed\u0161eme do\u0148 tieto nastavenia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: \"3.8\"\nservices:\n\tnginx-test-compose-1:\n\t\timage: nginx\n\t\tvolumes:\n\t\t\t- \".\/html-compose-1:\/usr\/share\/nginx\/html\"\n\t\tnetworks:\n\t\t\t- siet-test\n\tnginx-test-compose-2:\n\t\timage: nginx\n\t\tvolumes:\n\t\t\t- \".\/html-compose-2:\/usr\/share\/nginx\/html\"\n\t\tnetworks:\n\t\t\t- siet-test\nnetworks:\n\tsiet-test:\n\t\texternal: true<\/code><\/pre>\n\n\n\n<p>Obsah s\u00faboru 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 <code>Enter<\/code>.<\/p>\n\n\n\n<p>V prvom riadku mus\u00edme ur\u010di\u0165 verziu form\u00e1tu konfigura\u010dn\u00e9ho s\u00faboru (tu <code>3.8<\/code>, va\u0161a sa m\u00f4\u017ee l\u00ed\u0161i\u0165). Spr\u00e1vnu verziu si vyberieme pod\u013ea toho, ak\u00fa verziu projektu Docker m\u00e1me nain\u0161talovan\u00fa. Tu pom\u00f4\u017ee <a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#compose-and-docker-compatibility-matrix\">tabu\u013eka z ofici\u00e1lnej dokument\u00e1cie<\/a>.<\/p>\n\n\n\n<p>Ako druh\u00e9 si zadefinujeme slu\u017eby (<code>services<\/code>). V terminol\u00f3gii n\u00e1stroja Docker Compose je slu\u017eba vlastne to ist\u00e9 ako kontajner v terminol\u00f3gii projektu Docker. Tu si nech\u00e1me spusti\u0165 slu\u017eby (kontajnery) s n\u00e1zvom <code>nginx-test-compose-1<\/code> a <code>nginx-test-compose-2<\/code>. V ka\u017edej slu\u017ebe ur\u010d\u00edme 3 nastavenia: Z ak\u00e9ho obrazu (image) sa slu\u017eba (kontajner) bude zostavova\u0165 a sp\u00fa\u0161\u0165a\u0165, ak\u00fd obsah (volumes) hostite\u013esk\u00e9ho po\u010d\u00edta\u010da m\u00e1 slu\u017eba (kontajner) k dispoz\u00edcii a napokon do akej siete (networks) slu\u017ebu (kontajner) zarad\u00edme.<\/p>\n\n\n\n<p>No a posledn\u00e9 tri riadky ur\u010dujeme, \u017ee sie\u0165 pod n\u00e1zvom <code>siet-test<\/code> je extern\u00e1, Docker ju predt\u00fdm (v predo\u0161lej \u010dasti) vytvoril a Docker Compose do nej teraz u\u017e len slu\u017eby (kontajnery) zarad\u00ed.<\/p>\n\n\n\n<p>V\u0161etky potrebn\u00e9 nastavenia sme si teda ulo\u017eili a na spustenie oboch kontajnerov sta\u010d\u00ed jedin\u00fd pr\u00edkaz:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker-compose up -d<\/pre>\n\n\n\n<p>\u010ci sa kontajnery spustili, si over\u00edme t\u00fdmto pr\u00edkazom:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker-compose ps<\/pre>\n\n\n\n<p>Ak v konfigura\u010dnom s\u00fabore <code>docker-compose.yml<\/code> nie\u010do zmen\u00edme a zmenu potrebujeme aplikova\u0165 do jednotliv\u00fdch kontajnerov, posta\u010d\u00ed op\u00e4\u0165 spusti\u0165 pr\u00edkaz <code>docker-compose up -d<\/code>. Zmenen\u00e9 kontajnery sa re\u0161tartuj\u00fa s nov\u00fdmi nastaveniami, nezmenen\u00e9 zostan\u00fa spusten\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overujeme funk\u010dnos\u0165 kontajnerov<\/h2>\n\n\n\n<p>Najsk\u00f4r zist\u00edme, ak\u00e9 IP adresy (Containers &gt; IPv4Address) maj\u00fa spusten\u00e9 kontajnery v sieti <code>siet-test<\/code> pridelen\u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker network inspect siet-test<\/pre>\n\n\n\n<p>N\u00e1sledne sa prihl\u00e1sime do pr\u00edkazov\u00e9 riadku (bash) prv\u00e9ho spusten\u00e9ho kontajnera <code>nginx-test-compose-1<\/code> (prv\u00fd riadok), v ktorom over\u00edme funk\u010dnos\u0165 a komunik\u00e1ciu oboch kontajnerov (druh\u00fd riadok, va\u0161a IP adresa sa m\u00f4\u017ee l\u00ed\u0161i\u0165):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker-compose exec nginx-test-compose-1 bash<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">curl 172.18.0.3<\/pre>\n\n\n\n<p>Ak vid\u00edme obsah s\u00faboru <code>index.html<\/code>, znamen\u00e1 to, \u017ee v\u0161etko funguje spr\u00e1vne. Oba kontajnery s\u00fa teda spusten\u00e9, vyu\u017e\u00edvaj\u00fa obsah hostite\u013esk\u00e9ho syst\u00e9mu (s\u00fabor <code>index.html<\/code>) a s\u00fa zaraden\u00e9 do rovnakej siete s n\u00e1zvom <code>siet-test<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zhrnutie<\/h2>\n\n\n\n<p>Uk\u00e1zali sme si ako jednoduch\u0161ie spusti\u0165 viacero kontajnerov na jednom hostite\u013eskom syst\u00e9me pomocou Docker Compose. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker Compose umo\u017enuje sp\u00fa\u0161tanie a konfigur\u00e1ciu viacer\u00fdch kontajnerov. Docker Compose je samostatn\u00fd n\u00e1stroj od v\u00fdvoj\u00e1rov projektu Docker, ktor\u00fd sl\u00fa\u017ei na spustenie izolovan\u00e9ho viackontajnerov\u00e9ho prostredia na jednom hostite\u013eskom syst\u00e9me. Typicky ide o pr\u00edpady ako sme si u\u017e popisovali v predo\u0161lej \u010dasti: V jednom kontajneri m\u00e1me spusten\u00fd webov\u00fd server a v druhom&#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-16785","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.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Docker - 5. Compose - 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-compose\/\" \/>\n<meta property=\"og:locale\" content=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker - 5. Compose - Websupport centrum podpory\" \/>\n<meta property=\"og:description\" content=\"Docker Compose umo\u017enuje sp\u00fa\u0161tanie a konfigur\u00e1ciu viacer\u00fdch kontajnerov. Docker Compose je samostatn\u00fd n\u00e1stroj od v\u00fdvoj\u00e1rov projektu Docker, ktor\u00fd sl\u00fa\u017ei na spustenie izolovan\u00e9ho viackontajnerov\u00e9ho prostredia na jednom hostite\u013eskom syst\u00e9me. Typicky ide o pr\u00edpady ako sme si u\u017e popisovali v predo\u0161lej \u010dasti: V jednom kontajneri m\u00e1me spusten\u00fd webov\u00fd server a v druhom...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/\" \/>\n<meta property=\"og:site_name\" content=\"Websupport centrum podpory\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-06T15:12:06+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=\"4 min\u00faty\" \/>\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-compose\/\",\"url\":\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/\",\"name\":\"Docker - 5. Compose - Websupport centrum podpory\",\"isPartOf\":{\"@id\":\"https:\/\/www.websupport.sk\/podpora\/#website\"},\"datePublished\":\"2020-11-06T14:15:43+00:00\",\"dateModified\":\"2020-11-06T15:12:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/#breadcrumb\"},\"inLanguage\":\"sk-SK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.websupport.sk\/podpora\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker &#8211; 5. Compose\"}]},{\"@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 - 5. Compose - 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-compose\/","og_locale":"sk_SK","og_type":"article","og_title":"Docker - 5. Compose - Websupport centrum podpory","og_description":"Docker Compose umo\u017enuje sp\u00fa\u0161tanie a konfigur\u00e1ciu viacer\u00fdch kontajnerov. Docker Compose je samostatn\u00fd n\u00e1stroj od v\u00fdvoj\u00e1rov projektu Docker, ktor\u00fd sl\u00fa\u017ei na spustenie izolovan\u00e9ho viackontajnerov\u00e9ho prostredia na jednom hostite\u013eskom syst\u00e9me. Typicky ide o pr\u00edpady ako sme si u\u017e popisovali v predo\u0161lej \u010dasti: V jednom kontajneri m\u00e1me spusten\u00fd webov\u00fd server a v druhom...","og_url":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/","og_site_name":"Websupport centrum podpory","article_modified_time":"2020-11-06T15:12:06+00:00","twitter_card":"summary_large_image","twitter_misc":{"Predpokladan\u00fd \u010das \u010d\u00edtania":"4 min\u00faty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/","url":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/","name":"Docker - 5. Compose - Websupport centrum podpory","isPartOf":{"@id":"https:\/\/www.websupport.sk\/podpora\/#website"},"datePublished":"2020-11-06T14:15:43+00:00","dateModified":"2020-11-06T15:12:06+00:00","breadcrumb":{"@id":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/#breadcrumb"},"inLanguage":"sk-SK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.websupport.sk\/podpora\/kb\/docker-compose\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.websupport.sk\/podpora\/"},{"@type":"ListItem","position":2,"name":"Docker &#8211; 5. Compose"}]},{"@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\/16785","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":4,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/16785\/revisions"}],"predecessor-version":[{"id":17019,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb\/16785\/revisions\/17019"}],"wp:attachment":[{"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/media?parent=16785"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-category?post=16785"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.websupport.sk\/podpora\/wp-json\/wp\/v2\/ht-kb-tag?post=16785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}