Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
dzÎöDockerÈÝÆ÷°²È«¹Ü¿Ø·½·¨
 
 
  1865  次浏览      28
 2021-6-29
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËDockerÈÝÆ÷ÉúÃüÖÜÆÚ°²È«ÎÊÌâ¼°DockerÈÝÆ÷°²È«ÏÖ×´¸ÄÉÆ·½·¨¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«Õ˺Ű²È«Å££¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

Ò»¡¢Ç°ÑÔ

ºÁÎÞÒÉÎÊ£¬ÈÝÆ÷Êǵ±Ç°ÔƼÆËãµÄÈÈÃÅÖ÷Á÷¼¼ÊõÖ®Ò»¡£

Docker ͨ¹ý°ÑÓ¦ÓõÄÔËÐÐʱ»·¾³ºÍÓ¦Óôò°üÔÚÒ»Æð£¬½â¾öÁ˲¿Êð»·¾³ÒÀÀµµÈÎÊÌ⣻ËüÏû³ýÁ˱àÒë¡¢´ò°üÓ벿Êð¡¢ÔËά֮¼äµÄºè¹µ£¬ÓÐÖúÓÚÌá¸ßÓ¦Óÿª·¢¡¢ÔËάЧÂÊ£º×ÜÖ®£¬ËüÓë DevOps ÀíÄı¶øºÏ£¬Êܵ½Á˺ܶàÆóÒµµÄÍÆ³ç¡£

µ±È» Docker ÈÝÆ÷µÄÉúÃüÖÜÆÚÖÐÒ²´æÔÚ×Ų»ÉÙ°²È«Òþ»¼£¬±ÈÈçÈÝÆ÷×ÔÉíµÄÎÊÌâ¡¢ÈÝÆ÷¾µÏñµÄÎÊÌ⣬»¹ÓÐÈÝÆ÷ÔÚÔËÐÐʱ±©Â¶µÄÎÊÌâµÈµÈ¡£Òò´Ë£¬±¾ÎĽ«¶Ô Docker ÈÝÆ÷ÉúÃüÖÜÆÚµÄ°²È«ÎÊÌâ¼°ÏàÓ¦µÄ¸ÄÉÆ·½·¨½øÐÐÈô¸É̽ÌÖ£¬¹Òһ©Íò£¬Å×שÒýÓñ£¬Ï£Íû¸÷λ¶ÁÕßÓèÒÔÅúÆÀÖ¸Õý£¡

¶þ¡¢DockerÈÝÆ÷ÉúÃüÖÜÆÚ°²È«ÎÊÌâ

ÔÚ Docker ÈÝÆ÷ÉúÃüÖÜÆÚÄڵĶà¸ö½×¶Î¾ù¿ÉÄÜÒýÈ밲ȫÎÊÌ⣬±¾Õ½«·ÖÄ£¿é¶ÔÕâЩ°²È«ÎÊÌâ½øÐÐdzÎö£¬¸Ù¾ÙÄ¿ÕÅ£¬ÎÒÃÇÏÈÁ˽âһϠDocker ÈÝÆ÷È«ÉúÃüÖÜÆÚ°²È«¹Ü¿ØµÄ¼Ü¹¹£¬Èçͼ1Ëùʾ¡£

ͼ1. Docker ÈÝÆ÷È«ÉúÃüÖÜÆÚ°²È«¹Ü¿Ø¼Ü¹¹

ÕâÕÅͼƬ¿ÉÒÔ·´Ó³ Docker ¶ÔÆäºËÐÄ¡ª¡ª¡°¾µÏñ¡± µÄ ¡°Build, Ship and Run¡±£¨¹¹½¨¾µÏñ¡¢´«Êä¾µÏñÓëÔËÐÐÈÝÆ÷£©²Ù×÷£»DockerµÄÓ¦Óû·¾³¿É±»·ÖΪ¡°·ÇÉú²ú»·¾³¡±ºÍ ¡°Éú²ú»·¾³¡± ÕâÁ½Àà¡£

·ÇÉú²ú»·¾³Óë Dev£¨¿ª·¢£©Ç¿Ïà¹Ø£¬¶øÉú²ú»·¾³ÔòÓëOps£¨ÔËά£©Ç¿Ïà¹Ø¡£·ÇÉú²ú»·¾³ÄÚµÄÖ÷Òª¹Ü¿ØµãÊǾµÏñÉî¶ÈɨÃ裬ÔÚÉú²ú»·¾³×öÈÝÆ÷±àÅÅʱÐèÒª´Ó·ÇÉú²ú»·¾³À­È¡²¢ÔËÐÐDocker¾µÏñ£¬Òò´Ë¾µÏñÔËÐпØÖÆÒ²ÊÇÒ»¸öÖ÷Òª¹Ü¿Øµã¡£

Éú²ú»·¾³ÄÚµÄÖ÷Òª¹Ü¿ØµãÊÇÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤ÒÔ¼°ÈÝÆ÷ÍøÂçÈëÇÖ¼ì²âÓë·À»¤¡£Í¬Ê±£¬Ó¦ÔÚDockerÈÝÆ÷È«ÉúÃüÖÜÆÚÖеĸ÷¸ö½×¶Î½«ºÏ¹æ»ùÏßÎÊÌâ×÷ÎªÖØÒªµÄ¹Ü¿Øµã¡£

ÏÂÃæ´ÓDockerÈÝÆ÷°²È«µÄ¸÷¸öÖ÷Òª¹Ü¿Øµã³ö·¢£¬Áоٲ¿·ÖËüÃÇËùÓ¦¶ÔµÄ°²È«ÎÊÌâ¡£

1¡¢¾µÏñÉî¶ÈɨÃè

ÔÚ×ö¾µÏñÉî¶ÈɨÃèʱ£¬Ó¦ÖØÊӵݲȫÎÊÌâ°üÀ¨µ«²»ÏÞÓÚ£º

¾µÏñÖеIJÙ×÷ϵͳÈí¼þ°üÓëÓ¦ÓóÌÐòÒÀÀµÏî°üº¬ÒÑÖªCVE©¶´

¾µÏñµÄÓ¦ÓÃĿ¼±»Ö²ÈëWebshell

¾µÏñÃô¸ÐÐÅϢй¶

¾µÏñÍêÕûÐÔУÑéÎÊÌâ

DockerfileÖдæÔÚ²»°²È«µÄд·¨£¨DockerfileÊÇDocker¾µÏñµÄ¹¹½¨½Å±¾£©

2¡¢¾µÏñÔËÐпØÖÆ

ÔÚ×ö¾µÏñÔËÐпØÖÆÊ±£¬Ó¦ÖØÊӵݲȫÎÊÌâ°üÀ¨µ«²»ÏÞÓÚ£º

¾µÏñÍêÕûÐÔУÑéÎÊÌâ

ÌØÈ¨Ä£Ê½¹²ÏírootȨÏÞ

ÄÚ´æÅä¶îδ±»ÏÞÖÆ

CPUÓÅÏȼ¶Î´±»ÏÞÖÆ

´æ´¢¿Õ¼äÅä¶îδ±»ÏÞÖÆ

ÔÚÆôÓÃÈÝÆ÷ʱʹÓÃHostÍøÂçģʽ

3¡¢ÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤

ÔÚ×öÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤Ê±£¬Ó¦ÖØÊӵݲȫÎÊÌâ°üÀ¨µ«²»ÏÞÓÚ£º

δ¸ôÀëÎļþϵͳ

µ÷ÓÃÓЩ¶´µÄϵͳÄں˺¯Êý

¾Ü¾ø·þÎñ¹¥»÷

4¡¢ÈÝÆ÷ÍøÂçÈëÇÖ¼ì²âÓë·À»¤

ÔÚ×öÈÝÆ÷ÍøÂçÈëÇÖ¼ì²âÓë·À»¤Ê±£¬Ó¦ÖØÊӵݲȫÎÊÌâ°üÀ¨µ«²»ÏÞÓÚ£º

ÈÝÆ÷¼äµÄ¾ÖÓòÍø¹¥»÷

Remote API½Ó¿Ú°²È«

DockerȱÏݼܹ¹Ó밲ȫ»úÖÆç¢Â©

΢·þÎñ¼Ü¹¹WebÓ¦Óð²È«ÎÊÌâ

5¡¢°²È«ºÏ¹æ»ùÏß

ΪÁËÓ¦¶ÔDocker°²È«ÎÊÌâ£¬Ó¦ÖØÊӵݲȫÎÊÌâ°üÀ¨µ«²»ÏÞÓÚ£º

Äں˼¶±ð

ÍøÂç¼¶±ð

¾µÏñ¼¶±ð

ÈÝÆ÷¼¶±ð

ÎļþÏÞÖÆ

ÄÜÁ¦ÏÞÖÆ

6¡¢Docker¼°ÆäÅäÌ×Èí¼þ©¶´

ÔÚʹÓÃDocker¼°ÆäÅäÌ×Èí¼þʱ£¬Ó¦ÖØÊӵݲȫÎÊÌâ°üÀ¨µ«²»ÏÞÓÚ£º

Docker×ÔÉí©¶´

K8S(Kubernetes)µÈ±àÅÅÓ¦ÓÃ×ÔÉí©¶´

¾µÏñ²Ö¿â×ÔÉí©¶´

×¢£ºDocker¼°ÆäÅäÌ×Èí¼þ©¶´¶ÔDockerÈÝÆ÷°²È«ÎÊÌâÓÐ׎ÏÉîµÄÓ°Ï죬Òò¶ø½«Ö®¶ÀÁ¢³ÉÒ»¸ö¹Ü¿Øµãµã¡£¿É½«¡°ËùʹÓõÄDocker¼°ÆäÅäÌ×Èí¼þµÄ°æ±¾²»ÊÜÒÑ֪©¶´Ó°Ï족×÷ΪһÌõ¡°°²È«ºÏ¹æ»ùÏß¡±¡£

Èý¡¢Ç³Ì¸DockerÈÝÆ÷°²È«ÏÖ×´¸ÄÉÆ·½·¨

Ãæ¶Ô Docker ÈÝÆ÷°²È«µÄÌôÕ½£¬¿ÉÒÔ ¡°·Ö¶øÖÎÖ®¡±£¬¶Ô¸÷¸ö½×¶ÎµÄ°²È«¹Ü¿Øµã½øÐйܿء£ÔÚʵʩ¹Ü¿ØÊ±£¬Ò²¿É»®·ÖÓÅÏȼ¶£¬ÓÅÏÈ¿¼ÂǽÏÎªÖØÒªµÄ¹Ü¿Øµã£¬ÍƳٿ¼ÂǽÏΪ´ÎÒªµÄ¹Ü¿Øµã£¨ÀýÈ磬¡°¾µÏñÔËÐпØÖÆ¡± ¹Ü¿ØµãÓëÓû§¶Ô Docker µÄʹÓ÷½Ê½Óнϴó¹ØÁª¡£¿ÉÒÔÔÚ°²È«²úÆ·ÖжÔÓû§µÄΣÏÕ²Ù×÷½øÐи澯£¬µ«²»Ò»¶¨Òª½øÐÐ×è¶Ï¡£Docker ÈÝÆ÷°²È«²úÆ·Ó¦×¢ÖØ¶ÔÓÉÓû§µÄ²»°²È«Ê¹Ó÷½Ê½´ßÉúµÄ°²È«ÎÊÌâ½øÐзÀÓù£©¡£

ÏÂÃæ£¬½áºÏÐÐҵʵ¼ù¾­ÑéÊáÀíÕë¶Ô ¡°¾µÏñÉî¶ÈɨÃ衱¡¢¡°ÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤¡±¡¢¡°ÈÝÆ÷ÍøÂçÈëÇÖ¼ì²âÓë·À»¤¡± Óë ¡°°²È«ºÏ¹æ»ùÏß¡± µÄ¹Ü¿Ø·½·¨¡£

01¡°¾µÏñÉî¶ÈɨÃ衱 ¹Ü¿Ø·½·¨

ÔÚʹÓà Docker ¾µÏñ֮ǰʹÓà Docker ¾µÏñɨÃèÆ÷ÓÐÖúÓÚ·¢ÏÖ Docker ¾µÏñµÄ°²È«ÐÔÎÊÌâ¡£»ùÓÚ´Ë£¬ÖªÃûµÄ¿ªÔ´¾µÏñ²Ö¿â Harbor ¾Í¼¯³ÉÁ˾µÏñɨÃèÆ÷£¬Èçͼ 2 Ëùʾ¡£

ͼ2. ÖªÃû¿ªÔ´¾µÏñ²Ö¿âHarbor¼¯³ÉÁ˾µÏñɨÃèÆ÷

ÏÖÓоµÏñɨÃ蹤¾ß»ù±¾¶¼¾ß±¸ÁË ¡°¶ÔÈí¼þ©¶´½øÐÐɨÃ衱 µÄ»ù´¡¹¦ÄÜ¡£²¿·Ö¿ªÔ´ÏîÄ¿»òÉÌҵƽ̨¾ß±¸ÈçÏÂÌØÊ⹦ÄÜ£º

¶ÔľÂí¡¢²¡¶¾¡¢¶ñÒâÈí¼þ»òÆäËû¶ñÒâÍþв½øÐо²Ì¬·ÖÎö

¶ÔÖ÷Á÷±à³ÌÓïÑԵĴúÂ밲ȫÎÊÌâ½øÐо²Ì¬·¢ÏÖ£¨Ó뿪·¢¹¤×÷Á÷½ôÃܽáºÏ£©

¶ÔDockerfile½øÐмì²é

¶Ôƾ¾Ýй¶½øÐмì²é

ÒòΪ Docker ¾µÏñÊÇ Docker ÈÝÆ÷µÄÄ£°å£¬ËùÉæ¼°µÄ¹¥»÷Ãæ½Ï´ó£¬²¢ÇÒÓеݲȫ·çÏÕ²»Ò×±»É¨ÃèÆ÷Ëù·¢ÏÖ£¬ËùÒÔÏÖ½×¶ÎµÄ ¡°Docker¾µÏñɨÃ衱µÄ×ö·¨ÈÔ²»Äܱ£ÕÏ Docker ¾µÏñµÄ°²È«ÐÔ£¬½¨ÒéÈ˹¤½éÈë¼ì²é£¨¿É½áºÏ¡°docker inspect¡± Óë ¡°docker history¡± µÈÃüÁî²é¿´¾µÏñµÄ²¿·ÖÐÅÏ¢£©¡£

02¡°ÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤¡± ¹Ü¿Ø·½·¨

¼ÓÇ¿ Docker ÈÝÆ÷ÓëÄں˲ãÃæµÄ¸ôÀëÐÔÓÐÖúÓÚÇ¿»¯ ¡°ÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤¡±¡£±ÈÈç Docker ÉçÇø¿ª·¢µÄ°²È«ÌØÐÔ¡¢Linux ÔËÐÐʱ·½°¸¡¢Òì³£ÐÐΪ¼ì²âÓ¦ÓÃÒÔ¼° ¡°ÈÝÆ÷+È«ÐéÄ⻯¡± ·½°¸£¬Èçͼ 3 Ëùʾ¡£

ͼ3. ¡°ÈÝÆ÷ϵͳÈëÇÖ¼ì²âÓë·À»¤¡± ¹Ü¿Ø·½·¨

Docker ÉçÇø¿ª·¢ÁËÕë¶Ô Linux µÄ Cgroup ºÍ Namespce µÄ°²È«ÌØÐÔ£¨Cgroup¿ÉÓÃÓÚÏÞÖÆCPU¡¢ÄÚ´æ¡¢¿éÉ豸I/O£¨¾ßÌå¿É²Î¿¼¡°docker run¡±ÃüÁîµÄ²ÎÊý£©£»Namespace ¿ÉÓÃÓÚ¶Ô PID¡¢mount¡¢network¡¢UTS¡¢IPC¡¢user µÈÄÚºË×ÊÔ´½øÐиôÀ룻Cgroup ¶Ôϵͳ×ÊÔ´µÄ¸ôÀëÒѾ­±È½ÏÍêÉÆÁË£¬¶ø Namespace µÄ¸ôÀ뻹²»¹»ÍêÉÆ£¨ÉõÖÁ²»¿ÉÄÜÍêÉÆ£¬ÒòΪÕâÊǹ²ÏíÄں˵¼ÖµĹÌÓÐȱÏÝ£©¡£

²¿·Ö¿É½è¼øµÄLinuxÔËÐÐʱ·½°¸ÈçÏ£º

(1) Capability£ºÁîij³ÌÐòÓµÓÐÄÄЩÄÜÁ¦£»

(2) Selinux£º¶¨ÒåÁËϵͳÖÐÿһ¸öÓû§¡¢½ø³Ì¡¢Ó¦Óá¢Îļþ·ÃÎʼ°×ª±äµÄȨÏÞ£¬È»ºóʹÓÃÒ»¸ö°²È«²ßÂÔÀ´¿ØÖÆÕâЩʵÌ壨¼´Óû§¡¢½ø³Ì¡¢Ó¦ÓúÍÎļþ£©Ö®¼äµÄ½»»¥£¬°²È«²ßÂÔÖ¸¶¨ÁËÈçºÎÑϸñ»òÕß¿íËɵؽøÐмì²é£»

(3) Apparmor£ºÉèÖÃÖ´ÐгÌÐòµÄ·ÃÎÊ¿ØÖÆÈ¨ÏÞ£¨¿ÉÏÞÖÆ³ÌÐò¶Á/дij¸öĿ¼Îļþ£¬´ò¿ª/¶Á/Ð´ÍøÂç¶Ë¿ÚµÈ£©;

(4) Secomp£ºÓ¦ÓóÌÐòµÄɳºÐ»úÖÆ£¬ÒÔ°×Ãûµ¥¡¢ºÚÃûµ¥·½Ê½ÏÞ¶¨½ø³Ì¶Ôϵͳ½øÐе÷Óã»

(5) Grsecurity£ºlinux Äں˲¹¶¡£¬ÔöÇ¿Äں˰²È«ÐÔ¡£

²¿·Ö¿É½è¼øµÄÈÝÆ÷»·¾³Òì³£ÐÐΪ¼ì²â¿ªÔ´Ó¦ÓÃÈçÏ£º

(1) Sysdig Falco£ºÒ»¿îÎªÔÆÔ­Éúƽ̨Éè¼ÆµÄ½ø³ÌÒì³£ÐÐΪ¼ì²â¹¤¾ß£¬Ö§³Ö½ÓÈëϵͳµ÷ÓÃʼþºÍ Kubernetes Éó¼ÆÈÕÖ¾£»

(2) cAdvisor£º¿ÉÒÔ¶Ô½Úµã»úÆ÷ÉϵÄ×ÊÔ´¼°ÈÝÆ÷½øÐÐʵʱ¼à¿ØºÍÐÔÄÜÊý¾Ý²É¼¯£¬°üÀ¨ CPU ʹÓÃÇé¿ö¡¢ÄÚ´æÊ¹ÓÃÇé¿ö¡¢ÍøÂçÍÌÍÂÁ¿¼°ÎļþϵͳʹÓÃÇé¿ö¡£

¡°ÈÝÆ÷+È«ÐéÄ⻯¡± ·½°¸Ò²ÊÇ ¡°ÈÝÆ÷ϵͳÈëÇÖ·À»¤¡± µÄÓÐЧ·½°¸£¬Èç¹û½«ÈÝÆ÷ÔËÐÐÔÚÈ«ÐéÄ⻯»·¾³ÖУ¨ÀýÈçÔÚÐéÄâ»úÖÐÔËÐÐÈÝÆ÷£©£¬ÕâÑù¾ÍËãÈÝÆ÷±»¹¥ÆÆ£¬Ò²»¹ÓÐÐéÄâ»úµÄ±£»¤×÷Óã¨Ä¿Ç°Ò»Ð©°²È«ÐèÇóºÜ¸ßµÄÓ¦Óó¡¾°²ÉÓõľÍÊÇÕâÖÖ·½Ê½£©¡£

03¡°ÈÝÆ÷ÍøÂçÈëÇÖ¼ì²âÓë·À»¤¡± ¹Ü¿Ø·½·¨

Docker ÈÝÆ÷ÍøÂçµÄ°²È«ÎÊÌâ¿É±»»®·ÖΪ ¡°ÍøÂ簲ȫ·À»¤¡± Óë ¡°Î¢·þÎñWebÓ¦Óð²È«¡± Á½À࣬¡°¸ôÀ롱 ºÍ ¡°·ÃÎÊ¿ØÖÆ¡± µÈÖ÷Ҫ˼·¾ùÓÐÖúÓڹܿضþÕߵݲȫÎÊÌâ¡£´ËÍ⣬ÈԿɽ«²¿·ÖÏֽ׶νÏΪ³ÉÊìµÄ°²È«¼¼ÊõÓ¦Óõ½ Docker ³¡¾°ÖС£ÔÚ¾ßÌåʵʩʱ£¬¿ÉÒÀ¾Ý Docker Ó¦ÓùæÄ£Óëʵ¼ÊµÄÍøÂ粿ÊðÇé¿ö½øÐйܿء£

Docker ÍøÂç±¾Éí¾ß±¸ ¡°¸ôÀ롱 ºÍ ¡°·ÃÎÊ¿ØÖÆ¡± ¹¦ÄܵÄÍøÂ簲ȫ»úÖÆ£¬µ«´æÔÚ ¡°Á£¶È½Ï´ó¡± Óë ¡°¶Ô°²È«ÍþвµÄ¸ÐÖªÄÜÁ¦²»×㡱 µÈȱÏÝ£¬Èçͼ4Ëùʾ¡£

ͼ4. Docker ÍøÂç×ÔÉí°²È«»úÖÆ

ΪÁËÃÖ²¹ Docker ÍøÂçµÄ°²È«È±ÏÝ£¬Ò»Ð©ÉÌÒµ»¯µÄ¶Ë¶Ô¶ËµÄ Docker °²È«²úÆ·¶ÔÍøÂ缯Ⱥ½øÐÐÁË×ÝÉî·ÀÓù£¬ËüÃǾ߱¸µÄ¹¦ÄÜÌØµã°üÀ¨ÁË£º

ÈÝÆ÷·À»ðǽ

ÔËÐÐʱ±£»¤

ÍøÂçÉî¶ÈÊý¾Ý°ü¼ì²â

¹¥»÷ÐÐΪ¡¢Òì³£ÐÐΪ¸æ¾¯

ÈÕÖ¾¼à¿Ø

¶à±àÅÅÆ½Ì¨Ö§³Ö

ÍøÂçÁ÷Á¿¿ÉÊÓ»¯

²¿·Ö³§ÉÌÔÚʵÏÖÉÏÊö¹¦Äܵãʱ£¬ÔÚ²úÆ·ÖÐÒýÈëÁË»úÆ÷ѧϰ·½·¨£¬ÓÃÓÚÉú³ÉÐÐΪģʽÓëÈÝÆ÷¸ÐÖªÍøÂç¹æÔò¡£

Docker ÍøÂç¾ßÓÐ×éÍø·½°¸¶àÑù»¯¡¢ÈÝÆ÷ÉúÃüÖÜÆÚ³¤¶Ì²»Ò»¡¢Ó¦Óó¡¾°¶àÑù»¯µÈÌØµã¡£Òò¶ø£¬Ó¦²ÎÕÕ×éÍø·½°¸ÌصãÖÆ¶¨¹Ü¿Ø·½·¨¡£±ÊÕßÊáÀíµÄÕë¶Ô ¡°Àഫͳµ¥ÌåÓ¦Óá±ºÍ ¡°Î¢·þÎñ¼Ü¹¹Ó¦Óá± µÄÈëÇÖ¼ì²âÓë·ÀÓù˼·Èçͼ5Ëùʾ¡£

ͼ5. Docker ÍøÂçÈëÇÖ¼ì²âÓë·À»¤Ë¼Â·

Ê×ÏÈÀ´¿´ ¡°Àഫͳµ¥ÌåÓ¦Óá± µÄ Docker ÍøÂ缯ȺµÄÈëÇÖ¼ì²âºÍ·À»¤Ë¼Â·¡£ÒÔͼ 6 ËùʾµÄ΢·þÎñ¼¯ÈºÎªÀý½øÐнéÉÜ¡£¸Ã¼¯ÈºÀïÖ»ÓÐ Nginx¡¢Tomcat ÒÔ¼° MySQL µÄ 3 ¸öÈÝÆ÷¡£

ͼ6. ¡°Àഫͳµ¥ÌåÓ¦Óá±µÄDockerÍøÂ缯ȺµÄÈëÇÖ¼ì²âºÍ·À»¤Ë¼Â·

×¢£ºÍ¼ÖеÄÂÌÉ«ÐéÏß±íʾÎļþ¹ÒÔØ»òÕßDockerµÄcpÃüÁîµÈ·½Ê½£¬Í¨¹ýÕâÁ½ÖÖ·½Ê½¿ÉÒÔ¸ü±ã½ÝµØÔÚËÞÖ÷»úʵʱÐÞ¸ÄNginxÈÝÆ÷ÀïµÄÅäÖÃÎļþ£¬µ÷ÕûTomcatÈÝÆ÷ÀïµÄÓ¦ÓóÌÐòÎļþ£¬»òÕß¶ÔMySQLÈÝÆ÷ÀïµÄÊý¾Ý½øÐг־û¯¡£

ΪÁ˶ÔÕâÌ× Docker Web Ó¦ÓýøÐÐÈëÇÖ¼ì²âÓë·ÀÓù£¬¿É¿¼ÂÇÒÔÏ 9 µã·½·¨£º

(1) Iptables¸ôÀë

ͨ¹ýÔÚËÞÖ÷»ú²à¶ÔDockerÍøÂ缯ȺÍⲿ×ö»ùÓÚIptablesµÄ¸ôÀë²ßÂÔ£¬¿ÉÒÔÏÞÖÆ¹¥»÷Õß¶Ô¡°ÈÝÆ÷ÔÚËÞÖ÷»úËùÓ³Éä¶Ë¿Ú¡±µÄ·ÃÎÊ£¬ËõСÊܹ¥»÷Ãæ¡£

(2) ²¿ÊðÈíWAF

ͨ¹ýÔÚDockerÍøÂ缯ȺµÄÁ÷Á¿Èë¿Ú´¦×öÈíWAFµÄ²¿Êð£¨ÐÎ̬¿ÉÒÔÊÇËÞÖ÷»úÈí¼þ»òÕßDockerÈÝÆ÷£©£¬¿ÉÒÔÔÚ´Ë´¦×è¶Ï¡¢·¢ÏÖ²¿·Ö¶ñÒâÁ÷Á¿¡£

(3) ²¿ÊðRASP

ͨ¹ýÔÚJava¡¢PHP·þÎñÆ÷DockerÈÝÆ÷ÄÚ²¿²¿ÊðRASP²úÆ·£¬¿ÉÒÔÓÃÖ®×÷Ϊ±£»¤µÄ×îºóÒ»»·£¬×÷ÎªÍøÂçÖÎÀíµÄÒ»¸ö²¹³äСµã¡£

(4) WebshellɨÃè

ͨ¹ýÔÚËÞÖ÷»ú²àͨ¹ýWebshellɨÃèÒýÇæÉ¨ÃèÀ´×ÔDockerÈÝÆ÷µÄ¡°WebÓ¦ÓóÌÐòÎļþ¡±£¨ÕâЩÎļþ¿Éͨ¹ý¡°docker cp¡±ÃüÁî»òÕß¡°¶¯Ì¬¹ÒÔØ¡±»úÖÆ»ñµÃ£©£¬ÓÐÖúÓÚ·¢ÏÖ¹¥»÷ÕßÖ²ÈëµÄWebshell¡£

(5) ÈÕÖ¾·ÖÎö

ͨ¹ýÔÚËÞÖ÷»ú²àͨ¹ýELKµÈÈÕÖ¾·ÖÎö·ÖÎöÀ´×ÔDockerÈÝÆ÷µÄÈÕÖ¾Îļþ£¨ÕâЩÈÕÖ¾ÎļþͬÑù¿Éͨ¹ý¡°docker cp¡±»ò¡°¶¯Ì¬¹ÒÔØ¡±µÈ·½Ê½»ñµÃ£©¡£´ËÍ⣬µ¥¶ÀÔËÐÐSidekickÈÕÖ¾ÈÝÆ÷µÈ×ö·¨ÓÐÖúÓÚ·¢ÏÖ°²È«Íþв¡£

(6) ʶ±ðÖмäÈ˹¥»÷

ͨ¹ýÔÚDockerÍøÂ缯ȺÄÚ²¿Í¨¹ýÍøÂç¸ôÀëÊÇ·ÀÖ¹´ËÀà»ùÓÚÍøÂçµÄ¹¥»÷µÄÓÐЧ·½·¨£¬´Ë·½·¨¿ÉʹµÃ¹¥»÷ÕßÎÞ·¨²Ù×Ý»òÇÔÌýÖ÷»ú¼°ÆäËûÈÝÆ÷µÄÍøÂçÁ÷Á¿£»ÔÚÕâÖÖÇé¿öÏ£¬OpenVPN(¿ª·ÅÐéÄâרÓÃÍøÂç)ÌṩÁËÒ»ÖÖͨ¹ýTLS(´«Êä²ã°²È«Ð­Òé)¼ÓÃÜʵÏÖÐéÄâרÓÃÍøÂç(VPN)µÄ·½·¨¡£

(7) ʶ±ð¡¢×è¶ÏÁ÷ÏòÒì³£µÄÁ÷Á¿

ͨ¹ýÔÚDockerÍøÂ缯ȺÄÚ²¿ÒÀ¾Ýʵ¼ÊµÄÍøÂçÍØÆËͼ¶ÔÍøÂç½øÐÐ ¡°Î¢·Ö¶Î¡± ¸ôÀ루ÔÚ¡°Î¢·þÎñ¼Ü¹¹¡±Ï£¬IPµØÖ·¿ÉÄܱ任Ƶ·±£¬µ«ÊÇÔ¤ÏÈ»®·ÖµÄÍø¶Î²»»á±ä»»Æµ·±£©£¬»òÕß¶ÔÖ¸¶¨µÄÍøÇÅ¡¢Íø¿¨½øÐÐÁ÷Á¿µÄDPI·ÖÎö£¬ÓÐÖúÓÚʶ±ð¡¢×è¶ÏÁ÷ÏòÒì³£µÄÁ÷Á¿¡£

(8£©Ê¶±ð¾Ü¾ø·þÎñ¹¥»÷

ͨ¹ýÔÚËÞÖ÷»ú²à¶ÁÈ¡ºÍDockerÈÝÆ÷¶ÔÓ¦µÄcgroupÎļþϵͳÏà¹ØÎļþµÄʵʱÄÚÈÝ£¨ÍøÂç¡¢CPU¡¢ÄÚ´æ¡¢´ÅÅÌ£©£¬¿ÉÒÔʶ±ð³ö¾Ü¾ø·þÎñ¹¥»÷¡£

(9) ÍøÂçÁ÷Á¿¿ÉÊÓ»¯

¡°ÍøÂçÁ÷Á¿¿ÉÊÓ»¯¡± ÊÇÏÖÓÐµÄ ¡°ÈÝÆ÷°²È«²úÆ·¡±µÄ³£¼û¸½¼Ó¹¦ÄÜ¡£¸Ã¹¦ÄܵŦÄÜ¿ÉÄÜÒÀÍÐÓÚ ¡°¶ÔÖ¸¶¨µÄÍøÇÅ¡¢Íø¿¨½øÐÐÁ÷Á¿µÄDPI·ÖÎö¡±¡£

½Ó×ÅÀ´¿´ ¡°Î¢·þÎñ¼Ü¹¹Ó¦Óá± µÄ Docker ÍøÂ缯ȺµÄÈëÇÖ¼ì²âºÍ·À»¤Ë¼Â·¡£¡°Î¢·þÎñ¼Ü¹¹Ó¦Óá± Óë ¡°Àഫͳµ¥ÌåÓ¦Óá± µÄÏÔÖøÇø±ð°üÀ¨ÁË Docker ÈÝÆ÷ÊýÁ¿½Ï¶à¡¢ÍøÂçÍØÆË½Ï¸´Ôӵȷ½Ãæ¡£ÔÚÕâÖÖÉú²ú³¡¾°Ï£¬K8S µÈƽ̨¿É°ïÖúÓû§½øÐдó¹æÄ£ÈÝÆ÷±àÅÅ¡£¿É¿¼ÂÇʹÓõÄÈëÇÖ¼ì²âºÍ·À»¤Ë¼Â·ÈçÏ£º

(1) ÔËÓà K8S Ô­Éú»òÆäµÚÈý·½ÍøÂç²å¼þµÄÍøÂç²ßÂÔ

K8SÔ­ÉúµÄÍøÂç²ßÂÔ ¡°NetworkPolicy¡± ¿ÉΪ K8S µÄ×î»ù±¾²Ù×÷µ¥Î» ¡°Pod¡± Ìṩ ¡°IPµØÖ·/¶Ë¿ÚºÅ¡± ¼¶±ðµÄÍøÂç¸ôÀë¡£

×¢£ºK8SÖ§³ÖÒÔ¡°µÚÈý·½ÍøÂç²å¼þ¡±µÄÐÎʽѡÔñÍøÂç·½°¸£¬½ø¶ø»áÓ°ÏìÍøÂç²ßÂÔµÄÑ¡Ôñ¡£ÀýÈ磬

NetworkPolicyÐëÓÉʵÏÖÁËCNI½Ó¿ÚµÄÍøÂç²å¼þÌṩ£¨ÈçCalico¡¢Cilium¡¢Kube-route¡¢Weave NetµÈµÈ£©¡£

(2) ¹Ø×¢Î¢·þÎñ¼Ü¹¹WebÓ¦ÓõĽӿڡ°ÈÏÖ¤¼øÈ¨¡±ÎÊÌâ

¿ª·¢·½Ó¦¶Ô΢·þÎñ¼Ü¹¹WebÓ¦ÓõÄÈÏÖ¤¼øÈ¨µÈÎÊÌâÓèÒÔÖØÊÓ£¬½µµÍ½Ó¿Ú±»ÍøÂç¿É»¥Í¨µÄÈÝÆ÷¶ñÒâ·ÃÎʵķçÏÕ¡£³£¼ûµÄ¡°ÈÏÖ¤¼øÈ¨¡±·½°¸¿É°üÀ¨£ºÍø¹Ø¼øÈ¨Ä£Ê½¡¢·þÎñ×ÔÖ÷¼øÈ¨Ä£Ê½¡¢API Tokenģʽ¡£

(3) ÒÔ¡°×é¼þ»¯¡±µÄÐÎʽÔÚ΢·þÎñ¼¯ÈºÖв¿ÊðWeb°²È«Ó¦ÓÃ

ΪÁËÔö¼Ó Docker ÍøÂ缯ȺµÄ°²È«ÄÜÁ¦£¬¿ÉÔÚ Docker ¼¯ÈºÖв¿Êð Web °²È«Ó¦Óã¨Õë¶Ô ¡°À൥ÌåWebÓ¦Óá± µÄ×ö·¨ÈԿɼÌÐøÊ¹ÓᣱÈÈ磬ÎÒ˾µÄÍøÕ¾°²È«¹·¿ÉÓÃÓÚ±£»¤²¿ÊðÔÚ Docker ÈÝÆ÷ÀïµÄ Web Ó¦Óã¬Èçͼ 7 Ëùʾ£©£¬´ËÍâÒ²¿É¿¼ÂÇÔÚÈÝÆ÷¼¯ÈºÖв¿ÊðAPIÍø¹ØÈÝÆ÷£¨»ùÓÚNginx+Lua£©¡¢ÃÛ¹ÞÈÝÆ÷»òÕß×ʲú·¢ÏÖÓë©¶´É¨ÃèÆ÷¡£

ͼ7. ÍøÕ¾°²È«¹·¿ÉÒÔÓÃÓÚ±£»¤ Docker ÈÝÆ÷

(4) ÔËÓà ¡°Service Mesh¡± ¼¼Êõ

Service Mesh£¨·þÎñÍø¸ñ£©¼¼ÊõÃÖ²¹ÁË K8S ÔÚ΢·þÎñͨÐŵĶ̰壬ÓÐÖúÓÚ¶ÔÓ¦Óòã×ö·ÃÎÊÏÞÖÆ¡£·þÎñÍø¸ñÊÇÒ»¸ö»ù´¡ÉèÊ©²ã£¬¹¦ÄÜÔÚÓÚ´¦Àí·þÎñ¼äͨÐÅ£¬ÆäÖ÷ÒªÖ°ÔðÔÚÓÚ¸ºÔðʵÏÖÇëÇóµÄ¿É¿¿´«Êä¡£ÔÚʵ¼ùÖУ¬·þÎñÍø¸ñͨ³£ÊµÏÖΪÇáÁ¿¼¶ÍøÂç´úÀí£¬Í¨³£ÓëÓ¦ÓóÌÐò²¿ÊðÔÚÒ»Æð£¬µ«ÊǶÔÓ¦ÓóÌÐò͸Ã÷¡£ÒÔ¿ªÔ´Ó¦Óà Istio ΪÀý£¬Ëüͨ¹ýΪÕû¸ö·þÎñÍø¸ñÌṩÐÐΪ¶´²ìºÍ²Ù×÷¿ØÖÆÂú×ã΢·þÎñÓ¦ÓóÌÐòµÄ¶àÑù»¯ÐèÇó¡£ËüÔÚ·þÎñÍøÂçÖÐͳһÌṩÁËÁ÷Á¿¹ÜÀí¡¢²ßÂÔÖ´ÐС¢·þÎñÉí·ÝºÍ°²È«µÈ¹Ø¼ü¹¦ÄÜ¡£Í¬Ê±£¬Istio»¹¿É¼¯³ÉÒÑÓÐµÄ ACL¡¢ÈÕÖ¾¡¢¼à¿Ø¡¢Åä¶î¡¢Éó¼ÆµÈ¹¦ÄÜ¡£Î´À´ Service Mesh µÄÈںϼܹ¹Ä£ÐÍÈçͼ8Ëùʾ¡£

ͼ8. δÀ´ Service Mesh Èںϼܹ¹

04¡°°²È«ºÏ¹æ»ùÏß¡± ¹Ü¿Ø·½·¨

ΪÁËÓ¦¶Ô Docker ÈÝÆ÷ÉúÃüÖÜÆÚÀïµÄÈ«ÎÊÌ⣬ÐèÒª¿É²Ù×÷¡¢¿ÉÖ´ÐÐµÄ Docker °²È«»ùÏß¼ì²éÇåµ¥£¬Õâ¸öÇåµ¥ÒªÇåÎú¡¢¿É²é¡¢¿Éά»¤£¬ÒÔ¹©ÔÚÉú²ú»·¾³ÖÐÖ´Ðлù´¡¼Ü¹¹µÄ°²È«¼ì²éºÍÉ󼯡£

ÒÔϰ²È«ºÏ¹æ¼ì²é¹¤¾ßÓнϺõIJο¼ÐÔ£º

(1) docker-bench-security£¨ÓëDocker¹Ù·½¼°CISÍÆ³öµÄ°²È«±ê×¼ÏàÅäÌ×£¬Èçͼ9Ëùʾ£©¡£

(2) Kube-bench£¨ÔËÐÐ CIS Kubernetes »ù×¼²âÊÔ£¬À´¼ì²é Kubernetes ²¿ÊðµÄ°²È«³Ì¶È£©¡£

(3) OpenPolicyAgent£¨½«°²È«²ßÂÔºÍ×î¼Ñʵ¼ù´ÓÌØ¶¨µÄÔËÐÐʱƽ̨½âñ¡£

ͼ9. Docker-Bench-Security Óë¹Ù·½°×ƤÊéÅäÌ×

ËÄ¡¢×ܽá

¾­¹ý¶àÄê·¢Õ¹£¬Docker ÈÝÆ÷¼¼ÊõÖð½¥±»½ÓÊܲ¢Ó¦ÓÃÓÚ DevOps ºÍ΢·þÎñµÈÁìÓò£¬ÔÚδÀ´»¹ÓкܴóµÄDZÁ¦¡£±¾ÎÄ̽ÌÖÁËÈô¸ÉÈÝÆ÷ÉúÃüÖÜÆÚÄڵݲȫÎÊÌ⣬²»ÄÑ·¢ÏÖ£¬Òª×öºÃ Docker ÈÝÆ÷°²È«¹Ü¿Ø¹¤×÷£¬²»Ó¦ºöÊÓ¾µÏñÉî¶ÈɨÃè¡¢ÈÝÆ÷ϵͳÓëÈÝÆ÷ÍøÂçµÄÈëÇÖ¼ì²âÓë·À»¤ÒÔ¼°°²È«ºÏ¹æÎÊÌâµÈ»·½Ú¡£ÔÚÃæ¶ÔÉÏÊö»·½Úʱ£¬¿É¿¼ÂÇ½è¼ø¡¢¸ÄÔìÏÖÓеÄÍøÂ簲ȫ¼¼Êõ¡£

ÓÉÓÚ²»Í¬×éÖ¯»ú¹¹ÓÐ×Ų»Í¬µÄ Docker Ó¦Óü¶±ðºÍ¼¼ÊõÑ¡ÐÍ£¬Òò¶ø¾ßÌåµÄʵʩ·½·¨»áÓв»Í¬¡£²»Í¬×éÖ¯»ú¹¹Ó¦½áºÏ×ÔÉíÇé¿ö£¬·Ö½×¶Î¡¢·Ö²ã£¨ÈÝÆ÷ÒýÇæ²ã¡¢±àÅŵ÷¶È²ã£©Ñ¡ÔñÊʺϵĽâ¾ö·½°¸£¬ÒÔ¸üºÃµØ±£»¤ Docker ÈÝÆ÷»·¾³¡£

   
1865 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ