You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1162 lines
1.9 MiB

3 years ago
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10">
<meta name="description" content="IoT Εισαγωγή στο Cloud">
<meta name="keywords" content="Cloud, swarm">
<meta name="author" content="Apostolos rootApostolos@swarmlab.io">
<title>Cloud !</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite::before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
:not(pre)>code.nobreak{word-wrap:normal}
:not(pre)>code.nowrap{white-space:nowrap}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
table.tableblock{max-width:100%;border-collapse:separate}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot,table.frame-ends{border-width:1px 0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article toc2 toc-right">
<div id="header">
<h1>Cloud !</h1>
<div class="details">
<span id="author" class="author">Apostolos rootApostolos@swarmlab.io</span><br>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Πίνακας περιεχομένων</div>
<ul class="sectlevel1">
<li><a href="#_cloud_intro">1. Cloud - Intro</a>
<ul class="sectlevel2">
<li><a href="#_cloud_computing_tutorial_for_beginners">1.1. Cloud Computing Tutorial for Beginners</a></li>
</ul>
</li>
<li><a href="#_cloud_computing_architecture">2. Cloud computing architecture</a>
<ul class="sectlevel2">
<li><a href="#_virtualization">2.1. Virtualization</a></li>
<li><a href="#_containerization">2.2. Containerization</a></li>
<li><a href="#_virtual_machines_vs_docker_containers">2.3. Virtual Machines vs Docker Containers</a>
<ul class="sectlevel3">
<li><a href="#_docker_containers">2.3.1. Docker Containers</a></li>
<li><a href="#_virtual_machines">2.3.2. Virtual Machines</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_orchestration">3. Orchestration</a>
<ul class="sectlevel2">
<li><a href="#_kubernetes_vs_docker_swarm">3.1. Kubernetes vs Docker Swarm</a></li>
<li><a href="#_technical_comparisons">3.2. Technical Comparisons</a></li>
<li><a href="#_conclusion">3.3. Conclusion</a></li>
<li><a href="#_popularity_of_searches_for_each_platform">3.4. Popularity of searches for each platform</a></li>
<li><a href="#_short_answer">3.5. Short_answer</a></li>
</ul>
</li>
<li><a href="#_docker">4. Docker</a>
<ul class="sectlevel2">
<li><a href="#_images">4.1. Images</a>
<ul class="sectlevel3">
<li><a href="#_dockerfile">4.1.1. Dockerfile</a></li>
<li><a href="#_docker_build">4.1.2. docker build</a></li>
<li><a href="#_displaying_docker_images">4.1.3. Displaying Docker Images</a></li>
<li><a href="#_removing_docker_images">4.1.4. Removing Docker Images</a></li>
<li><a href="#_docker_hub">4.1.5. Docker Hub</a></li>
</ul>
</li>
<li><a href="#_containers">4.2. Containers</a>
<ul class="sectlevel3">
<li><a href="#_running_a_container">4.2.1. Running a Container</a></li>
<li><a href="#_listing_of_containers">4.2.2. Listing of Containers</a></li>
<li><a href="#_display_the_running_processes_of_a_container">4.2.3. Display the running processes of a container</a></li>
<li><a href="#_stop_a_running_container">4.2.4. Stop a running container</a></li>
<li><a href="#_attach_a_running_container">4.2.5. Attach a running container</a></li>
<li><a href="#_delete_container">4.2.6. Delete container</a></li>
<li><a href="#_container_logging">4.2.7. Container Logging</a></li>
</ul>
</li>
<li><a href="#_volumes">4.3. Volumes</a></li>
<li><a href="#_repositories">4.4. repositories</a>
<ul class="sectlevel3">
<li><a href="#_create">4.4.1. Create</a></li>
<li><a href="#_push">4.4.2. Push</a></li>
<li><a href="#_pull">4.4.3. Pull</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><br></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_cloud_intro">1. Cloud - Intro</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Cloud computing is the <strong>on-demand availability of computer system resources</strong>, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet.</p>
</div>
<div class="paragraph">
<p>Large clouds, predominant today, often have functions distributed over multiple locations from central servers. If the connection to the user is relatively close, it may be designated an edge server.</p>
</div>
<div class="paragraph">
<p>Clouds may be limited to a single organization (enterprise clouds), or be available to many organizations (public cloud).</p>
</div>
<div class="paragraph">
<p>Cloud computing relies on sharing of resources to achieve coherence and economies of scale.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAErCAYAAAC4gcr6AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOydd3gc1dm375nZKu1Kq95lWZIld7mAjTHGlWISaqgBE5JQ8gEJITHBJBTRElpCeHlpeQkJEEJCDZgemjFgDDbu2JZlWc2WLavsavtOOd8fKwnLBVxWFrbnvjTXzs45M/Oc1e5vntOeAyYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmhxbSQBtgYnL11Vf/LC0tbZ7H43F2HxJCCAzD6HnTu7W3t3u9Xu9ljz/++MKBs9jkSMMy0AaYHNn8+Mc/LhoxYsRtEydOyvpqfU0fUdx5A4nZp3wv59l/PvMkUDrQtpscOZhCaTKg6LpeWVFR4f7k82WcNPMEvB0+XKku0tI9AAgE3X8EQlHefuNVCgoKnJdffnnqX/7yF9/AWm9ypGAKpcmAYhiGJITAH/Dz2md1yJJA1VqJ6Qa6LtCNr19j0RgFVg2LBIFAQB5o202OHEyhNEkov/zlL29yuVw/sFgsYuc0v98f7ujoOO9vf/tb047HDcMgFlNZX9OCphvxTdPRusVS1XV03SAWi5FXJWMI4+AVyMQEUyhNEsiVV1552WmnnTbv+OOPT4q3KfYlFotRXV39wQUXXDD52Wef3dZzXAiBrhv4g1E0w0DTjG6RNNB0HU0XBEJRgsEwhpGCkHZzcROTfsSsvpgkhIsuuqhy9OjRd02ZMiUpEokQjUZ32WRZ5sYbbyzNy8t7dcdzDcPAMAwC4Sj+YHzz+cO0eYNsaw/Qsr0LXyCCIQSiO6+JycHE9ChNEoIsy0NPOeUUT3NzM6qq7jFfWlqaVFlZmb/jMcMwhKqqbGhsQ0LCEIIhHj+TS+2kuJMBCwiBECCJGIYQ2WPGjFlRVVVlCCFEW1tbl9frnfP444+v7O9ymhyZmEJpkjB0XWfNmjU4HI7dphuGgdfr3e1xIYhvCJKVCD+YVs7YMaOpb2hC8PUQIcMQCCEUgShCCCRJZvbs2Tz55JP/BEb2cxFNjlBMoTRJKIqi4HQ6d5umadpujwshyM70cFJZIwCGFmHM6NksWbGaaVOmE/QFcHvcuFJc8fw7DBna1uZlxaolpKd3jycyMekHTKE0SRhCCFwuF5qmsbvOHIC0tLQ+aYqiRGOxmH7q7FkoioIkSaxatQqA9s4uOsMGxcX5GELQ4Y/yxsK16Ebcs9QMg1AwwPAsfY/3MzFJBKZQmiQUVVXRdf0b03dEUZRlS5Ys6SgtLXUpigJANBrFMAxCwTB6OMTWhmC82o3EZ6sa+wwZ0mJhhh6fYQqlSb9iCqVJQonFYng8u68Fq6pKIBDoc8zv92sZGRmhd999NyxJkgzg9XrloqIiq2EYGFYHRx8Vn63YvM1HIPQpmq6jagaBUAw1EsAw0kyhNOlXTKE0SRhCCDRNw+/37zZd0zTsdnufYw6HY9Ipp5wyqKioyNkz7Gf16tUYhoFu6Gja196pYQjavEGiMY2oqiEE2OXeDp7+K5jJEY8plCYJpbS0FF3X0XV9t8OEcnNz+7zXNK2tqalJzczMdEqS1HMMIQTRSIzfP/E+f3npc4QQhKMqvkBkl2sawoiHGzIx6SdMoTRJKOFwmFAohMPhoLW1FZvN1psWi8VISUnpk//ZZ5/9Cvjll19+ea3dbndu3bq1XgiR/JOf/GSSQLBpcyebNnd+4z3jw4tMnTTpP0yhNEkoDQ0NRCIRSkpKsNvtJCUl9aZJkkRPh80OaM8+++zfqqurqzIzM9M3bdr0lNPpzBdCTMpKc3NKZdc33k8Ig8GDitm2uT7hZTEx6cEUSpOEIYQgJycHv9+Pw+EgEAgQDoeRZblXJHduo9wdkiSFY7GYcf7Zp8kWy959RRd9ssCc12jSb5hCaZJQ0tPTcbvdyLJMbm4usixjs9l6Z9bsjVBqmvbxJ5980pqXl5e7Y7X66wC+ffdbWlq0rq6u9f1XKpMjHVMoTRKKEIJYLIbFYuntlNF1HcMwUFUVj8eDruvWU089dUTPObm5uZkZGRkXKYpir6ioCKxZsyYYjUb1N998M8peLFdiGIZutVq39mvBTI5oTKE0STixWAxFUdA0DVVVURQFwzCIRqMIIVAUxX3JJZdc35Pf5/MdPWHChIysrCzmz59/UXp6esmxxx6bn5WVtVuRbGtrw2KxYLPZsNls2O125s+ff8LBK6HJkYYplCYJIRgM9vbaaJrWHYw31ju/W9d1otEoEBfSl156Sbfb7SGA/Pz8rZmZmaWxWMzq9/tDK1as6CgtLdXcbrd1d/ey2WzIsowQAlVVe8Zu7jlkkYnJAWIKpUlCkCRJAGRkZGCxWLDb7aSkpKBpGsnJyei6jtvtJjk5GUmS/M8888z1QCuAEEL6n//5nysaGxsLIpHIn5588smQpmmrbTbbKMMwrLquWwzDsAgh5PitJEOSJF2WZU1RFE2W5WhnZ+cTxKvp5jghk4RjCqVJQkhKSmp76qmnOjwejwFIQghJCCHxdRujkGXZAER9fX2QbpGEXpF9dMfrPfPMM3ft8FYiHmS6J9C0AIzuzcSk3zHX9TbpL2TiD2KZuLBpwJ6jZZiYmJiYmJiYmJiYmBy2mFVvk4PB+UApoAL37iHP3nTEmJ01JgOC2ZljcjAoAjqBt4FTgCogDbihe9sOTAEuBm4CVgGVu8lTCdQBn3dvJiYHBVMoTQ4G9wKDiItgCfAPwA5kdqc/BWwAZhP3Gk8AFu8mzzjgGODrSBsmJgcBUyhNDganAUOIV72fBgqIe4ht3ekq8AHwMXB1d/ro3eTJBGLAcODDg2O6iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJyWHMgE1hvP/++0sikch4VVXXGYaxtrq62gyZZWJi8p3koArlI488kh2Lxc5RVfWHmqZN0jRNysrKwuFweFetWnXyfffdt/hg2mNiYmKyN/T7zJynnnoqOxKJXBCLxc6JRqOTVFWVnU4nw4YNY9iwYdjtdhwOh6e2tvbXwLn9bY+JiYnJvtIvQvnXv/7VrSjKmbquzwmFQtM1TVOEEJSVlTFs2DA8Hg+ff/45v77pblLyKrnpZ6fh8XiO6g9bTExMTA6UhFW9n3vuOVskEjkduFgIMVNVVaeu6+Tn51NRUUFOTg5r167lXy+9xpIWB5UTZ1M1dBCb24LMGeln+fLl6saNGx1mW+UhRS7xyEAFOTk5JS6Xq8RiseQbhpEthLBZLBaLoiiy0k3PSbqu60AsGo1GrVar12KxdKiq2tzS0rKxo6OjifgyEXVAYGCKZTJQPPDAA8UWi+U0SRK7deIMw8AwdHTdQDMMDCMuF6qq9qZrMU2NRCIv33PPPVsSZdcBCeVzzz2nRCKRU2RZPkcI8X0gTdd1kpKSKC8vp6CggLa2Nl5/421eX9ZKyZhZTBxfRXmOA10IghGDL+rDnD14C63btvLiiy+WPfHEE3UJKptJ4ii22Wzji4qKZlgslnHJycnpSUlJzuLiYmtFRYWjrKwsNTs7W8nJySEzM5PMzEzsdvteXTgQCBAMBtm2bRvNzc1s2bIlWltb61+3bl3U6/WGwuGwLxKJtMVisc/WrVu3gHgItvZ+La3JgFBdXW2ZeMyE2mHDhg7aWZl6BFEgQMTXj+9BGPF9Q3ztY33++RcbN26oq0iU47XfVe/HHnvMGovF3pAkaZYQAovFQlFREUVFRQgh+HTRIm578Bm09NFMnX4uN52SisshE4gYBKMGgWj8FaArZiElJQVFUUYS9yRMBg4JGFtQUPA9t9s9MzMzM3vcuHHu4447Lmv06NH28vJydnAODxiXy4XL5SInJ4fRo0dDPLRaH5WNRCKsWrXq5C+++CL80UcfdW7cuDHs8/laQqHQ25s3b34LWE58TR6TQ5j09PS0/Pz81BWrt/DCc19gUeJqKYQgrouC7h26tXGHNAgE
From Wikipedia, the free encyclopedia<br>
<a href="https://en.wikipedia.org/wiki/Cloud_computing" class="bare" target="_blank" rel="noopener">https://en.wikipedia.org/wiki/Cloud_computing</a></p>
</div>
<div class="sect2">
<h3 id="_cloud_computing_tutorial_for_beginners">1.1. Cloud Computing Tutorial for Beginners</h3>
<div class="ulist">
<ul>
<li>
<p>Cloud Computing Tutorial for Beginners</p>
<div class="videoblock">
<div class="content">
<iframe src="https://www.youtube.com/embed/RWgW-CgdIk0?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_cloud_computing_architecture">2. Cloud computing architecture</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Cloud computing architecture refers to the components and subcomponents required for cloud computing. These components typically consist of a front end platform (fat client, thin client, mobile device), back end platforms (servers, storage), a cloud based delivery, and a network (Internet, Intranet, Intercloud). Combined, these components make up cloud computing architecture.</p>
</div>
<div class="sect2">
<h3 id="_virtualization">2.1. Virtualization</h3>
<div class="paragraph">
<p>In computing, virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, storage devices, and computer network resources.</p>
</div>
</div>
<div class="sect2">
<h3 id="_containerization">2.2. Containerization</h3>
<div class="paragraph">
<p>Containerization has become a major trend in software development as an alternative or companion to virtualization. It involves encapsulating or packaging up software code and all its dependencies so that it can run uniformly and consistently on any infrastructure. The technology is quickly maturing, resulting in measurable benefits for developers and operations teams as well as overall software infrastructure.</p>
</div>
</div>
<div class="sect2">
<h3 id="_virtual_machines_vs_docker_containers">2.3. Virtual Machines vs Docker Containers</h3>
<div class="ulist">
<ul>
<li>
<p>A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Docker is the service to run multiple containers on a machine (node) which can be on a vitual machine or on a physical machine.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A virtual machine is an entire operating system (which normally is not lightweight).</p>
<div class="ulist">
<ul>
<li>
<p>Virtual Machines vs Docker Containers</p>
<div class="videoblock">
<div class="content">
<iframe src="https://www.youtube.com/embed/TvnZTi_gaNc?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="_docker_containers">2.3.1. Docker Containers</h4>
<div class="paragraph">
<p><span class="image"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAQPCAYAAAAAvRJvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOzdf5Bdd3nn+fenq6u3T1dvr0ql0mpV6lMalUej9SiOx+so7hPjOI4BY8CA40kMGEP4McRhGZbKulxelqG8FEWxTJZQLMUkngAhBrwEDDjgOAYcY5zbxngdj1A8Ho/witsqlUqlVal6Nbpdqq7+7B/n3B/dfbvVAhtb+PMqbMnWved8z0/8ffp5ni9ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERMRLgV7oAURExHOrKKsxw4TMuMWYMEbILCFOA2eA0512a+mFHusvu6KsRsCbQROYRcOxhbnW4gs9rhdCMV1NIqaAEcO84NRL4R4spqvtiFHDksx8Z641/zzsY6Q5t1MGZBaQj3fas7/057erKKstwDh4BHQKc7Izt/z+qp9HNgETwBJwvNNunXkBhvuCKaarCcQUZhRxyvb8wtxL5z6JiIjz28gLPYCIiHhujE/PTIyX1U7gNcAdyN8H/9TwU/BPEf8RuNPmDw27i7La1Ezo4nnj7YYv2/5/ED+UuPSFHtELoSirKeR3ArPAj7Fvw2x9ocf1fCvKahTxA+OfYv/E4u3Py47ENtsftv1TwU8tfxNTPi/7evH6jO3/DPopcAcaen9ttflT4D8DPwKuKqarsV/oKF9ARTkzgbgB8wPX/3/wMUk7XuhxRUREbNToCz2AiIj4+TRBqO3g62y/D2l3nV6rgTRbA0xirpd8PXCbrc9L/tOirNqddmvhhRj7860oq63AJLCIfawzN/uLPs4bBFdYjBh2yL61mJ75l52XXsbDXtCrbUoJJF0H/BC494Ue2C+GAD8vae/N879N4spuYr2sbYirgM8+D7t88VJ9/Hbvt8sYXiNxpe1xSduB9yIeB47/Qsf5HBovqwnBNuwlpFOddmvtYzG7EK9FXFD/s6+mfg5fWvdJRESct/KT94iI81hRVqPgPcCnDZ8W2m0b6jLB45gjwEGjZ4FjiJM22Nos8T9h/gq4uiiryRfwMJ5PnwF+AvwQVP2id24zbzgtg2ARdGLozPqX3xngFHjRZqn5/S9l0HQY4efzsk8Clxn2Ns8+xjuANxRlNf687fXFxvXf7DpQ2JyKlZ85ZTitunxwEXwCfF4HkwVX2v6JpX+0/eH1PmtpEXMKONMNeDVl5REREeeFZGBFRJyn6uAV+4DPYXY3//qMxFHgSeDrhoML7dYjxXQ1BVyL2CXxDsxm402SLqIO8nyoKKu7fun6wRh6s9kXIHAk8RXQryGuBI4gPvJS6Ps0xH7DlyVNgSdBf4F59IUe1C/EsntvWFTl590+W8CvHLy/JY2Cd4GuAB547nf64iQAqQlirX7eBd8C/gXSNTYnJP0x9nPek+wXyYAksPFZXnGCZxFfBrZK2gZ8DXT/L2CYERERz4kEsCIizkNN2dBO4HNYuxEIncJ+DHRHp916ePDzTePouwHGp6t/J/GHgvdQl57sMLpV4pliumqtbHx8vlrW3+sFynrqtGdPAbe8IDt/EWkCo19p/npp6cWunvvgVTE9M4IoQVfXJYqD97m2Yv9mUVbffUkETdVNwnId0BmiM9c6BdzW/PVLQd1qiiaItZ7mOXyAl1BQMyIifrmkhDAi4nxkNgN3gHc3c9aT4K8gvW5l8GqlhbnWCcyfgG7FnDACeRdwO2L7L2D0vyiT4JdOCVW8yOm5D6RKWzCvNJ5QHcU+Az5pA/YWpMvBv/TN8ruE1gxe/TIqymoMmOyWjr50jjwiIl6qEsCKiDjPFNPVmPHv2n6TDYYF4BvA+zrt1qmNbKPJRLgf8X8izgiNgS8B3vTLsDJhUVaj2HuAzVBnZjwPxVsR66rjCk1YQfBc3oXj0zMjwFbEVU3m1RLwlNG/F15qgmU7DNc8Zzt9ERvo/0Xzv19qzXt6i+3/vhe0ewkF7yIi4qUpJYQREecZ461CH0AGtAQcxL69Mze7oeBVV6fdOl6U1ZdVT3D3GW0T/A5wF3Bkre8V5cwYaNJ4SmbTQH+fBdBJzKkmQLam7spp4K2YU0hHO+3WqaKsRm1PSOquHtg96HnghMWphXZrceg2p6tRxA7wJtubJb0buNB1adUosKsoqxP9nkQ+BjrWWWt7ZTWGmQS2IMaBkea7ZwwnMCcW5tbvGdZkSOwGRptZ9bOdudn5FZ8ZB+/BLFkcW2jPHq2PZ2Ycsak+T9BEQBaB48YnF9rnvqJiUc6MAptBk8BU7w/MAuIYcOpsfdC6E2dgO/YC6GhnrnWyDhoygdgCTGFOI4522q355s+2IrbWIQYdFxzr7quYntlEfc0nNn40xuaopONrXcOBMU9Rr8K5CTE2sIljlucFpzvtc1sZstnmBLAVPNILVNnHQPOdudapVa2vnsMAg6RxzCWIfc2/OgHcK/g+0puor892oZcXZXX32VYaLcqZEVB9XWEB
</div>
</div>
<div class="sect3">
<h4 id="_virtual_machines">2.3.2. Virtual Machines</h4>
<div class="paragraph">
<p><span class="image"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABK4AAAO9CAYAAACrfy/EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTlBMzI0N0Q5MkQ0MTFFODk5M0FCQzFENzg0NkFGRTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTlBMzI0N0U5MkQ0MTFFODk5M0FCQzFENzg0NkFGRTciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBOUEzMjQ3QjkyRDQxMUU4OTkzQUJDMUQ3ODQ2QUZFNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBOUEzMjQ3QzkyRDQxMUU4OTkzQUJDMUQ3ODQ2QUZFNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrtmlwIAAdnrSURBVHja7J0HfJVV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
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_orchestration">3. Orchestration</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Container orchestration automates the deployment, management, scaling, and networking of containers. Enterprises that need to deploy and manage hundreds or thousands of Linux® containers and hosts can benefit from container orchestration.
Container orchestration can be used in any environment where you use containers. It can help you to deploy the same application across different environments without needing to redesign it. And microservices in containers make it easier to orchestrate services, including storage, networking, and security.</p>
</div>
<div class="paragraph">
<p>Containers give your microservice-based apps an ideal application deployment unit and self-contained execution environment. They make it possible to run multiple parts of an app independently in microservices, on the same hardware, with much greater control over individual pieces and life cycles.</p>
</div>
<div class="paragraph">
<p>Managing the lifecycle of containers with orchestration also supports DevOps teams who integrate it into CI/CD workflows. Along with application programming interfaces (APIs) and DevOps teams, containerized microservices are the foundation for cloud-native applications.</p>
</div>
<div class="paragraph">
<p>Container orchestration used for:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Provisioning and deployment</p>
</li>
<li>
<p>Configuration and scheduling</p>
</li>
<li>
<p>Resource allocation</p>
</li>
<li>
<p>Container availability</p>
</li>
<li>
<p>Scaling or removing containers based on balancing workloads across your infrastructure</p>
</li>
<li>
<p>Load balancing and traffic routing</p>
</li>
<li>
<p>Monitoring container health</p>
</li>
<li>
<p>Configuring applications based on the container in which they will run</p>
</li>
<li>
<p>Keeping interactions between containers secure</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="_kubernetes_vs_docker_swarm">3.1. Kubernetes vs Docker Swarm</h3>
<div class="ulist">
<ul>
<li>
<p>Kubernetes vs Docker Swarm</p>
<div class="videoblock">
<div class="content">
<iframe src="https://www.youtube.com/embed/FmrAGliHvzQ?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_technical_comparisons">3.2. Technical Comparisons</h3>
<div class="paragraph">
<p><span class="image"><img src="data:image/png;base64,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
<span class="image"><img src="data:image/png;base64,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
</div>
</div>
<div class="sect2">
<h3 id="_conclusion">3.3. Conclusion</h3>
<div class="paragraph">
<p>When comparing Docker Swarm vs Kubernetes, it becomes apparent that the origins of both platforms have played key roles in shaping their features and communities today.</p>
</div>
<div class="paragraph">
<p>Docker, realizing the strength of its container technology, decided to build a platform that made it simple for Docker users to begin orchestrating their container workloads across multiple nodes. However, their desire to preserve this tight coupling can be said to have limited the extensibility of the platform.</p>
</div>
<div class="paragraph">
<p>Kubernetes, on the other hand, took key concepts taken from Google Borg, and, from a high level perspective, decided to make containerization fit into the former platform’s existing workload orchestration model. This resulted in Kubernetes emphasis on reliability, sometimes at the cost of simplicity and performance.</p>
</div>
</div>
<div class="sect2">
<h3 id="_popularity_of_searches_for_each_platform">3.4. Popularity of searches for each platform</h3>
<div class="paragraph">
<p><span class="image"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAGaCAIAAABixQeiAAEOr0lEQVR42uydT2tdVRTF/T7Vgc4ctKCg0A8gohTFgTM/Q6FkrKCTFkNT51IcCDqpWJWOOiiU4qBtbCEBaSo2uVGbpH2pV3wayeHt31rrpMXB3WjJe+/c82/vfc4+a+997nM3btwYhmF/f//JkycH//5D49/zLw9o/k1b/tDfh55qP7aVtPUr9RyqsO18+2szhDm1jdbPth1oKy8msy22aFxW4UXPLmJTy0ou3BDOUtsfZAo9wmXq4VRiA8QdLsrUrRStoyTDcHzmioKdiUE8n0xcLRcWxQbKOzM/EipIOkW8IjmVsPDECksFmJRlH58tFLZ8lsUepcvTr4aKbdR7vKFhGEaD4bnx/7t37/480UQTTTTRRBNNtIBGU2FuNIwfHkw00UQTTTTRRBMtoNFUmBsNwzAANt6g94WrooY0i/JF4aZFAPyLFrGhAu1vm4DOaMhb21bxfcuUAtRClHjRlELTDRUNFVBhPYE10xFzXiTDiLeL2CnMYcEsAAaBQTiu/ZLaFutJLgS76Fv7OK4YRX+KVlB+sDAWa7/HJhaxvv23liWYSWJE0xDre/O3V2fNsmaYxZBh1KB6uMZynew013copRgqVD06WBgp2KBeGRr3RGM04MIXuF7QMijGAK04m3pdA/YT/Ge8N+QEo3NIFMqjaejpUyCEWP7ZE3qUM395YU711Ami4tTJmpjLQy42WQd4FLy88OMoG1CsW5WoTD453J9cpHNuJnKST0JOuEn1V9IYDQt4oyIKbDnymR5teWsl0k/AihUpHjotBcBzDx3ZOeCLmmYoqGCWZ5PxfplH+tS/tuT2Jwg/LLhcTKYOkBS8Ru2D4yM9y+yGFmGGi3aLX1NMhfFUQHQKkJWEVoTWglGLUJworm1Vxa8tIbqjg7UWi1uCB4FlYJfA8gtiU4lEUb/uJUDprUXrsNHQPmlKHrOH62fWMpIWQKOIuyprgX62KLqB7gAEYIpsDmWARbH6G1AYmmq0VNBIhY8A+vHOanm+cIHGaURIE7cxHVp3/BosLQAlavKjQ4+k7Lx61ApSezEYYMcZ5j2VHYUFTwurqMa9Ff8X1EnC0PZcbxTFFeazmGGN6SQJbOTh4mYZlPpGg9tiMVJ0T7DX34JELA+IfhhCB6FlbBY6JmbmoLfSAdBYWMFmh2o9lBvP3Mh3jGvRuQxs1cQSW4HuEXKW4UPABeqGFUkDwCEIKgsAGE/EI9dqd/LfuPPQTw3pyUA13FCx81CYHEw6aCFCd04eI4uN44bLMWndLeKn67OtX88bGM3ceTZrWo4vQhqYK5aIIASE0uMmtrIoAHEZrL/z8X5XmQWjxS720DeRu2/4QXiKx54T2BwkAOIYgwK5IOXDzOvvl23RzRcsF+zlEUjk8rNhqG/+MjyZMSv+MvN/ueKdKZr1FMOZDvnWMNfQGA2SMcheNw9cYtiZQcVC4guQk0BCBpZ5OMxythnRCwC2VzFeIoCpU0I0W7QnQNOiUQe7uD0E5hdTejhj6AKlNDtUYKg/jYLzFOSQAiZsAg8wqV3FbcEOnQsVNwEYVSarDDmzzw4GYiqFEmYksk/pZLwC90d/e7c1ttkTYtAcslNXVNiz5S7FN7tF1jGTDGZyt61klloTapkTZ6D/vrx+RhQDxEZ1CNFaL3Rfj46fu5PvBr1aeipuZtbuhc5vK0cDYHwv65gR4DS8n/0aGCZV9NaBynMWBzFtrhMZ3e3o79aD5BjkZ3nmuCvLARRDKS6WhiINKZeguhQ6kV3D4Af/s2Vn2bMAJIACgBlecwj1wY3UzTC34HtsAsUJC2M3Av9x+pFjToO8CVH5Y0A1swLhy/TZdOdmNBFrdly2zL6Sibn7o7/mkbJfi0lwL4lHcMj8lSez/1cx0AprRt+NqK0hIphfns2Lz0KkASF3XCWLCbLiuRK4kg1Yhkz6HfnI1M68HcTNOpOYcbk0L7fn5lye9nvu2ZTpJreSgpXBDLt5PShLYiuw/cCDdsSrHkpWLmU8k8puh+lI2Tsv0EPqVS6TgnzUfQDum9ZGAQnQDPMOghanmTzMxbLoriCdzS1T6NfCmAYn9ZyNRDei1WragtFMjcqRIrG8vzQwZWIt7uLRyYnbqk37fuMAoV09INzKw6zbwm018P6kV3PmKAXuJdm70AKlVkrGUuqBTLmRlE9IUdKylqBjafRJLa6RPc1ewvjZwNeMqmpl31iyF2QSoDsD2N26J/TYRjGTR8QAqwhHhqPzgCn9o5KCjBKG47WC+1zjFP0m+urjXF3CxhDwKHFvsQMVAWoeXctEHhdvvdb96xjdosu5nnBfMBe1GAIOtEqs0aHo6vtlwax6dIXewSSQ5kKudTezdNmDYmQh1QIjClWAqIkq7Aqb1gRjn4jZ60oBPAWJXZByGR+n+uEvEXhEYLnmE+g/qyivRxgTBNyFFqVLQmDJSHUbxReWyyCaNc9dZN0Ap4+ZgQ23psoM0uPhMRs7i+h2L4BSvOnYseCMrgcJWiy23qCBEJdj5rK8+VpwQCG2x9PFGx4aAYqeBkd8C1vNUiSww7p5WjwIVpF8mNcjvgstri53qlWomNyIkTyhFrZvBTaDbe4Ddzj8DE7orNYpwJtEUSy9Yzt33pvVstT55XPnBVYSZMHw2PMwQ94aXbfg08tfL8aV/fo/f79JkBwhJhBZL+Kqn+3UoP57dMSnnq1Q9YtKnsaIdnwVCKkvVW4wv38feH5VH+KHiFwpJk71U0Tcz/wOKIYcLe+gxru8sFYVy4CbiMigV67b3ATMthF4n799sehnBBKwLus1WBCjdX6Ald0HPBDlkuUkVxYtu4djVy2xCW36HEXnUfgsZlHBJSVGTI881wmfcq9CBvcEWgDWhWsKDpYFlIqALTJb1CtrSYKSPqFWgOqS6QNlHO9vpJxssPpZEgz+uzBMgNxkUu0eC0A9oS2vsFvAzTLNkEtXCwpPaHZgxYgQ3NLicDmo3Dd9FKYn/i8ibNS/N4W5rPSz7klmByMIJBqRmMGEOyaqFRgNcHuJd5bl9RdF2Q0rBUcapS2Vs8z4G2ggbPxQEmWrSJfK7AnHF8Pcx4NmlgkZvPEvvYiGgyF0mU+hex574ApFfdTrx6OFiJDTJfxMhURlodx4YyCG1DGLWU446TF6dRYrLCynaRM4aVZGQNxE3UNFUFXbgqFBDkmJg9twZSgUrTEaiP16pjKJO7NBMdthtKY1DcrvYOMQC22+jss6ZcbYRpDq7WSL8eNBKhqgqXH/uTAPOc1sZJMfyvjM5f4wMfc7pYUCEnlNANZ7aZzsGsB42CCSxgoEtqQ9Q8X634GOvI6TZvUYCwK92LyLnBfMweDYAyyLVmZ2T8DsV4YS291R7gPbekXNCBzFEXzAANLnTsGKgRz9pnDTr8HzqTsdY6DLXAFz68p6AWM4Cp/iu8n960RzSNZaaupirg8lMtTYUQsDAfRUzS2MOZ69owQXfD9EjNMO9eFAo64xlHvVuU48wbMu5BeEMBVSB2+5xAWlM25FzzH135/GwQ2i1VLUgxCWHrAG+CH00Ntl48OQZW67ea0uqIj9jN4cw/BgXaHrNcfNksP6iAqzG7U1FR5uVOw8e/RKwtzCLBzYBI3yO8gLgXFX/CyKota1XmmZE+udK948duYIs9jpIXuvRAUpHicp4gqR0Xy5k2XWBS52vMbETZtBcCJ/3Rz3IdfwQpfwY6bMdZlSlJl8kIApB9+AjMPlUefNMvUnbZJUHJDzaw7t9L97zDqP9kfvI16o2PT6v8EcxhgetBid5URlF8H/7FmY3lDNOREmZTFfOZh5wPsdymw0tDEN2RKMhbd2ZuvD7M6Dx2tbs18fznqgntu3b58/f/7mzZtx3stI6+vrKysr169fd1Z8RuzFgfTveeiLtSKxpY+7u7P792fra3/9d39j/KiL6dWrVy9cuHDv3j1rX9zb21teXr58+bLu3MHhJB6onPJQ07QnvDFg97ILpkQuBDCYbj3H1+I6gEqOMfQb
</div>
<div class="paragraph">
<p>Origin:
<a href="https://www.nirmata.com/2018/01/15/orchestration-platforms-in-the-ring-kubernetes-vs-docker-swarm" class="bare">https://www.nirmata.com/2018/01/15/orchestration-platforms-in-the-ring-kubernetes-vs-docker-swarm</a></p>
</div>
</div>
<div class="sect2">
<h3 id="_short_answer">3.5. Short_answer</h3>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="title">Info</div>
<div class="ulist">
<ul>
<li>
<p>Docker:!<sup class="footnote" id="_footnote_disclaimer">[<a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote.">1</a>]</sup></p>
<div class="ulist">
<ul>
<li>
<p>Docker is the container technology that allows you to <strong>containerize your applications.</strong></p>
</li>
<li>
<p>Docker is <strong>the core of using other technologies.</strong></p>
</li>
</ul>
</div>
</li>
<li>
<p>Docker Compose</p>
<div class="ulist">
<ul>
<li>
<p>Docker Compose allows configuring and starting <strong>multiple Docker containers.</strong></p>
</li>
<li>
<p>Docker Compose is mostly used as a helper when you want to start multiple Docker containers and doesn&#8217;t want to start each one separately using docker run &#8230;&#8203;.</p>
</li>
<li>
<p>Docker Compose is used for <strong>starting containers on the SAME host.</strong></p>
</li>
<li>
<p>Docker Compose is used instead of all optional parameters when building and running a single docker container.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Docker Swarm</p>
<div class="ulist">
<ul>
<li>
<p>Docker swarm is for <strong>running</strong> and connecting containers on <strong>multiple hosts.</strong></p>
</li>
<li>
<p>Docker swarm is a <strong>container cluster management and orchestration tool.</strong></p>
<div class="ulist">
<ul>
<li>
<p>It manages containers running on multiple hosts and does things like scaling, starting a new container when one crashes, networking containers &#8230;&#8203;</p>
</li>
</ul>
</div>
</li>
<li>
<p>Docker swarm is docker in <strong>production.</strong></p>
</li>
<li>
<p>It is the <strong>native docker orchestration tool</strong> that is embedded in the Docker Engine.</p>
</li>
<li>
<p>The docker swarm file named stack file is very similar to a Docker compose file.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Kubernetes</p>
<div class="ulist">
<ul>
<li>
<p>Kubernetes is a <strong>container orchestration tool</strong> developed by Google.</p>
</li>
<li>
<p>Kubernete&#8217;s goal is <strong>very similar</strong> to that for Docker swarm.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="title">Update</div>
<div class="paragraph">
<p>Docker support <a href="https://github.com/docker/compose-on-kubernetes">docker stack deploy --orchestrator=kubernetes</a> <a href="https://docs.docker.com/engine/reference/commandline/stack_deploy/#options">options</a></p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_docker">4. Docker</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_images">4.1. Images</h3>
<div class="paragraph">
<p>In Docker, everything is based on Images. An image is a combination of a file system and parameters.</p>
</div>
<div class="sect3">
<h4 id="_dockerfile">4.1.1. Dockerfile</h4>
<div class="paragraph">
<p>A Dockerfile is a simple text file that contains a list of commands that the Docker client calls while creating an image. It&#8217;s a simple way to automate the image creation process. The best part is that the commands you write in a Dockerfile are almost identical to their equivalent Linux commands. This means you don&#8217;t really have to learn new syntax to create your own dockerfiles.</p>
</div>
<div class="listingblock">
<div class="title">Dockerfile</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -y &amp;&amp; \
apt-get -y install gcc &amp;&amp; \
rm -rf /var/lib/apt/lists/*</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_docker_build">4.1.2. docker build</h4>
<div class="listingblock">
<div class="title">docker build</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker build -t ImageName:TagName dir
Options
-t − is to mention a tag to the image
ImageName − This is the name you want to give to your image.
TagName − This is the tag you want to give to your image.
Dir − The directory where the Docker File is present.</code></pre>
</div>
</div>
<div class="listingblock">
<div class="title">docker build example</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker build –t myimage:0.1 .</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_displaying_docker_images">4.1.3. Displaying Docker Images</h4>
<div class="paragraph">
<p>To see the list of Docker images on the system, you can issue the following command.</p>
</div>
<div class="listingblock">
<div class="title">docker images</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker images</code></pre>
</div>
</div>
<div class="paragraph">
<p>This command is used to display all the images currently installed on the system.</p>
</div>
<div class="paragraph">
<p><strong>Output:</strong></p>
</div>
<div class="ulist">
<ul>
<li>
<p>TAG − This is used to logically tag images.</p>
</li>
<li>
<p>Image ID − This is used to uniquely identify the image.</p>
</li>
<li>
<p>Created − The number of days since the image was created.</p>
</li>
<li>
<p>Virtual Size − The size of the image.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_removing_docker_images">4.1.4. Removing Docker Images</h4>
<div class="paragraph">
<p>The Docker images on the system can be removed via the docker rmi command.</p>
</div>
<div class="listingblock">
<div class="title">docker images</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker rmi
This command is used to remove Docker images.
Syntax
docker rmi ImageID</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_docker_hub">4.1.5. Docker Hub</h4>
<div class="paragraph">
<p>Docker Hub is a registry service on the cloud that allows you to download Docker images that are built by other communities. You can also upload your own Docker built images to Docker hub.</p>
</div>
<div class="paragraph">
<p>To run apache, you need to run the following command:</p>
</div>
<div class="listingblock">
<div class="title">run docker image from Docker Hub</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker run -p 8080:80 apache
Note the following points about the above command −
Here, apache is the name of the image we want to download from Docker hub and install on our Ubuntu machine.
-p is used to map the port number of the internal Docker image to our main Ubuntu server so that we can access the container accordingly.</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_containers">4.2. Containers</h3>
<div class="paragraph">
<p>Containers are instances of Docker images that can be run using the Docker run command. The basic purpose of Docker is to run containers.</p>
</div>
<div class="sect3">
<h4 id="_running_a_container">4.2.1. Running a Container</h4>
<div class="paragraph">
<p>Running of containers is managed with the Docker run command. To run a container in an interactive mode, first launch the Docker container.</p>
</div>
<div class="listingblock">
<div class="title">run docker image</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker run –it myimage /bin/bash</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_listing_of_containers">4.2.2. Listing of Containers</h4>
<div class="paragraph">
<p>One can list all of the containers on the machine via the docker ps command. This command is used to return the currently running containers.</p>
</div>
<div class="listingblock">
<div class="title">run docker image</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker ps</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_display_the_running_processes_of_a_container">4.2.3. Display the running processes of a container</h4>
<div class="paragraph">
<p>With this command, you can see the top processes within a container.
Syntax</p>
</div>
<div class="listingblock">
<div class="title">docker top</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker top ContainerID
Options
ContainerID − This is the Container ID for which you want to see the top processes.</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_stop_a_running_container">4.2.4. Stop a running container</h4>
<div class="paragraph">
<p>This command is used to stop a running container.</p>
</div>
<div class="listingblock">
<div class="title">docker stop</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker stop ContainerID
Options
ContainerID − This is the Container ID which needs to be stopped.</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_attach_a_running_container">4.2.5. Attach a running container</h4>
<div class="paragraph">
<p>This command is used to attach to a running container.</p>
</div>
<div class="listingblock">
<div class="title">docker</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker attach ContainerID
Options
ContainerID − This is the Container ID to which you need to attach.</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_delete_container">4.2.6. Delete container</h4>
<div class="paragraph">
<p>This command is used to delete a container.</p>
</div>
<div class="listingblock">
<div class="title">docker rm</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker rm ContainerID
Options
ContainerID − This is the Container ID which needs to be removed.</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_container_logging">4.2.7. Container Logging</h4>
<div class="paragraph">
<p>Logging is also available at the container level.</p>
</div>
<div class="listingblock">
<div class="title">docker log</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">Docker logs containerID
Parameters
containerID − This is the ID of the container for which you need to see the logs.</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_volumes">4.3. Volumes</h3>
<div class="paragraph">
<p>Volumes are the preferred mechanism for persisting data generated by and used by Docker containers.</p>
</div>
<div class="listingblock">
<div class="title">docker volumes</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker run -d --name mycontainer -v /var/www/html:/var/html nginx:latest</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_repositories">4.4. repositories</h3>
<div class="paragraph">
<p>You might have the need to have your own private repositories. You may not want to host the repositories on Docker Hub. For this, there is a repository container itself from Docker. Let’s see how we can download and use the container for registry.</p>
</div>
<div class="sect3">
<h4 id="_create">4.4.1. Create</h4>
<div class="listingblock">
<div class="title">docker registry</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker run –d –p 5000:5000 –-name registry registry:2
The following points need to be noted about the above command:
Registry is the container managed by Docker which can be used to host private repositories.
The port number exposed by the container is 5000. Hence with the –p command, we are mapping the same port number to the 5000 port number on our localhost.
We are just tagging the registry container as “2”, to differentiate it on the Docker host.
The –d option is used to run the container in detached mode. This is so that the container can run in the background</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_push">4.4.2. Push</h4>
<div class="paragraph">
<p>use the Docker push command to push the image to our private repository.</p>
</div>
<div class="listingblock">
<div class="title">docker registry</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker push localhost:5000/myimage</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_pull">4.4.3. Pull</h4>
<div class="paragraph">
<p>use the following Docker pull command to pull image from our private repository.</p>
</div>
<div class="listingblock">
<div class="title">docker registry</div>
<div class="content">
<pre class="highlight"><code class="language-sh" data-lang="sh">docker pull localhost:5000/myimage</code></pre>
</div>
</div>
<div class="paragraph">
<p><br>
<br>
</p>
</div>
<hr>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="title">Reminder</div>
<div class="paragraph">
<p>Caminante, no hay camino,<br>
se hace camino al andar.</p>
</div>
<div class="paragraph">
<p>Wanderer, there is no path,<br>
the path is made by walking.</p>
</div>
<div class="paragraph">
<p><strong>Antonio Machado</strong> Campos de Castilla</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footnotes">
<hr>
<div class="footnote" id="_footnotedef_1">
<a href="#_footnoteref_1">1</a>. <a href="https://stackoverflow.com/questions/47536536/whats-the-difference-between-docker-compose-and-kubernetes">origin info</a>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2021-04-05 18:11:47 UTC
</div>
</div>
</body>
</html>