From 9940a755dc5d62f7f0bf603faaeecb3585b25cd6 Mon Sep 17 00:00:00 2001 From: Rubab-Syed Date: Sun, 23 Apr 2017 05:22:01 +0500 Subject: [PATCH] Add images to networkingcontainers.md (#2192) (#2988) * Add images to networkingcontainers.md (#2192) * Update image tags --- engine/tutorials/bridge1.png | Bin 0 -> 30498 bytes engine/tutorials/bridge2.png | Bin 0 -> 31213 bytes engine/tutorials/bridge3.png | Bin 0 -> 34559 bytes engine/tutorials/networkingcontainers.md | 51 ++++++++++++----------- 4 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 engine/tutorials/bridge1.png create mode 100644 engine/tutorials/bridge2.png create mode 100644 engine/tutorials/bridge3.png diff --git a/engine/tutorials/bridge1.png b/engine/tutorials/bridge1.png new file mode 100644 index 0000000000000000000000000000000000000000..70b3128b2d82acb2e24168396d9b008a35028181 GIT binary patch literal 30498 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 literal 0 HcmV?d00001 diff --git a/engine/tutorials/bridge2.png b/engine/tutorials/bridge2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d44ab62dee8d1f6904009766f97a7d83481c2d1 GIT binary patch literal 31213 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 literal 0 HcmV?d00001 diff --git a/engine/tutorials/bridge3.png b/engine/tutorials/bridge3.png new file mode 100644 index 0000000000000000000000000000000000000000..3f550a5ed7354910bcc1cbbb27ecf890d07dd505 GIT binary patch literal 34559 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 ;$vk)!3ZgQ17n(?Wip{~tT$Zun{ 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

~9b?CURD?>jW#;A+~SQv?` z@?1)IZ)$nSMV3eDsiLrc33*CavD%@r?IP_a?cZIgRz~Rhh*UtO>t>MMLLwqolX0fqqlcxrzic zb-WxB=l>SF9=pOdAgMgLU*5%OdkY)QlSJEqB#{#lBr|Wncqx`VO_ao^?ElPi)&9gd zeusbk1qn+#FAtcY+MZEU15#P>2l_o(#Je`Xd!4Dh?0J9SJ5Mk2_@Fp&dG+~BVP{%3 zVn{jU56W`F!EyhhFoSAqUxO+=!R$AzSOdp6C@@B+Ak00{J*4CiH6S9wwHNZ6)l9%N zso%t->#D1Yt@D{+z*oygXh@7mmI~?6Vy}@-avB{@F^*Q3>561M=+3E5QWeuZSP&Xq zAR}hNU(pFIc^Pm(>(}1S9-g{YCiBAprf>$k@~JwlaT+EGsN}EMU_n5d@k#F=FpU@a zr6V`rOZPG$?mE(>Hgf-y(4DDk1iQR5=}E>>VP3&X!z>!>SsXN7R|LQ_nki(q-LLIk z(%An~yS8AjYHw=gXy$`MRT1x#+u<>aq@GU@(Ii2|;7BY%3GVdz?(0Yx=>sPZ6>M*! zqo4wC46QSX*(t(U%hH(qM+ZgY522;n8DeHoGp2X{I~HJxOQlMu&cn%Ye;ZA}uC6F*pv94^2 znw34J`Cu!6j-sh5Sw?x_Xm?TAyDCP~?1LB|VG^I1H1Qk?3m+?*fMo#&U?Ll9e3z2V zoBkO_{65|q^deHs?yX}-7(JCW#`QRW%H|%zopP+HS(0?&^ix|OBUhfJ%LEgr!k+@@ z8kBtS77uKHLKtr?t@_1SOqC#DcAsY0NfW@+N;9B!K>;0!{C3!|UOui7UtV>b0MZW{ zUQ|rKE|$2ka^bf^iJuL5F_cU`k`j;OodqFB&!m^2Y-Z&&mQR6#+Arwx0UB-@J^cH)L4e)p53J z78=2RwJ=R~GSL^QOvR@B_LEUc44daYX=(&KSg2srQ*LQ2liuhZa0o>Teh=##zQa{} z+qXo(x`MJr!t7oo&dQF&a~@}Kl=K!G$%C8QcaDlLd0e4#La(_ZPcXxM=lpyV=%Me; zS{p6mus>md%+0nPo3EE;zFHx1znq8ZRv=3o{XOn5JSth0>xXoDlHB%1JN#l6$ z9Q9hpXi{seq&!CLBMfnqL9C;xe+YCx1qzHF#(#_}?*SL_!hIC0|EsgNjB2Zk)<#S5 z61=z-+Cp)6Ymrilwm@-rcefTVF2%jL6pFh;g1Z!Vf?Kc<Sin z=Toz1xIGr+Wj}E%D6mn_W{AVe5$xS;I`{88)f>)J#0Fk(b|u=Q#B#jSmGmDtmq<1> za&glqV?TD2F%?xLNQb|Cp{oq4h4B9VnJY{!EtopXW?GuVO{ z$NWYjfyxeoKH%b?#Bhy|sP(21$I8=o~)4rapXWI6leMwcU7z zQ+XjRE4cn%J&jSz0lPx8=9qk?eD1vKllLuB^;^@y)6iffZ8aHV@)J$!&*|Yz!_e%D z`I>?C;IX1c*dGD+(MXl_Cy?$TUs`7`NxNI+NG02&NzGawkiW6+WmGM_U2$Yd(svus z66qbhE|yU(q~53hC$*d;_*6r?|1o_NwkBh=bbcm)B^I|f{7V#VFewNN*FESWnPrTU z+#LD|M;EnN>AilcB!$}JZ4m8t2_SBB@i-UetYfa)fDLPObX48jpA0$ac+OG8Zvw}Z zeQ=WxXbOeQ=MCgGkj^|Fkf0taLr+ifG2_qPyi$kc$qnX4RlMSVHL{QTc`GoN8j7o7 z3PKx7%A;YNQmIw#!{$U*VC;zyrS)FX-H1rgjc3d7R{E})Njs7ll1o4dcSy|xH<^4p zrt{gD;2LsHN^9(T3T@S(hsvyel{V>_P2p-4GJp?nn(ka`TTO;Eek-h9_t(GhtYQlje}M=XS{{CrKQqRA{^U--p0?`|>vYYOtqsgM_uV4nK?JVDJz zXw&Z1e2_V5VtBjn7f5c+6Oz%hk`Gd%L;kwY$5XgoEn6&J*N2ozHiG%XZPucyzJq1- zF16lDcPl4{fnP&Fksm3Jb?}`QCyVLk=&@Zf1F>`23{zI^J*%dQ#E7ux8!cr!i)(3* z-!q)2C!?u?L3L*qBDG=V!bEyJiA(xkPt!sU3=MMGaNwN|6HB`pc9f)XJRUuB4`myl zblW^RBP%#WX2=Ns6hCNVF~d$j>UW0ypgopq8~?f1s_7?O*F%K-!b7eTJH$JZ$=ECk z+OcSy$7ObDjHmWtT;UxZMW7o0U1X_7%}PZn?B&X=cI$pVnMQGxr0pH6?Yo8YvkWzH zW}b+0@AlwG^wejt=w@>F6%qB0Hn#MJ=@~W2@|6YRS4-}*wwjMT;Qyj)_5X1i|GKRI z^{3~5S!$%D9*ngFPetE^8X&(xqv(v_Tob@CByDfX|Kp_!%E?c}Fy&Tzmis%m7WM0< z(4TPvtq9FkVcehfpG=GiwN671s;v1k=C&JgX0^HCg;0 zG9SvABZiF&xcUIWtI4{~n$9qEYQAbmDyL3C=$n93^#`|@b$s9p-)wVhDYg9@n)R8> z`KMrlpo50DwLuL5FvR{(U6FR-k(UohxHgWIq=P#iR#$|FRoBM=WkmNSrO`d!Bz3-y zFPjN0{%oxh0q%#d`F7fVS}ApCntXf#QN`DE!soZ0&&4Gmjx2Iy+tH2sD65u?6FOR*!}%I z6X?I6(*K79;eUYt{O3ddH_rW^Sr`8EY5w1zlCE{7rBO$CIsXC>l7NU5s512xF9=*- z)-i$N9^)GrJDMn{y;2LP?oHyW6m~?3&?!}|w|vttGWxhP!(rK5 zcnPLNXJUGRAV+y91kU-pF`@GAloZwclf#336pdyN1z{TB$dfNB4YJfV)ila)Q1b~m zXB6=@E6Gcze)nOdLHKOa?0=h0wS2T>t!=@H;w5i?bFk-K9RBvNp7^ho$bS>6{_}_b zP%!`VxBs6@%+gr1&X!UF{3rbR0dAn&y4t#{c-9|hOONHdqGJW-FO;;sX`+oez<27E zL!^>;TFtl4wXWE}A&&>P;bHx^&}N*zcqMIXc2n_A*9T8+yC)FR1!45P{jrVqqt;q4 zZ)UI4z*BuYC14OM{J^10&hWuAZ%$KrD&+YM|Juxl2TH^tN3=?G=DVt`P4spDm42ZR zpWNZWEZVD8%cuH6P9#j99kp7}Rwljz7Yt!dXP;P79#D^7jc6|AY5Mu7lue^CWKhvx zIV$v{($B}e*(+qFs_heYVuok8n5rqk)??olFu!fzIQFDH8m8Ef9(Vi0k|}(aukHgq zBfqo7nPQoSzs_#(Pv%DpH_f(bm$G05cfK9N3q9dYgeg5@z~hzhf>7RlsG=-?$W%l4 zSidv}{kV^P0m77!t57af#@VGBc7_YeI7}(UY?jF!b;Hy%x+871EOh7pl6b{kYfclR zqvXEEkT~yia^d1b6UP`J9_%>+a*A@mIjP?pf=~=UST?r#w|uktcJ|U5K9d^CQQaP} z@*vVAQR`b{wb}!XXl}T3F6&W`57 zM9hKER)nb+I@Yv$!Ko2jQ-IRqpq~{}ylTEtEw()&q>FTytba;4rKpNeQhn}45lsz6 zwz!QDdWPrgMM_tEb~c;Mq-@{tM(F1^CGPK}wtS;UNsWQOsIZ``<`dMq<4(+qekh?- zR!_~(GY>NwV8FlrJ^T4hq9bKsUo7)YW3=Xh+PgW&H;KMl!sr^ncpP&IxnvgyzZHwR zQ&J+g1)?^iJ4KccDeEViJ#s(v&atoz-yT zY!Pxd6y)&_*~W|&nZJmsOZv?&b5H!TaVHeQVd+9u0d*MheO!a6i^$uWhG%^fSrxUU z&la@szI(A%XS$pLFKf}9o(<)k;E4G4Kq-KO`*2$`?AaD*ukS*_hrc;#Pt!%c7}ev9 z-5|!7eWG*qq=M!=GvUg7V^@nly5c2>l}6~&NzA=JTE}^nGRterw77C>8q3an{ZfB> zysgj)mRHH~lPxchk?vgV_gi=UBpQE9`c#w1=6z6$yzS2UqW;=h2m5*}J57K7r@E!9 z-m(m*V^&r5g2v4NCD`(+c>kfG9OI6h4+0BOHS{G<@By7aUa@c0u_F@o%atkokXHEj zxDem;{AcN_Z* zH;XsF=c>7LJi z4wVN$e;`k;3xVP;ewVN()(K^&X`^WRsZ`J2GMly3r4uL1dg)`6U83VKvzc*!;4N@j ztSfjjjjLjJV7iF;Qeb_JDn-=JgEm3DU; zh*E-`r7m)rN%8*D4V>mzbDkTEF_+b*DZ0O*Pjbg`0`786&sN;?MMP@50@mEau0}~8{TAwjIK>;XKg>Swb6Wb6bgAJ;tU_y zl0y18S?o!a+M)0M z_V6D!(6o9ybCLs9s4yFXPGe{*kDcxm87yzPlfd1u-EEz1@k! zE`KD|I`-b-^}DIj&J`L-;k@iMvYXEFWYfU-)rTv=H0g*TNhJ>`>x2Wmkfa0Z8}x>i zQyvet)%(MC5%G@1^oKjrX?2Hlh?^PM&A5?CdrKV{lWeF`Xv&b?6gd7PSm0!z;lmem zjm6XT6ewV2GMx7Ums}B8%2)7JOa)+thzcCEE`~vLseK(eS0C3EI7*4#!GZ*dr&>|(7h@fMS-p>P@=oqM*U&4Qm<*qh{bEt28XCQIfjT`_RjD8Y9 zc$n_)@z7avi$0xN=FX#?ceFQ~(6^UY^Wn^PzR^2{R#g6<9Fpo#pf7R?=@q!}Hw#dY zl+$y~q_Bs+;Ed1m1{oV{^pgvDg=$Rjez29JYV#G`VLjdoYb%PkEAQqE5v+87>x{km zex^FVEk?Ss{HuIGm(6$GdUEVedpobRoV*w*Ing>I*#M3$Nnr(pm?OxBAPyg>X+5_| zIic%1kAknbGQUtrTEG4+o`x0EXXW#%9?7@ym@zBgC@pl-fR$gdi++Jil+#WilKgqT z$p80~OQKg4Wf*uzqxH~Z6s_cpq}Go z(OHr79>W`Ggftdftymnf4cNy}xB)6X4_Zc#LHF@9}mq4{S8(%<|n?SMIz z-y9P}{Kw6RFgMsnM%>UMRm}Cde`9UTYrp=KBq6s|e~JgM6H2SH&%?fXfnyK5^jU~0 z%L|+>_==KUVMBX>$MEL)Vm5TJEUVM9lrABXv%3AMNV3Q9>sn$^uQ40*B0_U=WoS5) z!RdGm>w;y^2%=k`Q&5#=uBZ7eIr6|DJgjvLga=!i5hvyLsmbOngMO)>l@RLMkY@I@ zdw4b~V8suPEZ(TZZ3B_&K)z?e_~w1SCly+OqstACYbqrL4bm}zMj6Q__6VrZL_1Xt z_$Ncw0mn4A6cfJjej^%n3*z-tz|M8pl4`2UR#Bc#9#Hw*CwMDs>kphKtH13w?#QGc zU*N@fojv}(2SeO#kj7!3*%1_JRov@Jxo@Ki5hHv)?EiGzzV>FNY!X(_}|KK%zjP{hds9QBw$teJ#9uO(@gGiUA9<#i>F0y z&Bep7O2BfoQHt1cm~X%-YB3KR?~YMipfS$L73#TkZ|{H1YGi-B8QQzMsYajoYvGKf z(Hx1uTFjvvke(aaXku1eZ#|(LaBUDB!<0E1^qXREm~Nxdhl?NvpN-yaFZY&BwN5Pb{FN80kKFz(N1mgLUOd^NHZpci{y0V1 z-psSzrmJEB<63$;LQ14aC0 zNzPO=2KS#gi18%n`h4GJMz_#kP=Ga}HKU)OV2r&RKu19`DA~fY^r!Oq-u}R(hWvIa8J(gq9iMG_6+fp{WYQ7oi+1^u zh5(*7S7}u^5L;EU9KXW9E-w3sk8<$1)A>(mD{^r#RzVG6rK=XxaTsA~cU`gNiLusj zhoTvi_7gc$NzxOcW8Kd`%{qvemChtbo~Pp+qsh zST8et@3JC`%W`z07xp}cP1n!u{H~HA10=qKes2{_!&45%CqzH!x~8cLb*(8Ql^1X& zya46FI@e0)5@fl4u#Stznwv3fN(5A}XEPBSo7b{?{4?8a{%6kk@B1^%n9(-n zV9*JBVwiNLZ6nD%PAGIIgy~#5`}L78k7|)473^D(8Gf9?!;%4Oi4=(2C+q8Oh*(Xj zZGEgFm;+5n2wh;$SlD?z8Fz#I`YuyAJ4MOY_q8GE`9=UAS4r=FSwJ+W3r>t-g*@cD zC!48wFRsLUKGpYBul?RK9sd%O`6Yx~?kDQ^RtW#)%-W|bNu#Wm+g2hJ+F#6wRH2G* z9r~W+*WyiI2MA?2Vp-2eR+r>VU3o%0O>|NH@FvAoUt~spN|Y@ZgNE5Wd!8}J$-PAQ zJNzKU{X*>3%K6RWul8?SwjHopS9vO9ho$xGJeIauTcOdGO5e1|4)`Z!LI%3(owVRapgzHA!8VPQPR1~wfL9(ghu*= z+Q)xTtT`h={z{&HdmJ$+oADpZO|nln3a+|CPq1UF|F2&PLj0XXZ@9P9VbE7ay5#oU0I|-WYj>+cXE{_U4cl)3BbE-P;8JEw)~qr@WzB2ois<|K z-k6Xeh}Klx#KpM4swk{n-P?{oNh#CoNz`S!8NxWyaK5@gRrSkfZS9C<6d`?<@hRb6 zG2zH5bdBd3kJ_tu7g_0RE!9iz&=H@l@t(^)B79F8DiLEY^s$sy*$#+i%+k=00Tl~M z(Rb)NTjDvKqZFw&e2}+dFOr8!0D`rx)yZtw9`*EZG<;O(NKhTIbzTR6vOlyrf4GnV zz@2{(_y57$tBn#2DXCd1ag05(e(qS-c=n`{68U&pFreki9RAV(OH1+D*Ff1e<4B0P zp_gvN4VRNE+){k{k+bN0A%L+Txm1(4D=|<0B~x<}y_w3>tcc3+58qYw-T?pu^--}q zP4&P$4Bs*L+2GrRC5Nx$?xZ$dtBwk|xkuk-m+esvpAAwlds@tv>FhM|@TpcmDiR7l ztQ`s3#4s|+|HEG!r!e)JUwkNdZgeARPWT0WUKL-UdSdqip3MhucNz$dKosEQr`@}e zLjr3^xU5t~X>q`$PQhGrtCw_htKy-^*D1p>N@)XZ+7a_SL{FYj9R1xRAnHq3c$kfW zi*pWOKP_Zs#L@kZJ}M$66j-cJ%vI$?^T?UcbkMC?(RPoi43_fWM`sFRe+67Eq-{Ds zJc6j@uP$8R-6Wwja;B#1D)`}T@G7kB(fb1`%fHh<^EMhKDD=M~IQBN7eyP20Q9feu zt8YPV?6(HR=i~i#Ihw^_c_ySze42&m%mx}sb9G#_-#s08S`i1NT3Y+Xr5{c=BTm-y zfI!D4x4fJ9A90!&SiYZ@xDwoUYDQGoMp}20)(Abpl`#V)J$$1j*WMSnOley^Uku?E zYbS9th~@C9ne$A1Q40uaBhcX_ZCdh##F8bzoI5c)+Ewbk183 z)4zN@(Cn}H%wecj=}hp6lF;^pE3Oh0K+2yyYeNot*I2IzRTIqc7=Edjuzo9 zwcU`{y)5;dn-*cIO#(NAjv`tbPtzD&0dV^tX_B8?;ty5d`IS>r5iq{s55IGvQ#>)q z5`SE`V{1F74lm#>`jLLUz*PZ1a$WLx#LE9Ht7H7I&DS#?Z&|u=F02QHaYcdua>`X3 zqL~{}pU|!be8Y3ljnR-J%!BZ3w*E?P{z-?;Y7CHx(_^sAc6RK$q7_%jPgea*?-1ir zM+daSKhruNjAt_&(^j;#4RJrPp&lkC8zfl;&4RlG*uYVSI`*vd3rPIYjv@{jGYXCt ztiFMs;imq-XqQ8XH>ll5^m342{=3u-JumwDOuTDe8QJ4@COza*+R6zPmql_{HHA3M z$9%y>iFCwtbXX#tNwgl_6#1EpCK2c;8tGW25im~RPE}8-EyI^yc zxjVemc9h}&iq!q}#n(R z$3^Tw3cS3H73gT;1zf=r-}b{%yzRuZkliwek;hopt{X%~Y-2hk^kr}pqv}-i3GvWa zG*(7vg+%@e#QB(Dv?P7Pr*~oH=ts+ee^!tdoHgq+g~ADOQwN|ptBJS!ya#IyiWvjI zs|nn(d_C=hBeHE&`ksID51wQgFV20_*O0;IF}iMCYKcTA%_qQhyOCNH*Ms3hO@}*0 zjQ~VZ%W4<;Q%SvJ$2rMgpM}^PLT~~+-B#Iy{r!!3^K3N_V$Dz;WGY|5TeJ{?^E_c# z33AcdL|Z)_eoPzGwpSOO#iQzZ1!9Nwbzw^1lf=|5?}brC7462uMaZc*!!d+4W^^;W zL#$^B9-+bUXgY|La?P_GYI9s($D-Gova@3bu-ON|c4$-OxjfHJl2|k)Scp}=g_XZ_ zBuR2LWh9n6?0}&}&-*WQv_(mjplC!Mtb1@ufN+S7&+*Wn%OMSHdE19DM3zGHd)#-v z7p)rf4Z0Dxwa5Bs0*RJ%4iFiq5z0%MXjMbtiQ3bn55xZWKi;e1(H*>-Xvpwigl9O8 zX5U<@T|0DlO~Jb-5FFK2$D;QSDTU;xdFhW1#-BQ|B?CGMoUsQ?Hbgs;iu8OEhwMCl zq*JFt)~fwRMGh=*L@qd}Uj1vau;1>g=x6RkEj%M;v4ggVHwQ#KcyKdNSMlo$9lx{@ zbUfTITDiV~iCkY$63ir$LQo-_bwr~1OrKq@p`DC@oOnS7toKcHBzlhMAy2xWbm)L_ zeZ=moQX}m>Yh+H3L$h|OtxvXRLmzQoOIl4^SdQ!hx>(&+ITpO zJj;_dza%&MH@$+pIYUR|nw6jT3>BsOu3m=Qo#A2gz3Q>gt|i+;7jCW-L8Ieoys|E& zSeEdQ>(U2;?&DiQDS*XKArbszVBl-N_6IVB+A$^2mr%e0)BI6Ew?elFFF1_I-EsR@ zjlgySdQ~;Qj8WNr|Mc|NO+(6h=hG-22QtrKXe+M#8FhWE8hI z+jLpR@E(Pj^Npn;&zp7z+N2z(VF7}HXAZ_|^rw!p>fk?S0pODGeY;f3puXS08C3RpO8YRD$TT2E+BjTXhI^>)K1r(j! z>xKE7R*&w9kDp^-8y?!Ue3}GHRwp^`CYaL>1c~DOqi(P`Fe0D6)CxWTHY@n&zE7_R z%Nv~E;IrsXNZPtS+icXB>p>Hng_VRA3{3MFaIS$JbduGua!6IW2{zEX$QM}m&*-}T>*aSNo$u4P-6Dn=?PBotKD6)`=?trTVo}Z(JggBk-60s!@ad1fG9vUzG zafoqx%AeF7W$v&+mZ5>hkOV#>nBc(PR0groXRfKxWEK7|t-da}7q*vA!35;yNH?XX zh6LFf%R)X$NisUvzxRE6zxJf69GvI}vgjO6_E)l5JN_pwUKI2tRM z3(w)vUU4%{JWIipz7Bkav+Rzp=YK=ub4lnuF+WSh`ppL0VD^t*ZT7BG6(#ny05quW z|2D2VtB9pg(uvPXGADS^gqJTmc>lDM719#9Yn}s=_-oh1NRBYN#thgkBhJi6?j^1$ zKMf#RylBQNO>GvZ+yXc*tS37)GRMO!i!oDOc>nrH4!kn}PlRUZr{ggoWxDFihlN#v z#D9E#FK5?x9atxJlv|{~b0uu1vZ#SNTY)oR4;8{;UO_6~j0bNP5e zIIUjfg7+WJ0}eF%3P1X>m)fPhD!!U#t(;dR9VqBijn~(8y%wgvM=(b;!XC_vDQ7-d z%(c_ZIqvR{d>$ljdMJWaLEVhiZvMl+O78GEd7~&~NFzkz&Kb+RQ9%v^8Gr=PBIOid z7+LAO$==kyeo?EBaGH~^0ZR0VdTknm+A>y+(LLu^VnDL4lEf!1=A#J_^OH430_)Gb@E;Xi(qw#;4@2jr23N!(>g%Wfr< z+~J|rnLR4(ZO=OU)R*N-_?1je)p(R(r?t)i`Vnrre1W|q2CW~4cq1G|;E06AE&H+4P$1>k2WQUFpila)66f-vR|Ry7qrQ6fYN{}DyV*PI zrI^#J?Qy&xEccRu%Fp_zzc^gH6FyBeHvc__ljfxO@9YUpzD`9iBqrdjrnZ=|uT{)r zrHGm{+L!Or39ANppsKG3Co@3r14gAq$N#+5pDk*qA8DV`{^MSRN!fNXE1%9I5zP1> zF;j#mj?AHG;>)Y7kL?;eiPBWV+S8+xvx;V-mz0VuU|Oh8d|D|e0TOMJ&YCv=vq0~E zMO*NXuZ<3Q>Vh*1>z_E-Z@!o+RLJwZQw8=q>3{!`A3Yo}q_gi6ctQ>P-%gAt$M^v% z0p(rJQv&??{$dE=<5FqXRp)F9cw~h_r4=d;nortI8vetLKBir8%$RwnB_+itX4NJw zH5(X7s9aL<3_mU^EzJ>M)BG7yP|v|Po8w!XfQo9#f)KvSF0HVZwLR{CR$H|oVpsCD z-hLI&D^=p{bH7Gs%8VvyBCvL?`8r99r;lAcz)<^Fch39N?c`X$c?Gpr)ey;|dxM5z zSd0tS-a?Z^8)8ELD~oX>I%*&zM@a=8QzX;6Mr*85Oi78%5xVL)W&YUz3B7GU`Vg-& zD5u5%>BijJ8im*gadOhLVBwhTekZ&ZI^i~V`=_I-<5c&mYH*>x&g$`TRP13!<#FEo zUu!lWma_gt2Pf~59c4Tvs4XpHX8rVN%pC+&|9eFwW#9rW2Nrq$k3~_1-#%m53J$%U z-$>){@nQ_BFE7B8u%DRBY7n6JVmXjpjD3C5qdY&ER--Z7Ew_9EnlfsN z^ITUBujSwuUMCf>qB<&T3HyP`q=pp#GgE*_ zT%|x$TG}K5@6S4iIlxCDSl+jdF6?pWW{$ZkamOk|UpPW83b4HtXv!%pISd?A1C{0v%>wyC)S|O#4LtPN&=WFa zpI{{9RiBDs3S>O;n+F_f8tQF>Zyl_dHCKa#?3S=HGv8V#VN=C+&F zT;fZ}q9$jnv)YUL0Y}zU$B!Q(D{YUe#xRm|oi17{0=DN`ynH-MhYBiDT9-(i5W}R1 zNS9sm-x&e}hVKJ=vh{GAoIU%uy?bx&UL}u~>%J_%`oTg&zIO^#_-0fWKZdU2Nu+fj#8)!Yl*0Woe51+-K}m8IOAjS?Bki;~1%AyJK>O-Rvo{1y>hvVqR0@nIp8&2RYiiPd#KXEG0|9>jR0O#?E#l z4JCpBnG!8E3en-XBmWv_+0zF@9`z`epX4=ZeKU?m%kwIaf`A01ArJnFjN1?#S?Tbh zAg2Yz)lt$J{C1Fo4iyW1uGMn_DNQBhqp@DC;CF{`E(KXw1;bNG zo-fUemKO44A1L+-LV}TV(FB2IBKvolbTOkS69vKwTXb%!$KWwPXzeuanqH9{Qg3eZ z6L}a6S(Km6(XdHQI$RL5MalM@=wUaS>OFDnImnhj?HgblW5@c?G?8Kg>IH2D?Cv!0 zUE(ybVWs%VOk3+x=yQK~8q4!)ncqD1L-VOq3?Mlj3w@hGkU<;K(e)p!x;n z`_xa6J%_$vi-j(o=29S{AB|nRUcS_=ID+EJ-mP)(4~jY!K^`AcT@`ptLND;)P z=aR5oo|v@ng-)pqTmJ@@T0s(UWjB%y@)#T9hKEvajGW$pvg@qraQ$eQ#)AQT8Owgg{#) zqdk8Qw>KmLonCid{4t+LohIw4i8y=AY1m;2f?_g}jsjj3$)i7YjkSrtTuVIGknMbl zV%DD^IX`2i@@vf-Dxzke%4$$8T?BAiNvm5alRP~4PV%0%U$lTN0v_K~_2cSFW*^vf z#*y+dt7Z5P_vY(#3SmoQY2{ZKYPkxuvX*_wzdn*MNxylKM1m5xmV5e~nyFVZRynAb zjwv@x3?+a3h1A=R?}%Q-PNEnw?8OU3Ebv&$Z+Ju{S3$D8PXt9W95ebV2wuk#+#x>r zrEaeXLnd$BA0M)v2^5p5o`W211?%_XOS_cpxTo}8zS*z$QyTbUb#I8ocB!IZ*Zsa< z#gq|iY_}>!)_OKBxTb-a3z~_*Zdo0=+0GOE!pfnlB9JXWZGm}nogkRyFKTG5{@yx4 zTxrLE33W866djtwCsV$Z8KCsHc!nAa1pS%=ahXI+TnJY|W@ z@tcl_jC&>whom+vB0<79`K{w|)i5dW0OzB^mvA3;Hq+2wx3QEdf~BQocSWmJe$r1E z)q3$^xF~r`P|ae*MpufHo_7}+eK{$0GWk=r8}9aug=LsR zYv1fP1Hlx{kc2AY>Mq6RAX3F*0@G$}QPd=U4x&=p`Ht+-I&${Q8zzPJo&XZkhH0(+ z)J;6e_+Gs1P{i2s*R`d;Y-VNt<_jEJ$5S1dK^k$2nk}+G=Ti^uPHu04+xI?~o{P;X zwsPF(v_7_`{kSV1_GqeY9(|&*k7%*<)95(be`W}Z(~k%~rZSOjAqza%WMxw;%ulDD z4?>+Z&{yvq`jgPP^W^f&46Yy+3TzUNoBLD?ht{Vx+(qK2pUbs?bnM-Ja+K(~b=(Hm(dZ z_rsG0kVcQi#*K4BL7PdKDvZUyE)NlT+)(DOWHm|&$<_SL&aVXx8`(-M zKp_i_HJ`j$2n~(wyqAdaySCgW9L1=v6+JmlE|C1Yll)cr?X|C~RStB)bGIyn0EzG0 z=cJ=*lvKz`-x&R)!5QmO?;u&QXtfcf#Njg?8F0JU&?H(h4tU zWl-r@qOQ9HXl5lHbXCi;v>#`kH={p~jz33?m{t(nY?5-jTMyI;sk_}-=?;Uv)tZUp z7U#gwhTo5!U7U4RVf|EH>pd$!MPm6$lGXBvNwLSjG~S)nZ^)Oux4MT-Ridx*>)51t z#<)Hd;l1-6KtG7g(!wQIxOFQno z*r|}!7k#!SuTjj*K!w@q4~JMVwB$-tD}HBN^=Qnu)<?-Eh2I1m|H``qyhFK{oM&N|_shMem|7S(=CTYpui<_I#vv7 l06#H?2YcNrW$)h5B>K;{bridge1

+ Inspecting the network is an easy way to find out the container's IP address. ```bash @@ -63,12 +65,6 @@ $ docker network inspect bridge "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" - }, - "94447ca479852d29aeddca75c28f7104df3c3196d7b6d83061879e339946805c": { - "EndpointID": "b047d090f446ac49747d3c37d63e4307be745876db7f0ceef7b311cbba615f48", - "MacAddress": "02:42:ac:11:00:03", - "IPv4Address": "172.17.0.3/16", - "IPv6Address": "" } }, "Options": { @@ -94,7 +90,7 @@ While you can disconnect a container from a network, you cannot remove the buil Docker Engine natively supports both bridge networks and overlay networks. A bridge network is limited to a single host running Docker Engine. An overlay network can include multiple hosts and is a more advanced topic. For this example, you'll create a bridge network: - $ docker network create -d bridge my-bridge-network + $ docker network create -d bridge my_bridge The `-d` flag tells Docker to use the `bridge` driver for the new network. You could have left this flag off as `bridge` is the default value for this flag. Go ahead and list the networks on your machine: @@ -102,17 +98,17 @@ The `-d` flag tells Docker to use the `bridge` driver for the new network. You c NETWORK ID NAME DRIVER 7b369448dccb bridge bridge - 615d565d498c my-bridge-network bridge + 615d565d498c my_bridge bridge 18a2866682b8 none null c288470c46f6 host host If you inspect the network, you'll find that it has nothing in it. - $ docker network inspect my-bridge-network + $ docker network inspect my_bridge [ { - "Name": "my-bridge-network", + "Name": "my_bridge", "Id": "5a8afc6364bccb199540e133e63adb76a557906dd9ff82b94183fc48c40857ac", "Scope": "local", "Driver": "bridge", @@ -120,8 +116,8 @@ If you inspect the network, you'll find that it has nothing in it. "Driver": "default", "Config": [ { - "Subnet": "172.18.0.0/16", - "Gateway": "172.18.0.1" + "Subnet": "10.0.0.0/24", + "Gateway": "10.0.0.1" } ] }, @@ -137,24 +133,26 @@ To build web applications that act in concert but do so securely, create a network. Networks, by definition, provide complete isolation for containers. You can add containers to a network when you first run a container. -Launch a container running a PostgreSQL database and pass it the `--net=my-bridge-network` flag to connect it to your new network: +Launch a container running a PostgreSQL database and pass it the `--net=my_bridge` flag to connect it to your new network: - $ docker run -d --net=my-bridge-network --name db training/postgres + $ docker run -d --net=my_bridge --name db training/postgres -If you inspect your `my-bridge-network` you'll see it has a container attached. +If you inspect your `my_bridge` you'll see it has a container attached. You can also inspect your container to see where it is connected: {% raw %} $ docker inspect --format='{{json .NetworkSettings.Networks}}' db {% endraw %} - {"my-bridge-network":{"NetworkID":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99", - "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.18.0.1","IPAddress":"172.18.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}} + {"my_bridge":{"NetworkID":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99", + "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"10.0.0.1","IPAddress":"10.0.0.254","IPPrefixLen":24,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}} Now, go ahead and start your by now familiar web application. This time don't specify a network. $ docker run -d --name web training/webapp python app.py +![bridge2](bridge2.png) + Which network is your `web` application running under? Inspect the application and you'll find it is running in the default `bridge` network. {% raw %} @@ -162,7 +160,7 @@ Which network is your `web` application running under? Inspect the application a {% endraw %} {"bridge":{"NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812", - "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}} + "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.17.0.1","IPAddress":"10.0.0.2","IPPrefixLen":24,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}} Then, get the IP address of your `web` @@ -185,25 +183,28 @@ Now, open a shell to your running `db` container: After a bit, use `CTRL-C` to end the `ping` and you'll find the ping failed. That is because the two containers are running on different networks. You can fix that. Then, use the `exit` command to close the container. -Docker networking allows you to attach a container to as many networks as you like. You can also attach an already running container. Go ahead and attach your running `web` app to the `my-bridge-network`. +Docker networking allows you to attach a container to as many networks as you like. You can also attach an already running container. Go ahead and attach your running `web` app to the `my_bridge`. - $ docker network connect my-bridge-network web + $ docker network connect my_bridge web + + +![bridge3](bridge3.png) Open a shell into the `db` application again and try the ping command. This time just use the container name `web` rather than the IP Address. $ docker exec -it db bash root@a205f0dd33b2:/# ping web - PING web (172.18.0.3) 56(84) bytes of data. - 64 bytes from web (172.18.0.3): icmp_seq=1 ttl=64 time=0.095 ms - 64 bytes from web (172.18.0.3): icmp_seq=2 ttl=64 time=0.060 ms - 64 bytes from web (172.18.0.3): icmp_seq=3 ttl=64 time=0.066 ms + PING web (10.0.0.2) 56(84) bytes of data. + 64 bytes from web (10.0.0.2): icmp_seq=1 ttl=64 time=0.095 ms + 64 bytes from web (10.0.0.2): icmp_seq=2 ttl=64 time=0.060 ms + 64 bytes from web (10.0.0.2): icmp_seq=3 ttl=64 time=0.066 ms ^C --- web ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.060/0.073/0.095/0.018 ms -The `ping` shows it is contacting a different IP address, the address on the `my-bridge-network` which is different from its address on the `bridge` network. +The `ping` shows it is contacting a different IP address, the address on the `my_bridge` which is different from its address on the `bridge` network. ## Next steps