From 16ade98c2a82cba1765d8db9e9ac61b258fb69c9 Mon Sep 17 00:00:00 2001 From: datazuul Date: Sat, 14 Oct 2023 11:35:55 +0200 Subject: [PATCH] Add docker desktop instructions --- .../docker/docker-desktop-first-start.jpg | Bin 0 -> 56719 bytes .../2023-02-06-docker-and-docker-compose.md | 135 ++++++++++++++---- 2 files changed, 108 insertions(+), 27 deletions(-) create mode 100644 assets/topics/development/docker/docker-desktop-first-start.jpg diff --git a/assets/topics/development/docker/docker-desktop-first-start.jpg b/assets/topics/development/docker/docker-desktop-first-start.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ea4bf10dc33b5ffe489477fcd6dddb1ea5de721a GIT binary patch literal 56719 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

iKVH4<;eUH3DA+|iUQZG96mhl% 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

N{v7J zs6rJaRl9cFT z9;h(0h;IzEhTk$h+ncT!+m9CQjVYb~u4VSITf2mIO%1fTl9~p-bNdAf7vBMLAb2J> zi=K;kjkqY2n~~E6>MreN`@2^yh0cwJ&#c*Sb-cm$WI@xujL0)`(ItN=SrPPnWpucI z^IOiEgflwz1DXBk~^7PF01d>b~UW+6;Q(#FxQaT;?LK}s{Lcy*pWtQY@HvBdG zLJt{6e8uY#hXs~(j`k3H+pMh`-kRuMHxDiQha3cS%q`w=#L-n7AhjLa9rzW7B7n$< z_wMK9LA+$b?o!#902~e+%K!EFU_pe|{#ayv&gJa-)DbBDdM>6OO$%m(IXS z*J^+gqI8gbZQQnQ;4*fADxe!TQJ5zpqLwJ zrdmO250^^($uJ$r&In?cDJgeKF2Sv+GxEs3abDP0rJ6N*+>GNQm?chff?d1Yk?h$O zH2z+Fm~whmp;0?P7kmHi!cDYvfS1BLd*yA=gYRKWTJKLvcDys-y524|Sn67bNqaf< z+K!L)a=%C|(m`o31D{&XOJZQqlDnpD{pBIDLDrqWYoTO%$kmMA53qAy>asrFGc=+h zO{pmO5tWGLjaI&RYFZyh zmw@uH3K6hKBH++TG3XuP7~;>{P+r;*wW66vf@UGxN;0W$Z}UoUjkloSSzd)`{aRaI zXK`1t96tiIs#SL|c&vI)&v%-!!ZI@=7J~@n4h?w=yBc;C(>#b0>Zr%QduUnzEoG{^ z3s)ZJfEeF~a-MQHQkZEy%;OXPF!o$aWK*cPsz%@F22z&-L>a4qHM;wNn+(^NYdU*) zUm7;c{{D$RuhooqhgdanAxf%VMvW)b{lxmfI^wdoTqPozzWdN_rDBpzLl<*R(vbdI#- zeykNb@TRgVwm;%Nmbh5dA%!UVDwxU=VTv?b|PAA&lz9!w!3Fz?wc4&P08WmkGXz`|&xn4%7anCV78o z&63o%dGWL!@5k~l>3G<3 zhTicpJ8cs?EAjvfK8KMVpzPoqTuy5xxQK(vV8S89Ik>%vU$6^_8lRB;?0CuW- z@4Nq&mNBPuFF8A@;&)(j5Neci#WR?b_o6a=+AP8jN?tZc6y*{~{1&m?3KEsy(+6s+ z-r7G4bX2V8Rs_4)>@Djw4%w=0^Gn%XjDR>rW$Wqliyf*bRP~d~Rvz~#S*<7xl|Od` ze-k8huSYz75~3$8(JB1HTUlH;bfe>GkG;8R`li;ii<9ZcQ*7(s^;~hIyorj%`9A^S zJNV8%&d&8s|IeT$oL2i!H8fjpbQ8`bX-OghNgpiezL7?ka!rVAq;9%tYStd1=_j<{ z8g98+l-31k5I!sEdLbUO^xYag4U<%GuKoFp(N4WDF!*PiZhi!eg%l{2 zb7nvKa@z=%xz(szxFb%9b2vN<@WrSE4%t?V!?49N!xNGs1hK*&K?J>K%9>X28{vIO zpF1z3b>~qn+$wa;clvSu<@fmUpawzd)um7JV3(-iTs}5Cs!@0a+oR`d!ovAmA|0+EF`EgI($7B0$=_odf6NCs z{!N0Os;)-7&uX@62 zJAy0>i^Q`$!Oh^wa`G2Um`3KB82JK>Ck5XQ9-_sT#!~KzUrxx|e~hU-;PKVCFGmh$ z_Ea;k!tMB?%HOgrGdsa2G+IBx^#$ghZ5OK7(Oeq3(@sSCFTC(PM+L>Wn`o^6t!GFkdzfh{d-?SmudL#Z73@VZ%KP)JXWrcM zy&6cvtS2LH4Hy%Yu=4ACi#U(Et~sX!8p3xOnJ3{KU!FL^%TN(XKUYw(Q;>o^`f;| zEP-t;rqIqKT;JA$Ugu$xHTz4f{#(y=pNJ%{#_f~x#TEGl=KQ6_ZyXV-2kKlNz1M9ZhTs8Cs=3%Epj(%fug zQR6y`rR@&vima$H)oR!!bfEPG=D5@~sdIS@>D*5t+7CpZs;PWMh4KU_o*i+|Zt2eI z7KV)1TST@AOn=~Nru#&;M|xjo7LyFmeZo$fK6M_J%;D|G12N~Fh>5hqD#|YOX!+FP z{a}g`JrUDbF!wA4&B&_svh`bn#fYx|93+rcffw9=6pA7iS9BcoLhpJDDfeRGdVV9t z;8Laa#A>{z_0wjEo5MlzEZq)m2Trf@WmT8pHum#)aqly|2e-^+`Z`?0Y(+~c#)y7X z3`>3ZMxqzr=Jz*eBiB1fYr>QX*cGi$`JosL!@rI?yZqcALUP5>Hj9 zvX?9Nx#a`%Xj$i?2?#9NDV8u(Z1u%*Hlb##Dxh#zN)~S!j1( z2^vq2z0$kB2>=L_|JhmS58rjUaZFs3cyb$lJ45<=6aU%0%eN^JF$NA>GQdQAcLl5% zJ&l*kQZc<({N=nm+U&GH`b+OgcYS|C0Bwz$F57N>b`et|qIsb%O?uoNDq&mb-hV!L ztO3t8ESi~?<;zge`HVW(@jf|eJ6f)+JBYx<@y#cYC>EC3mo9-4OEzjt0{N&Ej>NF# zc6awtEzK@;JMI|j6JIync4jVnP7PG8pHH;bH!Z_xyF&K+f>#(tE$Q|Z)Ed^?6P!gI$4M>3Ux`C?d!3}O8hK8 z*v(`1AS=Gon%#tqPIkeb&q)o&;4^(`h+{ zWL(AhqY!m6OZEvFPCwMk>A7JjNqW;+%90vEE+g=KtHUZ^ZC1a}Sy)LVj4os>DNsBv zC%3TTDSsU~P&=~0=NITb3-pet;;hdjWbxpN{1oTrp&oGdZG#tq`#L=2_J7{82CehQ zk6V2A?hnoo<(B@$FNWJ#dHH6Zz_l>ss5Ek+SJRfop0K%pb|pn&ceChzQT)N37fjd5 z@?4PbFy*U*`wT=@s(M6e#IksDuFbWvhk?s`^R4-W?|rLm*kS+jN;8RBAlS?IczP{6 ze(N}`HQ`IsJ2Dd?ko%)kH|B)KvkhqP_rg0@y<@>Xj%KWE56RjIHSNZ-`2|RQ6(d)- z6iX#nFfPeOz8CeNqx`L8_Rck3C6Iz9#I_oASR5+1fRX1biEf_dh_BW#|MFnnwGH9z zm~-lE$x)!C^G(-NclwnUXXHXtQ?R$|R-)ZF;#Mft%4vE(1HKbAEtcj=_K{W7y)Gx? z^&;wQr2K%wHdC7A@4LZ(|Gu*g-aXXqkq+JdYP#?Qy%`sp5Q5OdH)N~EL>r?+mZ=7k zEA{I7uGIVpCp*3L`@${Hh3J4w<25gskd5#3CH@{lr!s%)s-ziwDhVYq^~ zF0kVVLj+pcyQ6a4s>2u8LG_M{2FkV%ToUAUcH7!>bL&?z4Jz}V$)JSJe)bbZxt>TJ zQU+YFxxZK}z}Pe$K?By07{Bb7e`Uub&U~Pei1#J`ehbPiBN1QJ(f}5?(u=cdg3mZJ z^V1|-UNbBJl^Y&$5kLzUaWk%WDp%75?##ds!fH325>O`zUIy=(w>ay5s?0!r`6;#= zm^utnH4qF&jI@>cjOxRIue)d8Ahrsl);1LkC3?amIWnpY&9ihA+Ka2nT)|pkY08PS zi;x}QfEkJ*e~7gno$F$=u@|mvO|kDjA*4m=f#bKA=u|ej&F2*wQ%|vY6QJXwkvSqXhp<_7P>;jf{e6F6y0O0bchQl zsnuu%Z(u?j6ji+EhZK2RL_AZd4a5+t+dU+}%6>L?lYHlyKg5*r7X#W-_zP5&vKmT% zOYF*Nn+$GYXO9y}wZi|lDB)1B(6=V<8t1pxXsC` zJ^M{@)8C)({#WSJN1JXs?oJ}9}{F&XJc2S0?M(QwpIu;hD$O;8ByHBi;ml-bhJ-s3A2&<75-WxT!Pe2Eg+Fq0O*#{N_FxZbDD;R=I<=R~W933m+}|;gTDOZb2IHl_iqLW`i2=J%kZo+F{MIshVjQ;hQtwp%udDD?^a;SjcP0} zvVzuKREM8uzJk`}wW6KDUGocZ=xwC6_N-TuXBC`1G7m^g674%EqNNhaN8jgz@6auzJ*xjZlM&xJoXSQJUnea3g4J*)t6C|p#XR4S(Uo;`&^ets#+i7Mu&{Q{R&{YQh1sy$6>M60 z+~V-zgT8W#>Qm8sI?%^7`ma-Lx}{9CZ0UVw6BDslg1XCUMzdocv$&f7Abd>TaI6vf z=|0bnrb?jW{n4xjC(TG{)9Kzeb!US{e%TGR(VKX7wU`X!^T&Q+y(a{Nav{FhI60zN zZ*v*q6$5p3l9DD@%eWX%_{eo<)QBto>@BR?{wW+{Xd}EV>-22ty#^bfqVP^&T19N1 zh4KV*NI9j_WV2Y)k(wd#y^!VrG256KuANYpsKdUtw)jn_{2cnR`ni0SGC{fQ9TPP_rfo#QVMmHXr_+dgd#LVk&^eT7*^A*J(}S$F9)!akor z7OOqOBWGGq0jbeK?R)}454TUY^xr?eP#DgRJU6#3jx+TqZ7l2V@L5M|@_2Wf>C?ww z_!mUi@i(l~zaNyJt&Gss$lRgrE|m%;p8)eqtojU&<&l&XGdg|*!r6Z#^zz?v#Q*J@ zb;|b4rqzr8J3}bk+8OZ-zjGho`^yreyWy&&*S#F2t|+T43Fsm(o3`zJB!5 z+^TbPeDHfjYiQPe;ws^=+(r9cW;Z6(hpc<1mL!T6`dtWD6AY)3=z$^}6$PxMe7diY zwCA)}e`;Q4InL(Bq1!(@hmF2YKQF$h-KX;p?wP-z&-2JrBls!r^j+=yHY+S2P z4=?QfoO*Ncp~qW(+MT3teiF^DX{(Pk!D+9TAGqJ7O2!1+Za<-a3{SnpoxU6?t0Mc)l zqGA=ox@WAd!Iq}+`R>gFP*|`>L!w<9Aax{3kW_FFlYg*XRiuK+8=?>7ph+f=;nyf9 zh~P@{r-13+`~u~NEUD$5qT2z46m$?12n1S0QT#h4-&FsTc2nYGh`~`uy1%afzY(eX zs|w#gCQk8(N*~ya%K`q5l=zprECyVv`&89Bx0R6ECQW@*mw~FPp3dQWy1`5+ zH3FPGx&XOoSbO6s`u}S0yTh8=(td+*4k%5UfT2kdq=WQcBoqmV^n_l7P(>gJ$O(d? zh9*%!kS4t&C82{zuMt9#j`SKtnpE$0?w$M0nQ!jg=gv2C?|0`pe7S?5fK(Wq4l)Yt2r=b}w-Gh>0jhOfUT;*(T= zk9RJdeH5Dvib!wEwzbS7NCjN$()j=To^4HgqH=CudrP%MPB$jF^+9{MtQ-EX!>8 z@7ViTf-psNjiyRNEouLRzrdfsbY_an_yPJ80=1KyfL*^_BelOYGlKs8tuz5tPpB57 z{Qg$C<$qc-%RgIM@4s?;{}p8a{&s#WQ>s5oq!jDu(Ub06XRh{H@kyu`seA_o^^sY$ z?~HIA7OL9Id~n}QyuxadcQ@NP$&mA53=PGpJ4|9ZIlB71?Ay)4tt-F|@*1YSxL5d) zx{0DB;mGsaJ&5DA)iYY_anK&ia%rl&A@dKA!-@9x;StIQx7~pxc1+KV_xp11>V<0! zZt;vtjq`=A-^f$-i1Nh@OjRqrGTCw&x;6}x-!55+-O63!zuHsG#XNH{7BxeTn_}}X zZ7zbC53Zfr8Yhjp-vhSx!rzT|7F+0zq7y;basN;zu39T1TZ}~bXin@MY(jh4U8_j} z2V2Byc6i6l&tv4iBFXpyL+_$B=ed`+b7OHGl9tt7Du=8}zVIxQL6K8Yzg7QK>1?>> zWlr}fFVC8Nq8opNEzBJ@))k8)$agtZ*E)-A|tqJB-ZsZeI=Sxvu1 zq7@+%TU{#)&Z=R3)(b)U%wEb!Q`~8{gRLi91;xY(t=GBU4knM#Jm_jNSFs_VSs|vS z#cQ-0R}Qs5{oF_(atP#x>0CL#+*=1-|Bx^dy^ zJ?ajU=waoxQ=%>6fj*Uqq^uwA1i75fr}>vC*`7siaW>B`opnq$vrg871A<+odlA)j z{w2h>Qgyh53zP-dDT7(*s!CY|R?-%DhKgYLY|Z>C-&r`Ga}wHPARTX^Cf2|JEFCn^ zde+EoXpcCqoXMU6f(Z23z4OHVRpgkg4Rk++!^3?g@yL>;(%!d)jVgE~SnTpzP}EMV z`vdExyMxQJcjo+CxGre>44YY>S7sX)uLaPpAG>RjB=&jZATmUK+WD2_e!}+Ns>mZb zj9aoBHVLH^f)jfs@&5c!DQ+lJF8Cu*lHmsk^8>_pm?(G<{|cD=M*IND_>CnGn+5eJ zqFh@@=c3 zx0XYtUq+s?Tn$FaXTLo1X?64VXXCsWpc&~2FO&UXu-y%}( zqkGn7OJ`7Hb`MjnldJJSnoZJ}ZYg3A?|!jHgl~xai8feepO@+@EgL#!vQ5Eyx(D9+ z0H%FUtIvzEVnwJX$|bzR*J|cjK4LWBD%=X_ZVD-a_q7ubZQ5D`l|v=cewm4%Jz(%Z zdqC-TJ>dG#qD1<+MuBPRLyIjXHVS?$%y_2;0_k zEJD1qCuE2H{vMV6^*wZ4bsb>HUT)JJuSWqRQT7mwOyjOh*Qy%MqgN9(@r>+6I(+WF zB(v0%;n=8i&PCw4ZFZt-?+5Ot>mb^);6V&=Y0r+$!3VtzxvtTCXVppeV0GckZsl#8 zmmW7-TG4)4)tMVPq1@sC#^UV+#S;pLXi=)dV~k$UKo7(Mrz^+1pbF!A8aBc|wqL!f z@54|5Eltn)0W!vAqJ{8^VgI1M&0q2+{@(XXRe)^YpUPzX?=lGghW(#hx8y%oUHJ2g z+TZ&W1i!uQ{<)#3=wV*0{J7w+tjAZA(Fkneucb0_Ljt36KzSm2QwWITW9q+D#rZ!5 z|4)0}|9k!S?`He|ACG?ztN$w7A5i-TZj*mN?H_^TA5i-PYX6D-m;V#U{Q`0#ud!pxlJsDTcg~^jFL%nH#HnL~_ z;^;2LlO}keGwxX@>mI&DGDaPR_yO|W0odBXAx!g(MqQi}=~JhuIgVMahfkFq;s&RA z?wPP6Nv~-ega|CsZmAM~Q~gTok=dYumM1+iK1q)~C7oO?yPO%Lc0PQ*vH+9=I5-w+ z6Uch0idC)sb6}T#x*Gn;)jP9x@w-p<6I;pkJ)HctPZvByYvo1Q?tnnN8R7s|K_NS2LJ^J^ zrSFi5kv9+QCK-g2#neorA7utc#~-0Mzmr!RnYtF^^|4w`TE&Q0HrNzcbV{P0-kU4_ zq7>^gD@vwuO4sKmU)A-vwDHrT1=Md@Ydc^XQAeV+Wx53WEL zWdBkq7`5B#PKx&t_R$Cz=D8n=@Pjp|wn#JXQQix+UO=jGG< zDOSc`w5;h+2MIypRlfRNHTz`2m($IKsLgN$HI}s@yucj#piD ztPGgm8VJdM4`wul6(2`O1r#|Q;x_zRg-GHx(=%73Nbm0u0|$L%9E1mxLHj#C4U8n%D3LRe`V32T)iJF3j8@X zQqUkmX5k=kfy^KUMV78OvEY1z_aB~IXmi2b7boX0fydlRkjBWGLs-p>Uuu^FqxOFc zt`bI)d8Umz^JjKgf&(1>xZ)O-)eZ2sY_F5gt0=tuH^I@09hu6!Ny=dOicTW2z|=I2dytyPd zmD9y`aw%eVGvH3~r}n&%#uCOYKXn#w@rbUIcesU;2c{y8BkkD{w-HNEyE;~<3Oa}H zWH~gI2g-~B)Fql8pIrDl!>u)^OvTz}b$gne!un%SJX?E7>hC19`A0gb$725h)g0Z9>6HxcxLjcW;=5|i1{ZdVN}3!jSA)*d}9ewc${y`q!t zx@a8lB*(Lga7lAd(y#30t>7r*xx&9ARg1i6b~h3VE>=l+IP%KNz`i2nR|?0?+;CkT}{YEuhRz z$#%7BGzEX4*moiPX%`l=vdLjrPkkV_bCB{t{^ZR$t^Th5C~DzY^>_~lT$&pOPDAP7 zeRlQt;y3T*krK{4)$^x1{R5XZSRmz{^xG`F+=7db35vcN*Mn8#HeVZQIfY1kgm?Nb zPh$H%{Q%uVdFubBql1wrE2$KLR*)JGv(ll@RTE3B`eem!2?<>^#5t03%-6+IwNTB_ z66P?x4`EY6kluKnPqBJaK(S2Pl0HtFZf}=t9oDP})#@ooct&?>*yH0%0}PYB^S1?x zogOE!x?CUOxgjOVQo+5Uq#>?^1t;<&i6q-8zSi-K%IdCxGeyW= z=~KyB3ya2%S6&;*O}(KP$BlM~(>c)?P)ay?j7-pZdU~Lhc%rrcW<}=*D5^t-eWB@7Xw=@i;CUX(o&$>r z_E%E1m#Mz|f-O4j-r_I5>l*JnAJJKhFxJ73Ct5d98^LKv;(%-DkS$Ur2SOaa$X z>Ia|l5DN(#a%E}{_bZXk531$jv*g@kB|d7@qi=xAUtYWeFJ&?$_4j{m>Tg2H0(lP>&8`;(Qxi6rkM-BTiYA-E-y)A- z&~YpAxtFqjYjM^kj9l`xIK~~+>#?DpZI!`GR+3fjOM9+56UIC$b}PKbO0>!?5dz++ zLz-?8L(;xWRmz`fw$qxDSmx^mZ{*oq%%2Y`r@z={^_B=!-qR6|a?{5xnRt$42f@T$0)v*jg2GGFUd zM#B5FW`Os|qOjZPU4W1caK1ah{OVDRWL&Kkk8H+CtIGaBcRte%=DA z+kqsZOJAK$23!M=f+H>dQ8`0Po=#eHw7FrSU~pkEjX)%#2K@Z+PY7ot2#&fnOb zTt8=lg2Xpb5>}@1t=6544(IE^FG{W}q+Aa;>)l$2I^QIAfgE|pN&-wwuzrKO<5SCD z!d#o!g^>_rd4ey8b!s)sZVSJv`jLqOO&)bg<9yEX^coV`&6VV6N{0jcp#(@nNji;E zuCC`7dTli=<~Suf^5|X|_$b?GmzemC)mnG4o@$emm`{36Y9X_WNWA)v!?SWN4zbIl zMbFZo=^P+D_3Bml+03)>(R$bof7br*4-Q(5o9ddewN+xmx>wwsi3(M zOw2&Nf8F2qJw}B`v1UNx&~S|KDId69fz0t75(?AJQTuXyn6J|9-QpR@vw5$x8PG-t zsO;T_%&r+~KBL0a4w-oj0_W z?N2R~iutoD=?%WE$#@ARA0N8i3Eg>_Q%<45+bt|<$nkke>L}~2?a)>Cai`&^Lsdj| z;0ro?ThR6U;Vd1Xu9ak>K%S4q;{G`C$`8=p7@?$04(M}ZaJ*0*l1e*QnLyg!>`<^ga7ZdDqazBk%$ugW0hhW9qbB~Zm}38m-_3@(FdGInVXQW+PSNqa5UwJ} zFp9%c7`V~gY>2NuW|VlVA;}&iuxRRyN>cH1@TJZC3>w>3^DB-Y?@Y{S zA6O*u+X_OA>ZBcOqO-q}w40U>+c&|dH8tHWiT!oz?k;45+d8km5-F)T-^$5-0Qq09 z7ZjjLkT<;8%^tRH_HDA?wb_dzcj;4QJtT#`_(9t@)Xec05iu$EW;!iTcYkO4&;6oZ zr%Su{QY$z?DO;@a`zozz73ct_FhCIG=Igo|0`Jb|i~QTJTBT_b*Az>60+7?8LG*=b z-#bg7UoLLxj(UplJBw&m1>1w}l~b2I9yghR@%k@Y<%OF?1L iSWkPGd%8Gm1U=+pjCl5$kG>WfU`BleR$6I)jQ=+ /dev/null +$ sudo apt-get update ``` -3. Use the following command to set up the repository +3. Install Docker packages: -```sh -$ echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +```shell +$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` -### Docker Engine & Docker Compose +4. Install Docker Desktop: -Install docker engine +Download latest DEB package from : -```sh -$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin +5. Install the package with apt as follows: + +```shell +$ sudo apt-get update +$ sudo apt-get install ~/Downloads/docker-desktop-4.24.2-amd64.deb +``` + +See : + +Docker recommends that you authenticate using the Sign in option in the top-right corner of the Docker Dashboard. +Once signed in, you can access your Docker Hub repositories directly from Docker Desktop. + +Install `pass` credentials storage. Docker Desktop relies on pass to store credentials +in gpg2-encrypted files. Before signing in to Docker Hub from the Docker Dashboard or the Docker menu, +you must initialize pass. Docker Desktop displays a warning if you've not initialized pass. + +You can initialize pass by using a gpg key. To generate a gpg key, run: + +```shell +$ gpg --generate-key +gpg (GnuPG) 2.2.40; Copyright (C) 2022 g10 Code GmbH +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +gpg: Verzeichnis `/home/ralf/.gnupg' erzeugt +gpg: Die "Keybox" `/home/ralf/.gnupg/pubring.kbx' wurde erstellt +Hinweis: "gpg --full-generate-key" ruft den erweiterten Dialog auf. + +GnuPG erstellt eine User-ID, um Ihren Schlüssel identifizierbar zu machen. + +Ihr Name: Hugo Chef +Email-Adresse: lala@gmail.com +Sie haben diese User-ID gewählt: + "Hugo Chef " + +Ändern: (N)ame, (E)-Mail oder (F)ertig/(A)bbrechen? F +Wir müssen eine ganze Menge Zufallswerte erzeugen. Sie können dies +unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas +tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen. +Wir müssen eine ganze Menge Zufallswerte erzeugen. Sie können dies +unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas +tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen. +gpg: /home/ralf/.gnupg/trustdb.gpg: trust-db erzeugt +gpg: Verzeichnis `/home/ralf/.gnupg/openpgp-revocs.d' erzeugt +gpg: Widerrufzertifikat wurde als '/home/ralf/.gnupg/openpgp-revocs.d/4F012AD9D556CE0A2DE10BA273CDB97E0FF73B46.rev' gespeichert. +Öffentlichen und geheimen Schlüssel erzeugt und signiert. + +pub rsa3072 2023-10-14 [SC] [verfällt: 2025-10-13] + 4F012AD9D556CE0A2DE10BA273CDB97E0FF73B46 +uid Hugo Chef +sub rsa3072 2023-10-14 [E] [verfällt: 2025-10-13] ``` +To initialize pass, run the following command using the public key generated from the previous command: + +```shell +$ pass init 4F012AD9D556CE0A2DE10BA273CDB97E0FF73B46 +mkdir: Verzeichnis '/home/ralf/.password-store/' angelegt +Password store initialized for 4F012AD9D556CE0A2DE10BA273CDB97E0FF73B46 +``` # Usage +## Docker Desktop + +Everytime you need docker/docker compose start the Desktop. + +You need to create an account at for login. + +Start screen: + +![Docker Desktop start screen](/home/ralf/DEV/github.com/datazuul/datazuul.github.io/assets/topics/development/docker/docker-desktop-first-start.jpg) + +Once you initialize pass, you can sign in on the Docker Dashboard and pull your private images. +When Docker CLI or Docker Desktop use credentials, a user prompt may pop up for the password +you set during the gpg key generation. + +Example: + +```shell +$ docker pull molly/privateimage +Using default tag: latest +latest: Pulling from molly/privateimage +3b9cc81c3203: Pull complete +Digest: sha256:3c6b73ce467f04d4897d7a7439782721fd28ec9bf62ea2ad9e81a5fb7fb3ff96 +Status: Downloaded newer image for molly/privateimage:latest +docker.io/molly/privateimage:latest +``` ## Docker -Run hello world: +Verify that the Docker Engine installation is successful by running the `hello-world` image: -```sh -$ docker run hello-world +```shell +$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -2db29710123e: Pull complete -Digest: sha256:aa0cc8055b82dc2509bed2e19b275c8f463506616377219d9642221ab53cf9fe +719385e32844: Pull complete +Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d Status: Downloaded newer image for hello-world:latest Hello from Docker!