+ + 字数: {{ wordCount }} 字 + + 时长: {{ readTime }} 分钟 +
+q%QQ}GwuC04N%N1;QWTM5w#>6ET$nWs9m*d%=HT0NB zS&|zr6>G`MDz9V(%$;?kH3hKe5<1`H(_I}%>-V?TsFQfYdjAj*C>Y(%`B!)KRU;sF z6s~QC+(Gn^nAVmrw3%!YcObT@vB)#fO*CM`&s1bMwv{4w?#rkC`sdm~=&jbe#tm98Cqkzxo7F{jdIfKsc zOL)9aO6wj`KHd`n7ApfE(DBYyp5|;8 xRf_7{(O|?86Y3 z!h_%dzH6@?bLV&Z@ZC!Kuv!at&oGGxWOF2zX!N`CJeA%yb#U~t?3Dus0^keS(T>Wa zt88*9nM#1~2g{!iZX>py8I zEFN;zW%Uvq*V0#Y`_g7N9WDgim |KfPNqefT$U z|I~)AgNZ|oDE@@`rd(_s$(}maxybNMDb^-pNim Z(h+$;Mn{0vD6dB69bB7^IFmwZ~)3TO C1EjDE7?8HDG{ GG7NK4ndkh71(bvCAGI0gO+c9U2*2RRA6#$YpghVMYXiJ+6*jDpe!cn4m$ zirsmN6v)^b*>xwxE_zjx)E{#bEc+~%_m;M7A{%}HZb2O<9B&kh9r09J*MVU{# B#kzO&;|< z`&aVvmaZ3(hO0Dgz8^#&-5cCE%<1!>{S4k5f&of@q^ae}i@A2Ot`4!<4zhw23OjT! zI`)G_uo~Jt@s_rA@#psV$Z+(DB`OYYRiEMt69Z(| =Y4634iq8V=8Os4bGu7$H%pFKkq#tS3F(thMp3zbML+X*PE*uJ3mSN z26iRZ;T4Kyn6#W;wD#+Q&J2Qu3NRjeYOf>k;-MA-cR;|GFYe=X@gRuPXfBMft$wX@ zE97Ck@gcGp0I1*1@=S?1Hv)}UuO{at5^8J)7b2r_Kd+Bv %(42H_`0@P4KtP6Ea&iBC5F42h zI)|D;eNCq4qi=yd?n?!WMgy>s5*exoH=a}6mpGd9&fWMRaW-TL=w4xiI4~oud>vcx z{CLRVeRE;|2JF$b$wqs2w}o??0ETby%Fj@np$P%5u9iy{^=e_32 mBEXV7!yYnRk{t#BYy92HZRbpJ;_rD7qQHZNu3 zRCZ(_Y@=4~WDuv>m~+JU5nDaS*1naGhk#j85AxvC{ZIh^3iC&Qa0Kqz-WFlNooMZk z^vEtrwKWldmu*iN oxs#=7poq%ynpFu2HDoz{VIY0q+8*phBMqz0+c=~d~LHkS5>1@r*b!XtXa W3!(y_O1-lm?`rVL4AvfuAJn%W z?`1=5k{^NRf})<2S=` vQ{TAeUCCaJ)%{sc%*}Y>lr$ocS?1Q61Zz5Pj3n z|2%Go@SaS*jx<%Fecm%a>V7YCkU*9UM@@+p_BnPtUZT8h(T F&jq$0McIy-d1y(g_`kMa+&)TmcpBHn^JG) z^QUn;-fw2Vyj*=2QLFn}?o|gqHrtuDuRarF@_j8P4XXDs@lU2FHQlERbxE;M1-2%U z09(;=K6g`@D4vX8Mqx4wwtz$bn49lPEi^9uzARqG7qr=iEvg9;-jLU_Kbov{naXcW zdc~IQdX;N~t)Gj{jZpL$cCw~eoryk5xiTGf5LFh8eKua0(R&`Ga;$O6q_@rIrH^mK z!D)_rJ9`Vg1)i+;P1{y-G7Ucqj>)fmRCbe%t0J*ftgRiPWm2=x4DMk%0Pr3|1zCXw zzHih=n5&3N+!_E}8s&y^ZejHH)&Eu|a(l{F4p^)-uF$Q+;iQ3n$2shRW&ywiIkiar zQ}e|C!#v3k#q?~~$gUk*P-X#j`3hcUeZYX_;rS}!m~?hki6wtrsqM )p^0R{M3Cb+dmHO{nvfi& zwxB@`g8t4*FW-SN{*RDhQ=PPCSEUIF=G@880OdpE`E@&Tm$Ope*622Y GRx3o}tV`j^+(f+-)@pD(woNhIG&65xs;+FboqBc$Nwon2irz^TyBP_~J3}407 ^6Ga|9${8G9yAko=YpxwSdEC;k7-zYG zP3}AouPxn8-=+lb4HcepgP-XCzYhANuuxjx4oqe`0_OY!cMRxqrXFb80k5+NHPg~5 z&`9gd=5L-mva>{C(OQpADi>;4HPwpMW 4iI zBxBJjDZfQ+u1K{P6o*^;D&GjRLW>AVS<;C(=eu7p2f2Xb{+sjSO#SDV7D70KE@2Vd zOug-WQbl!rL_ccf1J-()j~1{vOVs^q(VE(#37oC8kvpTKou;cOD})(lb!zSat)i0v n_ESN(i7AzZ3`pYDC{4F(qaY!T4+)U!_bdPa0000000000HuUKb literal 0 HcmV?d00001 diff --git a/docs/DevOps/images/虚拟机.png b/docs/DevOps/images/虚拟机.png new file mode 100644 index 0000000000000000000000000000000000000000..8644fe9c08ecfd95403399b933f0f47f103f5220 GIT binary patch literal 15626 zcmV+lJ@vv;Nk&EjJpce#MM6+kP&gp=JOBVN%K)7LDzpLx0X}UsmPjNbq9G%Z%P4>i ziDhp5CHVc}pqHRZ(dN^?^-Fs@`2YIeV0`uIf6#yZe^77s{+#^``GEay{ebt8|BL%k z?wkAX j(bx|Ns5} za1Z|8pdbGF-}){6OY)1~|93xO{`dPs{nyf8$G%(pr{#zD&y63Cf1>`u y zgX@pr|F-_<`knq)`;YB6nm+IUoBNje1^kQokN8jQ9!h&2HLvhKfL^}*ll<@ZPxIgS zKfihX|2zFp_Sg6S l7y6&hkMKYL{%`*+|3Ags>YwTVXZ`@c zlmB1;U;bzPSM1Nyx9^|wKhJ-b{kZm(`N#La`ak6U0e_SKPydVk-~Bi3pUyx3k8dBi zU;X{eKV!f85mEB(AFR;Jq*HRi!I#9)%cN6sxqU3>c`Q#_Fhx%kjfTaqlAM&}rzJTj zR)}45dSdph+4aV#uXS2C?OoycPMV~Aj0JTPuRwAKlJPSd#XM3r8y3Dwa#NC;oN$!s zF$a28&=WgE_QfHErZ)O;rrLxCQVjnQso#o5!(!LTPD*l9lAMzxvy;e3#vp }dq75J0CfqZc2 zNXM`*4PS)0Z9jjk!$|??cIx>5=J^ic4erEyydxQW_Z15V_8K%XOaFWI3(LC2_#(YS zoAKCJUGV2Hk5t*#>ILt1Y4V&T+R+2!Qf75TRsGfGF9Klxw8_iKK6z3yeT9S?#~soW zYcZL2PV@T=r?9QJ2W%}5Z0PH^*3(PWh~yV)%pJVoD{hgg9C W=?3vv8HZym7M zwd!%C$+<@#>x4nz5`ysV1Hf&I9mlAXFY$Ht$k;<22YhHas*x1z*ec(H+RTe^3wTK3 zXTVHMWo^1t(wHzzv1A;vb&j8K>(sa4Eoor7K+`(H1UArT_+iKUVWg9N6*)2zZ;Nho zYv+5=;!<~IP&|i7(`;}D>aYyR{s kMi1zlm_Fn0nU74^1lv_|f zTMLtKL@S{wQvjuU^Y1XWIG?Sfdu_aKnbB!Dyr(Pm95}$28y2W^hF_W7xM&nRWT(~m z(KuEnpkj;tUDT5NH==wGXP1GDTKTtMcqORI&iX8@oa`A_((K67#B7oc7$wWhv*=B| z2aP?>OLTux*Tl*)#}ivd+7rW+hB6k(tg &_{B3lLSL;2u7syINPJYR1vaM}n zJEGIvfEcbhjOO=);8_9)>Tf^ 8T* LZ zuLNcC$ArBJOzxy6K4}5JjJE8QJsh{jzCGp1^2|9cROQX{7kS;A(ouF)6()$y;Zi;F z)EiELmOK0k#0PP7tIS=>Qu%F+*T$R7t^ie(1{2z&6Y7DkTUa(%KbP;B#-se0e}ziV z7}^2r{zsn*)K-E(gQ#Oke{B;=CffG6NXOnRkV69mPh>avk8|OQ>VP|sV=SgkY5oy} z=_cR8>()<}J6&)$8}F+s83f~Qh3NFDNdVgLy{2rrA-XZ`xSS(IiTDggh3vzZ9w#Vw zb`CG-j2W4@aozG&m2jz-O!Cv6wO5qv=}NSfi#!3!@&%-fik(E{(T&9nfSON6eBf>) z#HrgV6DB*@qgbRxJn1%jL2UMZE309N4!ww0)tYNh q#Uo*{YviXTIVL#`xEvzanVSl9T`8_n#&anqOLm+O z9D8BGZuu$6PD*l9lAM&}rzJTl*S~!A+m`CIPhPD@wi_0{N^(<@oRs9JB{?a^Kmh*E z@xj1C)kZ(y>CoNV>F*z((wp3}gz?q* hSmaZz@kK{Vnwd)(Z zICAxJjeSVn56F9vQk{x_ClI^upErUjWBxo6;zTfX@4QoK^YC!)Ya?Zuq?ihqblb%@ zT1XCWkpbObpw}sPHM=>WYpTFXzzMRb`%n186juB#e_J)<5ky8%ezI8wkH9)9b9aQ- z>?vB)weupCkTd$K<5EodR^VinV3I7>F*ou)Bp=3@7XFef y5@WgB
;7RVD~hl3+@! zEHr>GVx#ixqd;Pre4|YGW2>j`B(KQjyf@pQ;dyaP-K>R37s3Su4YYla;G%xlgnQmZ zFbtlLU*>bz1WMB|LJFBq_baZs+}U%ov}MgFVUPbp()gmY9)8GvJ7sRG@e{3U_y7P0 zwvA72Kei3S=~3+Y?U;v1UT5_=R|yldS+`ys$OOSYpM@Ht8e#tKkOJ6}3<;;Rh+ ?T6)h zu1%UZB70gb=SNX721~%#KdtYXp^ypJMA{G8eMrVNJn*m+cNcOeYwV3em#ywOB8YX} zpwctv3lR0bMJ*ogJ%idMSuE{fyQ+WP!iU|Knmvuw%@$VudDi-MwPx5Cee6J}e}Di0 zo)&-=7H*E**LzUG 8>K2W#XnVL?Y zy+3s4tofR=;rs0rSK?}pb{5KN!>?AgeD0CUD D*PwCz^B(-F}d%;79rQfcjVg-(6u9MSwYVlZKQt+i$)P*`H-lg`X(BYC2Gr}|y^ zPxIz#a~%h$e9>B2-VrF$L)piodWn)m4i=l6n}}t0$grk@Vjp&W0R6&1x9I_|KqjJX z;M7pFxk&hwd>AC`WKkP>CC4N>3I40YLt#mQ*Q555#M05<0>YYpM*Qc*yZe^$UU7sm zW2df>rzm ?bP!CM@ zqq6f^=6Zv40~xkjp-{Q@^I7Ja$Ee9P{miUFVs#A`PO8V1&Hgm5*B@*ab`0m)K72gi zxpeD3?}Wm-g%80Ie79QF|5QwkxCP+s%sO%`g6{WL_qWLaIksKEs3uI{NX1mfrEXI4 zIyvT4d rnWts^%Q@b?&uD67o|D_&@y?x+t8TYmI{63F?ZVu(Y%UZ(tn{qzY@U2oq zTISj;Ql=wbLi4tUDw f)TD+ zz+?Eeo40eJ;H}sc1_1%mra0%~BFver{}36t9YjxD?YOlVTk5pi{gsI-j7=J1y9W|F z;%+8V8*@KA`vE)*M!E-AsX_j6ldFSjAymM)ghmU)r=ez{0`vU5>0^EHlgS&Guec85 z09M;hjBNEjV8L$Yh6{0zFq4Q1tT#9Nl==5d8JUU<4 W;jCNi_%!uD!)JmIY&~5W5Uc|pz$r}Te?Ik8Aj@P7de3!u2w3jF z1rNtjmE45IHIIZ+AH<(WqM?-ch1z(7QOy#xV!gp9>PPor@S bw)nyG9@fE^6Xm!}{7UOA(GDyHqO%6ws^6GO=PrvbUi?FMJm5bP&+(72? z@ -&{mmgERGP1@Y>nV7I zt6Wc!Lg|sjHi;t6$&eqq*<4$VN`>AxpN7jv(7~2_QNBx6xebo=f6&7^zK?%p5BX@* zYnrvHiunf~7GbXvgTaqj(3+049(lgKGy_<)~ME*X> zXUhUzC -i8V7Fd=RN7?wD3SwayZoE~zlF;VL` zXlu66hv4Ud`;$`mHzuJl&B;kcIV%wJr$@=PfeF2nIXQfd@k0P!ve hHw7t?^-G!^i}|6lwG zzpCunpKaVO!cPUYVoB8`WnLbznf1HRJH2@3V&V*2V77% |L!62hmr?z7GlD_4 zYH{1O*_&L#hml5Sodg71D*{C&{qG-C6C=U!N#+yW@?t;bsf+sNvQ7awWWDcAYy6We zd?EaI_$WnJ>Z!QdOEt3x086dav)zBaBZb;!=@-pr`s!tTOkHr<;E(jH)o50IJv?l_ zEYs#5dirI{j$l{P$r-&my_4KXH+1Y7484Uo5S90wdtI$oBZs~pGjOPC4V4ziwwKC5 zgOpC{$4}=vUZ*^%ARs9?-Ur|{Rzk)jRDRQl+=(edUEXPNt5s9Tp-z~NH!0FrDZf`&f!h$z-0iet{(2k^~#w6hN4Z_uiTT{k$;(w!)U_` z=Y+#2B0CsRZ84Z7GZ)I5!}=-WUMK*P zeV&AcrR#iWp8fqEl{`a#Ls_(&(Z6&TrD3G4QqA}qG5zbFyh>+=ktHaQ3CWo6z8;v{ zslzVvQYwh}SZh1&9fkRqrRQa2Ldd9l>U)zlsS>_q&iw?6cyd&q^4_cIxNhI1V_dIv z5WaMKv;&MJxj(c#3il+yXu-EP^hHb$qFpD7Z*4t+#Ga5wGXpz3e1%yRE&skev5p!= zD1H20Q<_vOMwJ^(+Q_{OIc*iT$Yie38cgSruM-dpO_cZH0)nEl8Y_>OvD5_?wZFmX zm%`HL_7 S(dDI>XcrpXBg5}aFM^*GWuFs>_T%ER_yw^_RQKx 9v-Nv!_n@0 zof&}dUleQ#QqRnTDFeTB`1_BnvM}csiaMp#4{eJbrQO&W03{6HsH&3X+i97=x}zQ< zU@3`sSG;4+a0Sxz%(m~M@)_qOxFmHJI52r0?@ozNoRS{S8l&R`{`?-enu}s-fC1ka z<%)oP?sIlY*+Fq9lJ64E7B84SKY43VO5^j74ziM^TR`3rD5|u~9NjI#`Hac{-vEGs z7yeYun{kx*OT;vfSnm)+gz{A#_jey2od*(VEnm_M19d-}`%amlfsjUYpZeIb8^`(y z4ZEyJDd3<7PqbicB`L&Ll{WiYCD*3|=?U>r)$0yW&8zsxkoo#i6jG)pbarX2gUyc1 z*m@o%J>!#!6%?k5zv@5~TFwKPzlc>C`e@o{RqiwUY|O)4 q9#IP`a#B!b7@qCi6?`iv z@ZU$>*GJ~YQ~t;x76HMMnHJ(kaThK1RRJmP@qZ3={3Is=tvsu5j_QHz!h3^h1#JhL z>!rU?oA=(&D-~BrlY0oSzGkn?KCyNUV_p7(qlI-Y(6EOnY*ap$C%@x99xGr~|4mL= zroTk_JT5Wv$M99#doV6v Bk?_v}5|5@i*l+75cGNlgz<7Z+dJF`{Hljn$+-f-$aoXh?_q3 z2ymbJHK`yX_U${+rNn;A=*~cyM905wC^JVFMh;(n)@3qdJ=lx`2}_I?^`s?D2G!3T z17Z>o$Mkr3t!kxhTScJwi>4z9B~?`dB>(8oO-#80#rkKX`j$2$>np4nkkTG}i8S-? zs@j?4^%05RIrc#xq#7;HesmZ1It lWBrmS5zCiV&-DMux5L-kO4`_4^GefTM?6>PHB8H2kdvpk-;<&Rjs zcqp0TgpEsZ_O!rq8Yeflv9Ja~V84!FiwC{u0kHj`{(eJ`aMa=c(?nKVSeD6$V&($# zRU|4ue?IY-MkmZ|^#6$2@0p?8$04_S_gaS;i;8Oq0)IjTU-@#y3%^K0tw{eU#q;l) zPN`$Vp@S5vV&X-xDwtR`0*(L-rMqR*3zWe>MH=@3I<|zXnEnRgk+$?TW^tMC=Xc$x zA~JBdfH;t{|3dS426Y7l(P}a}Q_T4c9HtW9q-U0m nJlRgV-7ouyb^29vjPPt3&DGo$j z%oH3_>#54 f78q@_@5JqLI|o)jFSFw!(>)rV)cb?q!f!Ta~b#hCvsp1y`>_ zwQ+ j22Vot1|8t(5{jK`_bzW`kLP`%KD~7_0xMSl w;JXK^5UNi=JN~SnKoL$Ge;bGC$$fR%-`+o`4xlePr73rD#ug zV$5NS6AD3c|Mo3d<7bX7&@Ffj`}R6gONc8pCrX<+YQK`OL0IU|7;7hlweHlBXVwR< z(^;HY&YI*HkyC!ra2^ftANK32p=Qa+fXF3n yCw`GqYdI^ z%>52ICDB``m@<`ejXDVn?I?MCu#j(#!}Kbm1(6tL^PI_1M!8qXm_KSu!MV9{C>G=l zc92LX%!Us2Cj|jr1_Y7j!No=@W(&&MD;-DXT@HrKAJ-G&Eql9H#-1(`)c?G6c@B3j zg~KQy@cU!QP}iLx7QID7F7Pf 2@ZP3lPnZ3AekgA959W2I_ z9OFs`4`Id}JtZnW4qzLxF=-r98hx8&{zMLEeGg;wHu5ZLBepL?vJtn_R5R>WNr{2E zvsUJMyBZ?YjMh8(z%G=E+0r8>9-;Ilg|wQh-4}P2chpk66lmy0+xfrfgx05Td4;WF zIh_AA06E6mA8;v~$WOgWhftr~@GfsL#&PRtG8yG--4#|%vradE6fN_0pFKMm1)bhQ zj@?dQo&p-&$-dZL!9*G}@!k*9mda7SJj8l|u>Cx?QuB`9?nYK|eGv2L^iKIglppb| zd4yIPh3cQ?(NDYH;UautLU$;`a;>yLh*}{W>!(!?WBYyXSw@WPRA8leSJ2Fdym+9k zq&0da)_iW7o-6lD6dGq0jo*7QXMFP3XXf&QVs*VUIl$!(s|bc%GplIiNR7VEL`u$a zEs{IDt$nmV7445i-6r`YR{^NSXik+C@iWcUNPe6shT0`$zr(Rl6(w#vcTkEkjI6-_ zk#TjL9P!P^(ww)mGvW@H774LlberQ$Wwa9t3KBo+eMV1t TMI?ZRZF5Fv3}HKm z$~j4@B);A@c7eR8oFxTqhIYJBzL?M-b7F>0BUYpG10MjI6FAU61mMqXw%`Y+Km%=i zTx}ePQPdtY$SsnezVe9wR>Z>EPRpjWcRRr%8B#3>nX5o)t!eKHot@tTlg^B%=>5so z{sMA}_=qv~uWgJ>*_GgBVVx$~TaZn?PW$=*J~5IAU{t{> Ge50meMozTohn}%oxTCVDn<` z-`u{LdsT*Nh;#sBeXapGb6*+a ^mxgfExcIk3fD$+#N|^Y*rwdc?a2;ww?|a zOO}HF<2!4yy`!}`Ta<&h5JZ=M8QWcr?H#E@{bYw9y(~R2Lv|@`)U9Fot5>yRF1`G+ z`k~CnOU{_94f?Cm^UHWn{2f~)C|L(?Ac-R5T+=SF!La+lrp|J#;@oFYygEvLXZ^hR zPuQG2xctn_`q6n{wkBLSOO!8H7o2hl2H*}|0E38`BR|NO!ubI_#+Pq^X}SUq8vQ6P zypmV2-mX ?C8JI-%TFd~di_D5=pd&H6!*3n#W0xFhJ*9i_9J2T!+J4RNR8}1?SW77 zI>fc*BUBxI11NR1xr+neEuYH&M? XW>V*Ncn`4(We+?r;{Gb3|6d- z?&n9vr|n76q3A+0N;My(J5;2kLcOSxM)1j|?wCecIYy`S7L!$o-$M4{o%5thZZM?l z&irl6*y9sn4QsitH3UL&i1H19k;tcB9 4}3mv6 GIOcnL13Gmtz2v=Z(O5%dOScG_$A>r->C2r;qc6PRG{>8=JP?lp zrZ>K&f&Uqu)=jP*r{sc7;SG^( MNiYoC^k1nn%B|*CkUgP zp6QRTlf@XiIK~VEzM-NV%+*Z~XD7ray{n(Cw;S5KMNYNjGl6(Ppwo_(@v1+gBbS6R z#e^axy8~_GvcZt?P?nb?ri1XH)+(MOx|_cQI~$;y!IgP;dxgGXq?y(d79b1_UB~){ zb*yyTp6`G%x!kbAxfJoBX 1HB&wH6{NH6L?7)tkIgU?Etw?<&EGNN35!bgi5@WZtr~bi1R!m1 z33s#LRHKVPW7=bQNY$s<%8PFy`0z&nI6N^SCdeZQX=+2z{|$9NnARQv<{Q@_rz$9L zQ*?}B|NqMzXfbG`Y_~iH|24g!Mc=0%MK>GOt9Deob2o?}*@W4H^NH_pP!^`;MjVDG zBuk#%{6S2aVc*oswIB6T=*ORT7EqkoY%%|_{7M$T2JFtX S1Vv{lHH}@9xK0RG= za$Xw$+He17yMIgNbt(O*m$b$Vub~Rf;Afb+J?Ir#-M;KQ{P`GCMb9c=SoEIlR4EG> zw*aK PttE_`)iBB8FRRLv1cII)lKH1qj=8a^s-}@8=Mm`jf4ajAu_Ij> zK)lIMq)?g8f`Aj^D)q9mXPb^@{#GK?z(S@x&$7)ez6na1-{g|Q?C=epoRa2KD*Ft? z=Fl#={+CyRXrqC79$AzTj885I(y1-6=00Xde1%wNqQ9M>c{?%Rup!%CYOgvU;rr!# z!8I~u;E-oSBCn#2pgG-~_=geX3oBq3z?}<}u2tfweLaUpY89ODv-WM>?R~;Cfqnh1 z%6b&Utr7eh-dEP1gks!xG&3Hoe$Ci_MUcn!VZ4-$LKEVKzpP@j(sXAdVdTQM)^B zr&zudDuTcb+vc)kWTWSwvuSNZL&;=lZS2O#EKBGo1WKb`dE+?XI1|%s?$i;1PwgOF zo#DNQ*fl~E@uV1qyy?TxLfsj8=R+jz 3TX-2H4M0dVL`WBDSz+#VO}Wji$ui$cz9=z$bQ4G! z6lHz{8fnIt-4Tek)_4-*M8Ct$ctE3S_4d-V0Q1mX-Of^}1#T(GhfaO&8HO(Tgz`dW z{tNornmNEHDZXC;GEdm?@`_tQUA9js<%?z|bNe6EV@xJ}uUN?bcqUA04eSiihk$E* z)OIMX;#c+AK5Lr+o53Sl2=uHeC6U ^^S;8KAY(uH4W9al5}OCJWg9W-Hzu^D-^ z3&}Vl3))z77ZC^L&!)x5>u;d7_bc`*=DPwptqjR#D_L2z;-~Jl?K$wrfL9S27#ov? zbLq3+N=nh|Lfh2(@jD%EKO6|f`Bgy9O4|XhIw`N-Sp}`zPybI5X(mc*VbkruZTv{* z+;}H;PwH3{ b` zGIv?)?9{@6{zz*`eE&% {BTePAA$Re4FN`;UoA=NHGCoZ76l z2DC$4{3sMR>DgYAN)OEy<=Swx!!s)Tvv4GHPdN
B)_u&eSXgxlPBMJ|1be9J58S6#b9BOdr3m1$m%Hk9*-MW{#ddQV% z%n^P@q@fJ^ELYC18hNHL=4cE5a8!l%eD 5Qlr3c{K9uoWOXD9F7q|*u|pjn^I zRn=k~ZAR&np@gZ@_Ekf?fODE-?r~GDYH}iXrtj;R0OxmN4|H-Xuy)bUemw2*eN@ml z(l;N1l;Wta+Ly5Qke?YDx*g^@BvA_cQS_uMDjITG zAZ&vsH4tfs<2N;)9H2Jbm{9^HRL#E5k%6Q%I)Ziqk>ZpZo@6w*ONyHDf#gx*w-T+K zJUOwcBY23;Z`$hobq33ThkN{yPd!SwLvJqBimS)qA8!X*P6utD8^ZL0uu4El3<(Lh zfnl!+tbRz9-iS-5tWCS$vY=vR%}-yNw5@_}59~Bo$-=Z;REb6k1cmT#7U8 5~ zQGjOpRZ k8Y1dfL&SWMM|b#=QxXDp1kTYAC$cY$XVM}!5jc>WhdqbElVFSm*b1s z7ESuD(R25HOY5$XJ_B*BA)ypY5|BFs q4H|bwoi4kQl zeXks^VPAcajUE%TJ!N+fp6B&Y(4z!_2-*3_(l2rrgZi+LlZ7yyoVS~Y$B!(A@mkT5 zyY(8xX3-q-NBExu%_!fW)0fXsCi~dVe?FoaJ?0+p2k=#(oN+r$(u^#sr|1-}UseKO zK${*(4~r$%PE#@D=cGW_GEaQO5mvlumgzSXuz3fKIFq^5{E99jhy_Umg`oE=6hFQc zwQ+f&h#xK1Y<(moiZ)62D4O`e>hO0DydC` sOyzb(o_H@8MTE+ zCY{IS%6w~c{;G=ye*+J8hjdqKduTVxsyjT<)vcd+m9G^?ALQ+bM+!aEb8Ey?$ULh) zXNwa^;$bJt(EaQx0b26x`W=J4{m`~o3fPp0LsIi=iJ!R{3^%Jn>@-Y$hVk`}L>Q)* z@9rnf%fDRAo*YLNDI QjqFczl$)?<0=NUvcruj}o%dcq3}ujkwgte9K_EUi$l(s)i=j0yxMKypF~4 zW0?x0&@OP+E=@rMpU$1<81-MuaoGz~h4-v;O*)b9tplyhkp}Xq-MRR_Z+1@)I8h$? zeVHC_4yCTg8M|d)0Vq#H+WMXhL&1~Sibhbl94{+Uxnzl$7Mki|z0CxB7|pDdMVXzB zGylClf0gU}Pw$684g;W|5UCa8L%ZZ(#~RU619dAe@o5y!Jim7!22iNus=Xm`w%IOB zJqqD{&^X2=Y5$DZmES#gjHJu6t=up)*x|KPQwFt4RxcCPPwW39WDY~v7@KjFXzd=R zA$On3RVVX5Vn?u P~dv{^U+C;b`}5E?~~7i4`a#Cb%+NcH3ELQdh6^( zw8T_OD6l4JWb)hU&cp>dx@zNy_SS;R!*wy-=S$=lVlO7APXfZo)5*pb5E(&NgO)S1 z6s+25bk&aE004(D5rbV^w{T;f3|G1b#_XM8iD9}{3u=Es{h4Hk{Q`}2HE*#n?;A2S zMTau$mB&YbZ(I0{3I6g^LVW0U{ChB5UH?*S&4Ag#h?WjMY1m<^SKGdu%B<_0Wiypz zz_&V6xK+$ &0|3RE#4WH#d=eDbg9*L*B-36R%46X&u2cY@iR{uG~+t!5bd;faF(* zxD~{i^Z^w;P(`E|Q#)z{qU yGaK<)LjqQsf zF)Y?8bvg+1+yAw;L%Qz0aa-Spd?we8XAOuA{gguB!U0X~lYX(3hUKlC@*1g1m(_D6 zy&Xty996;Lv^aFxp-iuVlG 1i)51+sC_F>TQ7G^lk$7P5~!OG@2pUV@Hevnjdua<$i- O0=3^bNCR#)V*j19z!>y>d zfFI5{oejM*8WTDgLH?bkk0+(O0?Fb0n7L-?L`{LAx7b1MoYjXvKw%GsSJ?=Wr-aL1 zr;X=7mrPlREZ4JftROz~#w!$oW9}#LYPc+sWw=inO_;{va%YSkpR2iaiN)ND(dyDp zB~t=w@hZTGHPj3nCztDOJEt)NY$`wa+w93N-1}D9i5Hj+V&n+QletVMJ!BD%=Hb<{ zM%#l;L1OP j2|aSSmS=NJ2@Eur`=+FFraS6$I+wFy`{hX z%U$XgE8-eI?mTA>hpMlzK&>pybUf$s>5DMVvhLv`qsG}|PWQ3K-D5!VO1sHc4%xdI zv0C)0TB6OG3v1A?gY;3kd<&aW(!y^<5Ovo0LUo&Ki;(_rzoF2$hd-oO?f}hc3dS#! z5BfjRh&b6+Gkq>pLO!1EQ#M`-u7Z8BKX0qBL9IzqI GcrxE zxbkVE#V6ODj{%~%42}Z}nE`s8(6n+_j*qE9_>W)H9ve(fs%{`~!&E2~#LnV$=Ze(q zsd)uaNbH}ddoHBEAifs8xI`WnX_<&u!UZ )-k zbmIMou$pr6{-di`Dm3ux?#1~GyHY?@8-kYU_f!D|g7)MH^^{W;;?THYw&5gdUjj>+ ztT$ihpXdBF*= _z)U;_4IP+gHVFKcJI1jZZ+C>t_|+L;l)Vb&3! z $*IQ03Vbqk2f JvLd`Yjv5#>)_ XZf)VJv<{(g_>oZrL^2k zirJHQki#V_p9{fqrcRpAge{S`=NJV>w7WXTvj*yelDJ&soejboA>YCY6(aYzkV%%g z IwNOxM@>6FP{R`@HzdsYZ(cthj5_YML?moU-t{#7;V!3M#>F#5C6`|#dGtxWx zEL*f?&zuc@CKH2ZT2Rk@CTun;exnha-sFw(WwKd@x0g6!3n}GY%5)Fv{lKo<;~m-X zKP|Mc`+B-z?v6OXa`d-tFEZV+vABNmd}U{EZ_PraWG&XGsc7FqPrhNE|0Ew{rdiJE z_OcRf{yU3$dcfV#Mg!#!*eF~LP7rI@GJ_I4W(Qy-wT-*J4tHYqj8iL2_e4ejw)6AH zlQu-9EKxUoNMRsq==qx26N|7L&Z|D;WT)7S5`e4_W8=1%oS5ne-9GKW%llqWCLRCt zFVh4i#N5+2%s5a;m? iWUrR3Jfk-m8Lw4YaYqrM?5_79wGa1X{ykwmg{5AluEda3)={_VCT z39@1%3JQ2wFAhI%vWgZn6P$}*Ou#uSKu<@NL94iII**3|_>oR?G;1T#5pc%Y1R3=Z zA0KeN$1{;l2aBKK;|u5+#vU3(-ET9elbSjLVZ|@5*s%z@-NWP%?1~n-|8f6?6LrwD zk2F0F62=+52fKFP!49IinPwG`kF}mA+|ooCO}N)H mHxzG1jCY{$eOgHz+L_Cq) zA %(KgSOz!e|78$z(G01yY-o+LRXqHQ{adTh)N2BjODtny2XkFb z!uhUE*S!BP2V*0}E#z=2qU|m-&r9)H E^6Ujx_pPbxD06nC zJv=2*x4K!9$e6jI_+{Nq8%+B=IOgB_X2;cm&2O$pdJ$Cq8?D-|HUJx7vW~XPii7&! zPq3wjAd8J_@(2Hk=vs8#EP&|7vRx*;Oj=~;A=ug94Afu>u?ht~$Lar0HQ1Znt3j{1 zN|NFGjvy@Tj`?zxi6FKE<8H&)Djl~UXhJjq6Fi&kwkefGCi;#>yemHf7)SM<7F7NL z>;H8gfqgwO+LK4d^OZ63aZPNDm#e==oD^_*;RQ7;uGsG@+)j0btWmTzXS{T!=ZD zE!9Z8kRf ;*}hlPF*<(>uh*~bg106PPA4{caFH%y!7E#cJ^FKF`^T0H(*TAU z^gvjlFUTIsbNKaN8^2Dw86QhxGz< ?GGe%KP%2J5%RNX_lO z H~EfF4tS=({nFCg`j~CJ9CL zv) _! z=?~1r9&B`p^0QNWgBep3zyxf&@wFH*T{33Uy)xPpwd?`=)7 Mw$9nk=*MZ z-U_>Vvp+V=z)@qkCyPcK6>wjIc~dFtS^R)bK*HQiTP+um7X*DoA|uE_{K~~i!f??a zDw8Elf|K1R!O?aXc gOLOtYhieg%f`aSpon60Q=YGKKM9F zKc_pfz_QN_o3eULUD!d;kztqXE-3oT7b%)D-!ZWZNmq#EOw*9q$E>N|`DXTnwYS_2 z$^G{25 V!Z literal 0 HcmV?d00001 diff --git a/docs/DevOps/index.md b/docs/DevOps/index.md index 355c5fa..5ca15a4 100644 --- a/docs/DevOps/index.md +++ b/docs/DevOps/index.md @@ -8,3 +8,4 @@ title: DevOps - [OpenObserve部署和使用](/DevOps/OpenObserve) - [Jenkins部署和使用](/DevOps/Jenkins) - [ElasticSearch部署和使用](/DevOps/ElasticSearch) +- [Docker简介和安装](/DevOps/Docker) \ No newline at end of file diff --git a/docs/Flutter/DartGuide.md b/docs/Flutter/DartGuide.md index e6c8420..8e98aea 100644 --- a/docs/Flutter/DartGuide.md +++ b/docs/Flutter/DartGuide.md @@ -1,5 +1,3 @@ - - # 一、基础语法 ## 1.1 变量与常量 ```dart diff --git a/docs/Flutter/FlutterGuide.md b/docs/Flutter/FlutterGuide.md index 5f94272..0f500d0 100644 --- a/docs/Flutter/FlutterGuide.md +++ b/docs/Flutter/FlutterGuide.md @@ -1,5 +1,3 @@ - - # 应用核心Widget ```dart // Flutter 应用的入口,配置主题、路由、国际化等。 diff --git a/docs/Flutter/Practice.md b/docs/Flutter/Practice.md index d25a3c0..94ee240 100644 --- a/docs/Flutter/Practice.md +++ b/docs/Flutter/Practice.md @@ -1,5 +1,3 @@ - - # 安卓签名 每次安装/升级软件必须使用同一个签名,否则会将本地数据全部清空。 ## 1. 生成密钥库文件 diff --git a/docs/Web-Backend/FastAPI/FastAPI-Guide.md b/docs/Web-Backend/FastAPI/FastAPI-Guide.md index 8b38e86..46894e9 100644 --- a/docs/Web-Backend/FastAPI/FastAPI-Guide.md +++ b/docs/Web-Backend/FastAPI/FastAPI-Guide.md @@ -1,5 +1,3 @@ - - # 一、简介 [FastAPI](https://fastapi.tiangolo.com/zh/) 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。 安装: diff --git a/docs/Web-Backend/FastAPI/OAuth2.md b/docs/Web-Backend/FastAPI/OAuth2.md index fd1c20a..b786fd0 100644 --- a/docs/Web-Backend/FastAPI/OAuth2.md +++ b/docs/Web-Backend/FastAPI/OAuth2.md @@ -1,5 +1,3 @@ - - # 一、基础概念 ## 1.1 OAuth2 Password Bearer 模式 用于**用户名+密码**登录,获取**access_token**。 diff --git a/docs/Web-Backend/Others/Flyway.md b/docs/Web-Backend/Others/Flyway.md index b5afc19..eb67298 100644 --- a/docs/Web-Backend/Others/Flyway.md +++ b/docs/Web-Backend/Others/Flyway.md @@ -1,5 +1,3 @@ - - # 一、简介 Flyway 是一个开源的数据库版本控制工具,它极大地简化了数据库的迁移和版本管理。它的核心思想是像**用 Git 管理代码一样来管理数据库的结构**。 diff --git a/docs/Web-Backend/Others/MyBatis.md b/docs/Web-Backend/Others/MyBatis.md index 481dae5..8bc7c05 100644 --- a/docs/Web-Backend/Others/MyBatis.md +++ b/docs/Web-Backend/Others/MyBatis.md @@ -1,5 +1,3 @@ - - # 一、简介 [MyBatis](https://mybatis.org/mybatis-3/)是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 diff --git a/docs/Web-Backend/Others/MySQL-Knowledge.md b/docs/Web-Backend/Others/MySQL-Knowledge.md index 1ea3ca7..2881f0d 100644 --- a/docs/Web-Backend/Others/MySQL-Knowledge.md +++ b/docs/Web-Backend/Others/MySQL-Knowledge.md @@ -1,5 +1,3 @@ - - # MySQL知识点 ## 一、基础知识 ### 1.1 数据类型 diff --git a/docs/Web-Backend/Others/Netword-Program.md b/docs/Web-Backend/Others/Netword-Program.md index 1438e14..20cdbf4 100644 --- a/docs/Web-Backend/Others/Netword-Program.md +++ b/docs/Web-Backend/Others/Netword-Program.md @@ -1,5 +1,3 @@ - - # 一、TCP ## 1.1 定义 TCP(Transmission Control Protocol,传输控制协议)是互联网核心的**面向连接、可靠、字节流**的传输层协议,工作在 OSI 模型的传输层(TCP/IP 模型的传输层),基于 IP 协议提供端到端的可靠数据传输服务。它是 HTTP、HTTPS、WebSocket、MQTT 等应用层协议的底层依赖,核心目标是解决 IP 协议 “无连接、不可靠、无顺序” 的缺陷,确保数据在不可靠的网络中准确、完整、有序地传输。 diff --git a/docs/Web-Backend/Others/RustFS.md b/docs/Web-Backend/Others/RustFS.md index ed0a229..3ce1444 100644 --- a/docs/Web-Backend/Others/RustFS.md +++ b/docs/Web-Backend/Others/RustFS.md @@ -1,5 +1,3 @@ - - # 简介 [RustFS](https://rustfs.com.cn/) 是一个基于 Rust 构建的高性能分布式对象存储系统。 具体以下特点: diff --git a/docs/Web-Backend/SpringBoot/SpingBoot-Skills.md b/docs/Web-Backend/SpringBoot/SpingBoot-Skills.md index 67365b8..6a39392 100644 --- a/docs/Web-Backend/SpringBoot/SpingBoot-Skills.md +++ b/docs/Web-Backend/SpringBoot/SpingBoot-Skills.md @@ -1,5 +1,3 @@ - - # 一、JsonView JsonView 是 Jackson 提供的注解,用于控制对象序列化/反序列化时包含哪些字段。可以实现: - 不同接口返回不同字段 diff --git a/docs/Web-Backend/SpringBoot/SpringBoot-Common.md b/docs/Web-Backend/SpringBoot/SpringBoot-Common.md index 3f24fda..2d85a34 100644 --- a/docs/Web-Backend/SpringBoot/SpringBoot-Common.md +++ b/docs/Web-Backend/SpringBoot/SpringBoot-Common.md @@ -1,5 +1,3 @@ - - # 一、框架说明 本框架基于Spring Boot3框架二次开发,增加了依赖包管理和启动项配置等功能。 diff --git a/docs/Web-Backend/SpringBoot/SpringBoot-Start-Process.md b/docs/Web-Backend/SpringBoot/SpringBoot-Start-Process.md index dd84d5c..638b3fa 100644 --- a/docs/Web-Backend/SpringBoot/SpringBoot-Start-Process.md +++ b/docs/Web-Backend/SpringBoot/SpringBoot-Start-Process.md @@ -1,5 +1,3 @@ - - # 一、启动流程  diff --git a/docs/Web-Backend/SpringBoot/SpringBoot3-GraalVM.md b/docs/Web-Backend/SpringBoot/SpringBoot3-GraalVM.md index f7d3a0d..ad3d567 100644 --- a/docs/Web-Backend/SpringBoot/SpringBoot3-GraalVM.md +++ b/docs/Web-Backend/SpringBoot/SpringBoot3-GraalVM.md @@ -1,5 +1,3 @@ - - # 一、原生镜像 传统 Java 应用基于 JVM 运行,需要加载完整的类库和 JVM 运行时环境,导致启动时间长、内存占用高。而**原生镜像技术通过提前编译(AOT)将 Java 应用直接编译为本地机器码,无需 JVM 即可运行**,具有以下核心优势: diff --git a/docs/Web-Backend/SpringBoot/SpringBootBean.md b/docs/Web-Backend/SpringBoot/SpringBootBean.md index b9c3e10..0723b74 100644 --- a/docs/Web-Backend/SpringBoot/SpringBootBean.md +++ b/docs/Web-Backend/SpringBoot/SpringBootBean.md @@ -1,5 +1,3 @@ - - # 一、Bean概念 ## 1.1 定义 Spring bean是Spring框架在运行时管理的对象,Bean是一个由Spring IoC容器实例化、组装和管理的对象。 diff --git a/docs/Web-Backend/SpringBoot/SpringBootStarter.md b/docs/Web-Backend/SpringBoot/SpringBootStarter.md index 5a7195a..7b900bb 100644 --- a/docs/Web-Backend/SpringBoot/SpringBootStarter.md +++ b/docs/Web-Backend/SpringBoot/SpringBootStarter.md @@ -1,5 +1,3 @@ - - # 一、简介 Spring Boot Starter是一组预定义的依赖项集合,旨在简化Maven或Gradle等构建工具中的依赖管理。每个Starter都包含了实现特定功能所需的库和组件,以及相应的配置文件。开发者只需在项目中引入相应的Starter依赖,即可快速搭建起具备该功能的项目骨架。 Starter=依赖+自动配置+配置文件 diff --git a/docs/Web-Backend/SpringBoot/SpringIOC.md b/docs/Web-Backend/SpringBoot/SpringIOC.md index fc694ca..f4680e8 100644 --- a/docs/Web-Backend/SpringBoot/SpringIOC.md +++ b/docs/Web-Backend/SpringBoot/SpringIOC.md @@ -1,5 +1,3 @@ - - # 一、IOC Spring框架的核心是IOC(控制反转)容器,它负责管理应用程序中的对象(称为Bean)的创建、配置和组装。 diff --git a/docs/Web-Backend/SpringBoot/SpringMVC.md b/docs/Web-Backend/SpringBoot/SpringMVC.md index c5ca129..2abcf5b 100644 --- a/docs/Web-Backend/SpringBoot/SpringMVC.md +++ b/docs/Web-Backend/SpringBoot/SpringMVC.md @@ -1,5 +1,3 @@ - - # 一、基础概念 Spring MVC(Spring Model-View-Controller)是 Spring Framework 中的一部分,它是一个基于 **请求驱动** 的 Web 框架,主要用于构建 Web 应用程序,并且遵循 MVC(模型-视图-控制器) 设计模式。它将 Web 应用的业务逻辑、用户界面和请求处理分离,使得代码更加模块化和可维护。 diff --git a/docs/Web-Front/Others/Browser-Process.md b/docs/Web-Front/Others/Browser-Process.md index a648555..9e58fbe 100644 --- a/docs/Web-Front/Others/Browser-Process.md +++ b/docs/Web-Front/Others/Browser-Process.md @@ -1,5 +1,3 @@ - - # 一、网络请求阶段 1. DNS 解析 diff --git a/docs/Web-Front/Others/JavaScript-Guide.md b/docs/Web-Front/Others/JavaScript-Guide.md index bb853d1..5b7d2f5 100644 --- a/docs/Web-Front/Others/JavaScript-Guide.md +++ b/docs/Web-Front/Others/JavaScript-Guide.md @@ -1,5 +1,3 @@ - - # JavaScript简介 ## JavaScript 实现 完整的`JavaScript`实现包含以下几个部分: diff --git a/docs/Web-Front/Others/Package.md b/docs/Web-Front/Others/Package.md index 1e88580..033179c 100644 --- a/docs/Web-Front/Others/Package.md +++ b/docs/Web-Front/Others/Package.md @@ -1,5 +1,3 @@ - - # npm 2010年随Node.js发布的npm,首次为JavaScript引入了标准的包管理系统。其核心创新是**package.json文件**,通过语义化版本规范定义了依赖声明标准。这一设计解决了手动管理依赖时的版本混乱问题,为模块化开发提供了基础设施。 diff --git a/docs/Web-Front/Others/Vite-Principle.md b/docs/Web-Front/Others/Vite-Principle.md index 4258280..8166d95 100644 --- a/docs/Web-Front/Others/Vite-Principle.md +++ b/docs/Web-Front/Others/Vite-Principle.md @@ -1,5 +1,3 @@ - - # 一、Vite简介 Vite是新一代的前端构建工具,在尤雨溪开发Vue3.0的时候诞生。类似于Webpack+ Webpack-dev-server。 其主要利用浏览器**ESModule特性**导入组织代码,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随起随用。生产中利用Rollup作为打包工具,号称下一代的前端构建工具。 diff --git a/docs/Web-Front/Vue/Vue3-Architecture.md b/docs/Web-Front/Vue/Vue3-Architecture.md index 886a789..8b15b9b 100644 --- a/docs/Web-Front/Vue/Vue3-Architecture.md +++ b/docs/Web-Front/Vue/Vue3-Architecture.md @@ -1,5 +1,3 @@ - - # 一、Vue3 整体架构图 ```mermaid graph TD diff --git a/docs/Web-Front/Vue/Vue3-Common.md b/docs/Web-Front/Vue/Vue3-Common.md index b736fe5..8072083 100644 --- a/docs/Web-Front/Vue/Vue3-Common.md +++ b/docs/Web-Front/Vue/Vue3-Common.md @@ -1,5 +1,3 @@ - - # 一、依赖管理 本项目会传递安装的依赖有: