{"id":794,"date":"2018-10-27T22:46:42","date_gmt":"2018-10-27T20:46:42","guid":{"rendered":"http:\/\/wchmurze.cloud\/?p=794"},"modified":"2019-08-18T14:28:06","modified_gmt":"2019-08-18T12:28:06","slug":"pierwsze-zabawy-z-kubernetes-czesc-1-docker","status":"publish","type":"post","link":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/","title":{"rendered":"Pierwsze zabawy z Kubernetes &#8211; cz\u0119\u015b\u0107 1 Docker"},"content":{"rendered":"<p>Konteneryzacja aplikacji wykorzystuj\u0105ca Dockera i ich orkiestracja\u00a0 za pomoc\u0105 Kubernetes\u00a0 przebojem zdobywaj\u0105 coraz wi\u0119ksz\u0105 grup\u0119 zwolennik\u00f3w. Postanowi\u0142em zmierzy\u0107 si\u0119 z tymi produktami.<\/p>\n<p>Za\u0142o\u017cy\u0142em, ze wykorzystam jakie\u015b darmowe \u015brodowisko, kt\u00f3re pozwoli mi na pierwsze zabawy, bez zb\u0119dnej instalacji oprogramowania na stacji roboczej.\u00a0 Powtarzalne operacje zostan\u0105 zapisane w plikach na Githubie.<\/p>\n<p>Niniejszy wpis wykorzystuje <a href=\"https:\/\/labs.play-with-k8s.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/labs.play-with-k8s.com\/<\/a> .<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-796\" src=\"http:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_01.jpg\" alt=\"\" width=\"609\" height=\"607\" srcset=\"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_01.jpg 609w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_01-150x150.jpg 150w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_01-300x300.jpg 300w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_01-144x144.jpg 144w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/p>\n<p>Uruchomienie \u015brodowiska wymaga zalogowania si\u0119 na konto GitHub lub na konto DockerHuba. Wybra\u0142em t\u0119 drug\u0105 opcj\u0119.<\/p>\n<p>Po podaniu naszych po\u015bwiadcze\u0144 i po naci\u015bni\u0119ciu zielonego przycisku <span style=\"color: #008000;\">Start<\/span> mamy do dyspozycji uruchomione gotowe \u015brodowisko do test\u00f3w, kt\u00f3re zostaje powo\u0142ane na czas czterech godzin.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-797\" src=\"http:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_02.jpg\" alt=\"\" width=\"1471\" height=\"227\" srcset=\"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_02.jpg 1471w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_02-300x46.jpg 300w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_02-768x119.jpg 768w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_02-1024x158.jpg 1024w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_02-1200x185.jpg 1200w\" sizes=\"(max-width: 1471px) 100vw, 1471px\" \/><\/p>\n<p>Na pocz\u0105tku musimy doda\u0107 pierwsz\u0105 instancj\u0119. Po kr\u00f3tkiej chwili mamy ju\u017c gotowe \u015brodowisko z dost\u0119pem do shella.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-798\" src=\"http:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_03.jpg\" alt=\"\" width=\"1555\" height=\"749\" srcset=\"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_03.jpg 1555w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_03-300x145.jpg 300w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_03-768x370.jpg 768w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_03-1024x493.jpg 1024w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_03-1200x578.jpg 1200w\" sizes=\"(max-width: 1555px) 100vw, 1555px\" \/><\/p>\n<p>Pierwsze polecenie uname -a<\/p>\n<pre lang=\"BASH\">Linux node1 4.4.0-127-generic #153-Ubuntu SMP Sat May 19 10:58:46 \r\nUTC 2018 x86_64 x86_64 x86_64 GNU\/Linux\r\n<\/pre>\n<p>Mamy dost\u0119p do schowka<br \/>\nShift + insert = kopiuj<br \/>\nCtrl + insert = wklej<\/p>\n<p>Co wi\u0119cej mo\u017cemy doinstalowa\u0107 sobie potrzebne pakiety, np. edytor nano, midnight commander i inne cuda&#8230;<\/p>\n<pre class=\"\" lang=\"BASH\">yum install mc nano lynx\r\n<\/pre>\n<p>Spr\u00f3bujmy uruchomi\u0107 prost\u0105 aplikacj\u0119 w kontenerze z gotowego publicznego repozytorium <a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Hub<\/a>.<\/p>\n<p>Na pocz\u0105tku uruchomimy pusta aplikacje www opart\u0105 o popularny serwer apache2.<\/p>\n<pre class=\"\" lang=\"BASH\">docker run -d -p 80 httpd:2.4\r\n<\/pre>\n<p>Polecenie to uruchamia obraz o nazwie httpd w wersji 2.4 z wystawiony portem tcp 80 od strony kontenera, port hosta zostanie zmapowany automatycznie. Za chwile zobaczymy na jak\u0105 warto\u015b\u0107. Obrazu tego nie by\u0142o do tej pory lokalnie, st\u0105d komunikat &#8220;unable to find image&#8221;.\u00a0 Przed budow\u0105 zostanie on \u015bci\u0105gni\u0119ty z repozytorium Docker Huba.<\/p>\n<p>Otrzymany wynik:<\/p>\n<pre lang=\"BASH\">Unable to find image 'httpd:2.4' locally\r\n2.4: Pulling from library\/httpd\r\nf17d81b4b692: Pull complete\r\n06fe09255c64: Pull complete\r\n0baf8127507d: Pull complete\r\n07b9730387a3: Pull complete\r\n6dbdee9d6fa5: Pull complete\r\nDigest: sha256:90b34f4370518872de4ac1af696a90d982fe99b0f30c9be994964f49a6e2f421\r\nStatus: Downloaded newer image for httpd:2.4\r\n46da2648c3cb1b8a1354c488a6fac06036b1dfa388758bba0badf646ea775bdb\r\n<\/pre>\n<p>Sprawd\u017amy list\u0119 naszych obraz\u00f3w<\/p>\n<pre class=\"\" lang=\"BASH\">docker images\r\n<\/pre>\n<p>Otrzymany wynik:<\/p>\n<pre class=\"\" lang=\"BASH\">REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE\r\nhttpd               2.4                 55a118e2a010        2 days ago          132MB\r\n<\/pre>\n<p>Sprawdzamy, kt\u00f3re obrazy s\u0105 uruchomione.<\/p>\n<pre lang=\"BASH\">docker ps\r\n<\/pre>\n<p>Otrzymany wynik:<\/p>\n<pre class=\"\" lang=\"BASH\"> CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                   NAMES\r\n46da2648c3cb        httpd:2.4           \"httpd-foreground\"   32 seconds ago      Up 29 seconds       0.0.0.0:32768-&gt;80\/tcp   jolly_engelbart\r\n&gt;80\/tcp   jolly_engelbart\r\n<\/pre>\n<p>Port 80 tcp kontenera zostaje zmapowany na port 32768 hosta.<\/p>\n<p>Pojawia si\u0119 niebieskie \u0142\u0105cze o nazwie wystawionego portu. Po klikni\u0119ciu mamy stron\u0119 z napisem<\/p>\n<h1>It works!<\/h1>\n<p>Wykorzystuj\u0105c gotowe obrazy, kt\u00f3re\u00a0 mo\u017cna traktowa\u0107 jako baz\u0119, mamy mo\u017cliwo\u015b\u0107 tworzenia na ich podstawie bardziej skomplikowanych funkcjonalnie aplikacji. W tym celu mo\u017cemy wykorzysta\u0107 plik konfiguracyjny, tak zwany Dockerfile.<\/p>\n<p>Przyk\u0142adowy Dockerfile:<\/p>\n<pre class=\"\" lang=\"BASH\"># base image...\r\nFROM phusion\/baseimage\r\n\r\n# author\r\nMAINTAINER djkormo\r\n\r\nRUN apt-get clean -qy\r\nRUN apt-get update -qy\r\n\r\n# install packages\r\nRUN apt-get install apache2 git -qy\r\n\r\n# clone content of sample app\r\nRUN git clone https:\/\/github.com\/djkormo\/simple-chess-ai\r\n\r\n# copy content to apache root directory\r\nRUN cd simple-chess-ai &amp;&amp; cp -R .  \/var\/www\/html\/ &amp;&amp; cd .. &amp;&amp; rm -r  simple-chess-ai\/\r\nRUN chmod a+x -R \/var\/www\/html\/\r\n\r\n# running apache\r\nENTRYPOINT [\"\/usr\/sbin\/apache2ctl\",\"-D\",\"FOREGROUND\"]\r\n\r\n# exposing 80 port\r\nEXPOSE 80\r\n\r\n<\/pre>\n<pre class=\"\" lang=\"BASH\"># Utw\u00f3rzmy dedykowany katalog\r\nmkdir containers\r\ncd containers\r\nmkdir chess-ai\r\ncd chess-ai\r\ntouch Dockerfile\r\n\r\n<\/pre>\n<p>Uzupe\u0142niamy zawarto\u015b\u0107 pustego pliku Dockerfile i budujemy nasz kontener.<\/p>\n<pre lang=\"BASH\">docker build -t chess-ai .\r\n<\/pre>\n<p>Uruchamiamy nasz kontener<\/p>\n<pre class=\"\" lang=\"BASH\">docker run -p 80 -d chess-ai\r\n\r\ndocker ps\r\n\r\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTSNAMES\r\nc4bae941f8d5 chess-ai \"\/usr\/sbin\/apache2ct\u2026\" 7 seconds ago Up 6 seconds 0.0.0.0:32770-&gt;80\/tcp\r\n<\/pre>\n<p>Jak wida\u0107 kontener nas\u0142uchuje na porcie 32770 hosta<\/p>\n<p>Mo\u017cna t\u0119 informacj\u0119 pobra\u0107 w bardziej elegancji spos\u00f3b:<\/p>\n<pre class=\"\" lang=\"BASH\">PORT=\"$(docker ps|grep chess-ai|sed 's\/.*0.0.0.0:\/\/g'|sed 's\/-&gt;.*\/\/g')\"\r\necho $PORT\r\n32770<\/pre>\n<p>Na g\u00f3rze powinien pojawi\u0107 si\u0119 niebieski link z takim numerem portu.<br \/>\nPo uruchomieniu<br \/>\nhttp:\/\/ip172-18-0-22-bf4df2mn5ugg00cc6t5g-32770.direct.labs.play-with-k8s.com\/<\/p>\n<p>Mamy widoczn\u0105 nasz\u0105 aplikacj\u0119.<br \/>\n<img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-804\" src=\"http:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_04.jpg\" alt=\"\" width=\"1365\" height=\"651\" srcset=\"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_04.jpg 1365w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_04-300x143.jpg 300w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_04-768x366.jpg 768w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_04-1024x488.jpg 1024w, https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/10\/kubernetes_04-1200x572.jpg 1200w\" sizes=\"(max-width: 1365px) 100vw, 1365px\" \/><\/p>\n<p>Warto zapami\u0119ta\u0107 budow\u0119 linku:<\/p>\n<p>http:\/\/ip&lt;hyphen-ip&gt;-&lt;session_jd&gt;-&lt;port&gt;.direct.labs.play-with-k8s.com<\/p>\n<p>A naszym przypadku by\u0142 to<\/p>\n<p>http:\/\/ip172-18-0-22-bf4df2mn5ugg00cc6t5g-32770.direct.labs.play-with-k8s.com\/<\/p>\n<h4>Warto pami\u0119ta\u0107 o kilku zasadach, kt\u00f3re pomagaj\u0105 budowa\u0107 obrazy kontenerowe w spos\u00f3b efektywny<\/h4>\n<ol>\n<li>Wybieramy obraz, z najbardziej optymaln\u0105\u00a0 funkcjonalno\u015bci\u0105, czyli np. taki kt\u00f3ry zawiera tylko potrzebne oprogramowanie i nic wi\u0119cej.<\/li>\n<li>Instalujemy tylko potrzebne oprogramowanie.<\/li>\n<li>Niepotrzebne pliki tymczasowe, kt\u00f3re powstaj\u0105 podczas instalacji oprogramowania powinny zosta\u0107 usuni\u0119te.<\/li>\n<li>Ka\u017cde polecenie RUN tworzy nowa warstw\u0119 w obrazie, eliminujmy ich liczb\u0119. Stad cz\u0119sto widoczne jest sklejanie polece\u0144 przez &amp;&amp;.<\/li>\n<li>Ka\u017cdy projekt powinien mie\u0107 w\u0142asny plik <code>.dockerignore<\/code>, w kt\u00f3rym zawarte s\u0105 regu\u0142y wykluczaj\u0105ce pliki i katalogi w procesie budowania.<\/li>\n<\/ol>\n<p>Wykonajmy prosty eksperyment.<\/p>\n<p>Przygotowa\u0142em dwie wersje pliku DockerFile,<\/p>\n<p>jeden to obraz ubuntu:16.04,<\/p>\n<p><a href=\"https:\/\/github.com\/djkormo\/ContainersSamples\/blob\/master\/Docker\/chess-ai\/ubuntu\/Dockerfile\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/djkormo\/ContainersSamples\/blob\/master\/Docker\/chess-ai\/ubuntu\/Dockerfile<\/a><\/p>\n<p>drugi to alpine:3.7.<\/p>\n<p><a href=\"https:\/\/github.com\/djkormo\/ContainersSamples\/tree\/master\/Docker\/chess-ai\/alpine\/Dockerfile\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/djkormo\/ContainersSamples\/tree\/master\/Docker\/chess-ai\/alpine\/Dockerfile<\/a><\/p>\n<pre class=\"\" lang=\"BASH\"># pobierzmy pliki z repozytorium GitHub.\r\ngit clone https:\/\/github.com\/djkormo\/ContainersSamples.git\r\n<\/pre>\n<p>Otrzymany wynik:<\/p>\n<pre class=\"\" lang=\"BASH\">Cloning into 'ContainersSamples'...\r\nremote: Enumerating objects: 84, done.\r\nremote: Counting objects: 100% (84\/84), done.\r\nremote: Compressing objects: 100% (57\/57), done.\r\nremote: Total 84 (delta 13), reused 81 (delta 10), pack-reused 0\r\nUnpacking objects: 100% (84\/84), done.\r\n<\/pre>\n<p>Wchodzimy do podkatalog\u00f3w<\/p>\n<pre class=\"\" lang=\"BASH\">cd ContainersSamples\/\r\ncd Docker\/\r\ncd chess-ai\/\r\n\r\n<\/pre>\n<p>W podkatalogu mamy trzy wersje plik\u00f3w Dockeffile<\/p>\n<p>W ka\u017cdym z podkatalog\u00f3w budujemy lokalna wersje obrazu, tu dla przyk\u0142adu dla obrazu pochodz\u0105cego z dystrybucji alpine.<\/p>\n<pre class=\"\" lang=\"BASH\">docker build -t local\/chess-ai-alpine .\r\n<\/pre>\n<p>Dla obrazu Ubuntu<\/p>\n<pre class=\"\" lang=\"BASH\">docker build -t local\/chess-ai-ubuntu .\r\n<\/pre>\n<p>Po zbudowaniu tych dw\u00f3ch obraz\u00f3w , mo\u017cemy por\u00f3wna\u0107 ich rozmiar<\/p>\n<pre class=\"\" lang=\"BASH\">docker images\r\n<\/pre>\n<p>Otrzymujemy nast\u0119puj\u0105ce warto\u015bci:<\/p>\n<pre class=\"\" lang=\"BASH\">REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE\r\nlocal\/chess-ai-alpine   latest              b9ab394052a6        18 seconds ago      28.3MB\r\nlocal\/chess-ai-ubuntu   latest              db929792894c        58 seconds ago      275MB\r\nubuntu                  16.04               4a689991aa24        8 days ago          116MB\r\nalpine                  3.7                 34ea7509dcad        6 weeks ago         4.2MB\r\n<\/pre>\n<p>To co wida\u0107 od razu, z obrazu bazowego <strong>alpine:3.7<\/strong> o wielko\u015bci <span style=\"color: #ff0000;\">4.2MB<\/span> powsta\u0142 obraz <strong>local\/chess-ai-alpine<\/strong> o wielko\u015bci <span style=\"color: #ff0000;\">28.3MB<\/span>. Natomiast z bazowego obrazu <strong>ubuntu:16.04<\/strong> o wielko\u015bci <span style=\"color: #ff0000;\">116MB<\/span> powsta\u0142 obraz <strong>localhost\/chess-ai-ubuntu<\/strong> o wielko\u015bci <span style=\"color: #ff0000;\">275MB<\/span>. Funkcjonalno\u015b\u0107 obu aplikacji, czyli prosta gra w szachy napisania w Javascript, jest taka sama, a r\u00f3\u017cnica w wielko\u015bci jest dziesi\u0119ciokrotna.<\/p>\n<p>Literatura:<\/p>\n<p><a href=\"https:\/\/medium.com\/@marcosnils\/introducing-pwk-play-with-k8s-159fcfeb787b\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/medium.com\/@marcosnils\/introducing-pwk-play-with-k8s-159fcfeb787b<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/play-with-docker\/play-with-docker\/issues\/259\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/play-with-docker\/play-with-docker\/issues\/259<\/a><\/p>\n<p><a href=\"http:\/\/phusion.github.io\/baseimage-docker\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/phusion.github.io\/baseimage-docker\/<\/a><\/p>\n<div class=\"entry-content-asset videofit\"><iframe loading=\"lazy\" src=\"https:\/\/www.slideshare.net\/slideshow\/embed_code\/key\/qIleXAiX6moDsz\" width=\"427\" height=\"356\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen> <\/iframe> <\/p>\n<div style=\"margin-bottom:5px\"> <strong> <a href=\"https:\/\/www.slideshare.net\/larrycai\/learn-kubernetes-in-90-minutes\" title=\"Learn kubernetes in 90 minutes\" target=\"_blank\">Learn kubernetes in 90 minutes<\/a> <\/strong> from <strong><a href=\"https:\/\/www.slideshare.net\/larrycai\" target=\"_blank\">Larry Cai<\/a><\/strong> <\/div>\n<\/div>\n<div class=\"entry-content-asset videofit\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"3r8QsmlPTi\"><p><a href=\"http:\/\/collabnix.com\/kubernetes-hands-on-lab-1-setting-up-5-node-k8s-cluster\/\">Kubernetes Hands-on Lab #1 &#8211; Setting up 5-Node K8s Cluster<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"http:\/\/collabnix.com\/kubernetes-hands-on-lab-1-setting-up-5-node-k8s-cluster\/embed\/#?secret=3r8QsmlPTi\" data-secret=\"3r8QsmlPTi\" width=\"600\" height=\"338\" title=\"&#8220;Kubernetes Hands-on Lab #1 &#8211; Setting up 5-Node K8s Cluster&#8221; &#8212; Collabnix\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Konteneryzacja aplikacji wykorzystuj\u0105ca Dockera i ich orkiestracja\u00a0 za pomoc\u0105 Kubernetes\u00a0 przebojem zdobywaj\u0105 coraz wi\u0119ksz\u0105 grup\u0119 zwolennik\u00f3w. Postanowi\u0142em zmierzy\u0107 si\u0119 z tymi produktami. Za\u0142o\u017cy\u0142em, ze wykorzystam jakie\u015b darmowe \u015brodowisko, kt\u00f3re pozwoli mi na pierwsze zabawy, bez zb\u0119dnej instalacji oprogramowania na stacji &hellip; <a href=\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\">Continued<\/a><\/p>\n","protected":false},"author":1,"featured_media":1060,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,23,8],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pierwsze zabawy z Kubernetes - cz\u0119\u015b\u0107 1 Docker - W chmurze o chmurze i nie tylko<\/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:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pierwsze zabawy z Kubernetes - cz\u0119\u015b\u0107 1 Docker - W chmurze o chmurze i nie tylko\" \/>\n<meta property=\"og:description\" content=\"Konteneryzacja aplikacji wykorzystuj\u0105ca Dockera i ich orkiestracja\u00a0 za pomoc\u0105 Kubernetes\u00a0 przebojem zdobywaj\u0105 coraz wi\u0119ksz\u0105 grup\u0119 zwolennik\u00f3w. Postanowi\u0142em zmierzy\u0107 si\u0119 z tymi produktami. Za\u0142o\u017cy\u0142em, ze wykorzystam jakie\u015b darmowe \u015brodowisko, kt\u00f3re pozwoli mi na pierwsze zabawy, bez zb\u0119dnej instalacji oprogramowania na stacji &hellip; Continued\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"W chmurze o chmurze i nie tylko\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-27T20:46:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-18T12:28:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2019\/08\/Kubernetes_New.png\" \/>\n\t<meta property=\"og:image:width\" content=\"730\" \/>\n\t<meta property=\"og:image:height\" content=\"389\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"djkormo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"djkormo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\"},\"author\":{\"name\":\"djkormo\",\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\"},\"headline\":\"Pierwsze zabawy z Kubernetes &#8211; cz\u0119\u015b\u0107 1 Docker\",\"datePublished\":\"2018-10-27T20:46:42+00:00\",\"dateModified\":\"2019-08-18T12:28:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\"},\"wordCount\":731,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\"},\"articleSection\":[\"chmura\",\"konteneryzacja\",\"migawka\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\",\"url\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\",\"name\":\"Pierwsze zabawy z Kubernetes - cz\u0119\u015b\u0107 1 Docker - W chmurze o chmurze i nie tylko\",\"isPartOf\":{\"@id\":\"https:\/\/wchmurze.cloud\/#website\"},\"datePublished\":\"2018-10-27T20:46:42+00:00\",\"dateModified\":\"2019-08-18T12:28:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/wchmurze.cloud\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pierwsze zabawy z Kubernetes &#8211; cz\u0119\u015b\u0107 1 Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wchmurze.cloud\/#website\",\"url\":\"https:\/\/wchmurze.cloud\/\",\"name\":\"W chmurze o chmurze i nie tylko\",\"description\":\"W chmurze o chmurze i nie tylko\",\"publisher\":{\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wchmurze.cloud\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\",\"name\":\"djkormo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g\",\"caption\":\"djkormo\"},\"logo\":{\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/wchmurze.cloud\/index.php\/author\/djkormo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pierwsze zabawy z Kubernetes - cz\u0119\u015b\u0107 1 Docker - W chmurze o chmurze i nie tylko","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:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/","og_locale":"pl_PL","og_type":"article","og_title":"Pierwsze zabawy z Kubernetes - cz\u0119\u015b\u0107 1 Docker - W chmurze o chmurze i nie tylko","og_description":"Konteneryzacja aplikacji wykorzystuj\u0105ca Dockera i ich orkiestracja\u00a0 za pomoc\u0105 Kubernetes\u00a0 przebojem zdobywaj\u0105 coraz wi\u0119ksz\u0105 grup\u0119 zwolennik\u00f3w. Postanowi\u0142em zmierzy\u0107 si\u0119 z tymi produktami. Za\u0142o\u017cy\u0142em, ze wykorzystam jakie\u015b darmowe \u015brodowisko, kt\u00f3re pozwoli mi na pierwsze zabawy, bez zb\u0119dnej instalacji oprogramowania na stacji &hellip; Continued","og_url":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/","og_site_name":"W chmurze o chmurze i nie tylko","article_published_time":"2018-10-27T20:46:42+00:00","article_modified_time":"2019-08-18T12:28:06+00:00","og_image":[{"width":730,"height":389,"url":"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2019\/08\/Kubernetes_New.png","type":"image\/png"}],"author":"djkormo","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"djkormo","Szacowany czas czytania":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#article","isPartOf":{"@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/"},"author":{"name":"djkormo","@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323"},"headline":"Pierwsze zabawy z Kubernetes &#8211; cz\u0119\u015b\u0107 1 Docker","datePublished":"2018-10-27T20:46:42+00:00","dateModified":"2019-08-18T12:28:06+00:00","mainEntityOfPage":{"@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/"},"wordCount":731,"commentCount":0,"publisher":{"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323"},"articleSection":["chmura","konteneryzacja","migawka"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/","url":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/","name":"Pierwsze zabawy z Kubernetes - cz\u0119\u015b\u0107 1 Docker - W chmurze o chmurze i nie tylko","isPartOf":{"@id":"https:\/\/wchmurze.cloud\/#website"},"datePublished":"2018-10-27T20:46:42+00:00","dateModified":"2019-08-18T12:28:06+00:00","breadcrumb":{"@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/10\/27\/pierwsze-zabawy-z-kubernetes-czesc-1-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/wchmurze.cloud\/"},{"@type":"ListItem","position":2,"name":"Pierwsze zabawy z Kubernetes &#8211; cz\u0119\u015b\u0107 1 Docker"}]},{"@type":"WebSite","@id":"https:\/\/wchmurze.cloud\/#website","url":"https:\/\/wchmurze.cloud\/","name":"W chmurze o chmurze i nie tylko","description":"W chmurze o chmurze i nie tylko","publisher":{"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wchmurze.cloud\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":["Person","Organization"],"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323","name":"djkormo","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g","caption":"djkormo"},"logo":{"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/"},"url":"https:\/\/wchmurze.cloud\/index.php\/author\/djkormo\/"}]}},"_links":{"self":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts\/794"}],"collection":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/comments?post=794"}],"version-history":[{"count":41,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts\/794\/revisions"}],"predecessor-version":[{"id":1028,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts\/794\/revisions\/1028"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/media\/1060"}],"wp:attachment":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/media?parent=794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/categories?post=794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/tags?post=794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}