±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ×÷ÕßÉÛ¾¸,ÎÄÖÐÏȼòµ¥µÄ½éÉÜÁËÈÝÒ×£¬ÓÖ½éÉÜÁËDockerÊÇʲô£¬½ÓÏÂÀ´ÊǸºÔؾùºâµÄÀý×Ó¡£ |
|
ǰÑÔ
½üÄêÀ´£¬ÔƼÆËãµÄ¸ÅÄîϯ¾íÁËÕû¸ö IT Ȧ¡£Å׿ªºöÓÆ¸ÅÄîµÄÒòËØ£¬ÔƼÆËãµÄ·¢Õ¹ºÍÓ¦Óü«´óµØ¸Ä±äÁË IT
²úÒµµÄÑз¢¡¢ÔËÓªºÍ¹ÜÀí¡£×÷ÎªÔÆ¼ÆËã×îÖØÒªµÄºËÐļ¼ÊõÖ®Ò»£¬ÐéÄ⻯¼¼ÊõµÄ·¢Õ¹´Ù³ÉÁËÕâÒ»¾Þ´óµÄ±ä¸ï£¬¶øÈÝÆ÷¼¼Êõ×÷Ϊ×î¾ßÓдú±íÐÔµÄÐéÄ⻯¼¼Êõ¸ïУ¬Ä¿Ç°ÒѾµÃµ½ÁËÒµ½çµÄ¹ã·º¹Ø×¢£¬ÆäÖÐÒÔ
Docker ×î¾ßÓдú±íÐÔ£¬×îΪ»ð±¬£¬¶ì³§Ä¿Ç°ºÜ¶àÓ¦ÓÃÒ²»ò¶à»òÉÙʹÓõ½ÁË docker¡£±¾ÎÄÄ¿µØÖ÷ÒªÊǸø´ó¼Ò¼òµ¥°²ÀûÒ»ÏÂĿǰ×î»ðµÄÈÝÆ÷²úÆ·
Docker ¼°ÆäËùÉæ¼°µÄÏà¹Ø¼¼Êõ£¬²¢Í¨¹ýÒ»¸öʵ¼ÊÀý×ÓÑÝʾһÏÂÈÝÆ÷¼¼ÊõµÄµäÐÍÓ¦Óó¡¾°¡£
¼òµ¥³¶³¶ÈÝÆ÷
ÐéÄ⻯¼¼ÊõµÄºËÐÄÔÚÓÚ×ÊÔ´»®·Ö¡¢¸ôÀëºÍ¹ÜÀí¡£Î§ÈÆ×ÅÕâ¸öºËÐÄ£¬ÔÚ²»Í¬²ã´ÎÉÏ·¢Õ¹³öÁ˶àÖÖÐéÄ⻯¼¼Êõ£¬ÈçÒÔÐéÄâ»úΪ´ú±íµÄÓ²¼þ¼¶ÐéÄ⻯£¨Hardware
Virtualization£©¼¼ÊõÒÔ¼°ÒÔÈÝÆ÷£¨Container£©Îª´ú±íµÄ²Ù×÷ϵͳ¼¶ÐéÄ⻯£¨Operating
System Level Virtualization£©¼¼Êõ¡£ÈÝÆ÷²¢²»ÊÇÒ»¸öȫеļ¼ÊõÌåϵ£¬ÏÂͼÊÇ´Ó
Wikipedia ժ¼µÄÈÝÆ÷ʵÏÖÈ«¼Ò¸££¬¿ÉÒÔ¿´µ½´ËÏî¼¼Êõ¿ÉÒÔ×·Ëݵ½ 1982 Ä꣬²¢ÇÒ¸²¸ÇÁ˶àÖÖ²Ù×÷ϵͳ¡£½üÄêÀ´£¬Ëæ×Å
Docker µÄ¿ìËÙáÈÆð£¬ÈÝÆ÷¼¼ÊõÔÙ´ÎÎüÒýÁË IT Òµ½çµÄ¹ã·º¹Ø×¢¡£

ΪʲôҪÓÃ"ÔÙ"£¿Õâ¾ÍÐèÒªÁÄÁÄÈÝÆ÷µÄÌØµãÒÔ¼°¸úÐéÄâ»úµÄÇø±ðºÍÁªÏµ¡£Ëæ×ż¼ÊõµÄ·¢Õ¹£¬IT
»ù´¡ÉèÊ©µÄÄÜÁ¦Ô½À´Ô½´ó£¬ÔÀ´ÐèÒª¶à¸öÓ²¼þµ¥ÔªÍê³ÉµÄÈÎÎñÏÖÔÚ½öÓÃÒ»¸öÓ²¼þµ¥ÔªµÄÒ»²¿·Ö¾ÍÄܹ»Íê³ÉÁË£¬ÄÇôΪÁË×ÊÔ´µÄºÏÀí·ÖÅ䣬½«×ÊÔ´¼¯ºÏ»®·ÖΪ¸üϸÁ£¶ÈµÄ×ÊÔ´µ¥Ôª£¬¾ÍÊÇÐéÄ⻯¼¼ÊõµÄÒâÒå¡£ÏÂͼÊÇÐéÄâ»úºÍÈÝÆ÷¼¼ÊõµÄ¶Ô±ÈʾÒâͼ¡£×óͼÖУ¬ÔÚËÞÖ÷»ú²Ù×÷ϵͳ£¨Host
OS£©Ö®ÉÏ£¬Í¨¹ý Hypervisor ½«×ÊÔ´»®·ÖΪ×ÊÔ´µ¥Ôª£¬Ã¿¸öµ¥ÔªÓÐ×Ô¼ºµÄ²Ù×÷ϵͳ£¨Guest
OS£©¡¢¹¤¾ßºÍ¿â£¬ÔÚÆäÉÏÔËÐи÷×﵀ app »¥²»¸ÉÈÅ£¬Ã¿¸ö×ÊÔ´µ¥Ôª¾ÍÊÇÒ»¸öÐéÄâ»ú£»ÓÒͼÖÐÔÚËÞÖ÷»ú²Ù×÷ϵͳ֮ÉÏ£¬Í¨¹ýÈÝÆ÷¹ÜÀíÆ÷£¨Container
Manager£©½«Ò»²¿·Ö×ÊÔ´¸ôÀë³öÀ´ÐγÉ×ÊÔ´µ¥Ôª£¬Ã¿¸ö×ÊÔ´µ¥ÔªÃ»ÓÐ×Ô¼ºµÄ²Ù×÷ϵͳ£¬ÓÐ×Ô¼ºµÄ¹¤¾ßºÍ¿â£¬ÔÚÕâÖ®ÉÏÔËÐÐ×Ô¼ºµÄ
app£¬ÕâÀïÿ¸ö×ÊÔ´µ¥Ôª¾ÍÊÇÒ»¸öÈÝÆ÷¡£

ͨ¹ýÉÏͼµÄ·ÖÎö¿ÉÒÔ¿´µ½£¬ÐéÄâ»úºÍÈÝÆ÷¼¼ÊõÔÚ¸ôÀëµÄ²ã´ÎÉϲ¢²»Ïàͬ£¬ÐéÄâ»úÓдӲÙ×÷ϵͳ¿ªÊ¼µÄÍêÕûµÄ»ù´¡ÉèÊ©£¬¶øÈÝÆ÷½öÔÚ¹¤¾ß¡¢¿âÕâ¸ö²ã´Î¼°ÒÔÉÏÐγÉÁË×Ô¼ºµÄÌØÓÐÇøÓò¡£Õâ¸öÌØµã¾ö¶¨ÁËÁ½ÕßµÄÊôÐÔ£¬ÈÝÆ÷ÊDZÈÐéÄâ»ú¸üÇáÁ¿µÄ×ÊÔ´µ¥Ôª¡£ÇáÁ¿£¬Òâζ×Å¿ìËÙÆôÍ£¡¢Ç¨ÒÆ¡¢·Ö·¢µÈÓÅÁ¼µÄÐÔÖÊ£¬²¢ÇÒÔÚ×ÊÔ´×ÜÁ¿Ò»ÑùµÄÇé¿öÏ£¬Äܹ»Ö§³ÖµÄÈÝÆ÷µ¥ÔªÊýÁ¿½«Êý±¶ÓÚÐéÄâ»ú¡£
ÏÂÃæ³¶µãÌâÍâ»°£¬ÈËÀàÉÆÓÚͨ¹ýÂ߼˼άµÄÊֶδӲ»Í¬µÄÊÂÎïÖгéÈ¡³ö±¾Öʲ¢¼ÓÒÔÍÆ¹ã¡£¾Ù¸öÀý×Ó£¬ÔËÊäÒµÊÇÒ»¸öºÜ¹ÅÀϵÄÐÐÒµ£¬ÔËÊäÒµµÄ·¢Õ¹Íƶ¯ÁËÈËÀàµÄ½ø²½£¬µ±ÈËÀàµÄÔËÊäÐèÇó±äµÃÔ½À´Ô½¸´ÔÓ£¬Óöµ½ÁËÏÂÃæµÄÎÊÌ⣬ÈçºÎÓñê×¼µÄ½»Í¨¹¤¾ßÔËÊä¸÷ÖÖ¸÷ÑùÐèÇó²»Í¬µÄÎïÆ·£¿

ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ÈËÃÇ·¢Ã÷Á˼¯×°Ï䣬Ëü½«ÔËÊ䯷ËùÐèÂú×ãµÄÌõ¼þ£¨¹âÕÕ¡¢À䲨¡¢ÃÜ·âµÈ£©ÏÞÖÆÔÚ¼¯×°ÏäÖ®ÄÚ£¬¶ÔÍâ¶øÑÔËüÖ»ÊÇÒ»¸öÌṩ±ê×¼ÔËÊä½Ó¿ÚµÄµ¥Ôª£¬ÕâÑùµÄµ¥Ôª¿ÉÒÔͨ¹ý¸÷ÖÖʹÓñê×¼ÔËÊä½Ó¿ÚµÄ½»Í¨¹¤¾ßÔËÊä¡£
¿´µ½ÕâÀï´ó¼ÒÓ¦¸Ã²»ÄÑÀí½â£¬Í¨¹ýÀà±È£¬IT ¹¥³ÇʨÃÇÔٴη¢ÏÖÐéÄ⻯¼¼ÊõËùÔ̺¬µÄ¾Þ´óDZÁ¦£¬ÐéÄ⻯¿ÉÒԳ䵱¼¯×°ÏäµÄ½ÇÉ«£¬½«
app ÔËÐÐËùÐèÂú×ãµÄÌõ¼þ£¨ÒÀÀµ¡¢¹¤¾ß¡¢¿âµÈ£©ÏÞÖÆÔÚ×ÊÔ´µ¥ÔªÖ®ÄÚ£¬¶ÔÍâÌṩ±ê×¼µÄ½Ó¿Ú£¬²¢ÇÒÄܹ»×°ÔØÓÚ¸÷Àà·þÎñÆ÷»ù´¡ÉèÊ©¡£²¢ÇÒÔڱȽÏÁ˸÷ÀàÐéÄ⻯¼¼Êõºó£¬ÈÝÆ÷ÇáÁ¿µÄÌØµãÈÃËü¸üÊÊÒËÓë³ÉΪ¼¯×°Ïä¡£ÔÚÖØÐÂÉóÊÓÁËÈÝÆ÷¼¼ÊõµÄ¾Þ´ó¼ÛÖµÖ®ºó£¬¸÷·½ÊÆÁ¦·×·×¿ªÊ¼Õ¼É½Í·Á¢ÃÅ»§£¬ÔÚÕâ¸ö¹ý³ÌÖÐÖî¶àеÄÈÝÆ÷¼¼ÊõÏà¼Ì·¢²¼£¬ÆäÖоÍÒÔÈ¡ÃûΪÂëÍ·¹¤È˵Ä
Docker ×î¾ß´ú±íÐÔ¡£

WoW£¬Docker À´ÁË£¡ËüÊÇË£¿ÄܸÉÂ
Docker ÊÇË£¿Docker ÊÇÓÉ dotCloud ¹«Ë¾ÔÚ 2013 Ä꿪ԴµÄÒ»¿î¿ªÔ´ÈÝÆ÷ÒýÇæ£¬ºóÀ´
Docker »ðÁ˸ɴ๫˾¾Í¸ÄÃûΪ Docker ÁË¡¡
Docker ÊÇÒ»ÖÖ»ùÓÚ Linux Äں˸ôÀë¼¼ÊõµÄÈÝÆ÷ʵÏÖ£¬Óà Go ÓïÑÔ±àд£¬Æä¹¦ÄÜÌØÐÔ¹éÄÉΪ£º
×ÊÔ´¸ôÀ룬°üÀ¨Îļþϵͳ¡¢½ø³Ì¡¢ÍøÂçµÈ£»
×ÊÔ´¿ØÖÆ£»
Îļþϵͳ£¬¾ßÓÐдʱ¸´ÖÆ¡¢ÈÕÖ¾¼Ç¼¡¢°æ±¾¹ÜÀíµÈ£»
Ìṩ¿ØÖÆ API£»
Ìṩ¾µÏñ·Ö·¢¡¢ÖØÓõÄÉú̬ϵͳ¡£
Docker µÄʵÏÖÒÀÀµÁËÒÔϼ¼Êõ£º
Namespace£¬ÀûÓà Linux ÄÚºËÌṩµÄ namespace »úÖÆ£¬ÈÝÆ÷Äܹ»½¨Á¢×ÊÔ´¸ôÀëµ¥Ôª£¬¸ôÀëÄÚÈݰüÀ¨½ø³Ì(PID)¡¢ÍøÂç(Net)¡¢½ø³Ì½»»¥(IPC)¡¢ÎļþĿ¼£¨Mnt£©¡¢hostname
¼°Óû§ºÍÓû§×éµÈ¡£
CGroup£¬ÀûÓà CGroup »úÖÆÀ´´¦Àí²»Í¬ÈÝÆ÷Ö®¼ä¾ºÕùËÞÖ÷»úϵͳ×ÊÔ´µÄÎÊÌ⣬ʵÏÖ¶Ô×ÊÔ´µÄÅä¶îºÍ¶ÈÁ¿¡£
LXC£¬ÔÚ Docker ·¢Õ¹µÄ¹ý³ÌÖУ¬ÔçÆÚʹÓà LXC À´¹²ÏíÄںˣ¬ÊµÏÖÈÝÆ÷µÄ¿ìËÙÆôÍ£ÒÔ¼°¼õÉÙÄÚ´æµÄÏûºÄ£¬ÔÚºóÀ´µÄ·¢Õ¹ÖУ¬docker
Ö÷¼üÓà libcontainer Ìæ´ú²¢À©Õ¹ÁË LXC µÄ¹¦ÄÜ¡£
AUFS£¬Docker ĬÈÏʹÓà AUFS ¹¹½¨ÈÝÆ÷µÄÎļþϵͳ£¬Ìṩдʱ¸´ÖÆ£¨Copy On Write£©µÄÌØÐÔ£¬ÕâÊÇ
Docker ¾µÏñ±£´æ¡¢Ð޸ļ°·Ö·¢µÄ»ù´¡¡£
»ùÓÚ docker ÌṩµÄ»ù´¡¹¦ÄÜºÍÆä¿ªÔ´µÄÊôÐÔ£¬Òµ½ç¾ÞÍ·ºÍ³õ´´¹«Ë¾·×·×ÒÔ´ËΪ»ù´¡¿ª·¢³ö¸÷ÖÖ¿ò¼ÜºÍ¹¤¾ß£¬ÔÚ·Ö²¼Ê½ÌØÐÔ¡¢ÍøÂçÌØÐÔ¡¢´æ´¢ÌØÐÔÒÔ¼°¹ÜÀíÌØÐԵȷ½Ãæ¶Ô
Docker ½øÐÐÀ©Õ¹ºÍ²¹³ä£¬¶ì³§ IEG ÄÚ²¿Ê¹ÓÃµÄ Docker ¹ÜÀíÆ½Ì¨ÒÔ¼° TEG µÄ Gaia
ϵͳ¶¼ÊǺܺõÄÀý×Ó¡£¹ØÓÚ docker ¼¼ÊõÔÀíµÄÎÄÕÂÄܹ»ºÜÈÝÒ×ËÑË÷µ½£¬±¾ÎľͲ»ÔÚÕâÀïÕ¹¿ªÁË£¬ÏÂÃæ½«¸ù¾ÝÈÝÆ÷µÄÌØµã½éÉܼ¸¸öµäÐ͵ÄÓ¦Óó¡¾°£¬²¢¸ø´ó¼Ò½éÉÜÈçºÎ´ÓÁ㿪ʼдһ¸ö¼òµ¥µÄ»ùÓÚ
Docker µÄ¸ºÔؾùºâÆ÷¡£
¸ù¾ÝǰÊö£¬Docker ×÷ΪһÖÖÈÝÆ÷£¬Äܹ»¿ìËÙÆôÍ£¡¢Õ¼ÓýÏÉÙµÄϵͳ×ÊÔ´£¬Í¬Ê±¸ù¾ÝÆä×ÔÉíʵÏÖ¼¼ÊõÌØµã£¬Ó־߱¸Ð´Ê±¸´ÖÆ¡¢±£´æ·Ö·¢µÈÌØµã¡£ËùÒÔ²»ÄÑÏëµ½ÒÔϼ¸ÖÖÓ¦Óó¡¾°ºÜÊʺÏʹÓÃ
Docker ʵÏÖ£º
ƽ̨¼´·þÎñ£¨PAAS£©£¬É³ÏäµÄÍêÃÀÌæ´úÆ·£»
×Ô¶¯²âÊÔ¼°³ÖÐø¼¯³É£¬²âÊÔÃÃֽЦ¿ªÁË»¨£»
¹¹½¨±ê×¼»¯ÎÞ״̬ÔËÐл·¾³¼°¿ìËÙ²¿Êð£¬ÄãÖªµÀ֨װ»·¾³Óжàô·³Ã´£»
¸ß¿ÉÓã¨HA£©ºÍ¸ºÔؾùºâ£¨LB£©ÏµÍ³£¬ÈùÊÕϺ͹¥»÷ÏÝÈëÈËÃñÕ½ÕùµÄÍôÑó´óº££¬Ò»»áÂýÂý½²¡£
¿äÁËÄÇô¶à£¬ÄѵÀ Docker ¾ÍûÓÐȱµãô£¿²»Êǵģ¬Ä¿Ç° Docker ÕýÔÚ¿ìËÙ·¢Õ¹¹ý³ÌÖУ¬ÔÚÈËÃÇʹÓõĹý³ÌÖÐÖð½¥±©Â¶ÁË
Docker µÄºÜ¶àÎÊÌ⣬ÆäÖв»·¦Ò»Ð©ºÜÑÏÖØµÄÎÊÌ⣺
¸ôÀëÐÔÎÊÌ⣬docker ÒÀÀµ Linux ÄÚºËÌṩµÄ¸ôÀë»úÖÆ£¬Ïà±ÈÐéÄâ»ú¶øÑÔ£¬¼¶±ðºÍ³Ì¶È¶¼Óв»ÉÙϽµ£¬ÕâÒ²ÊÇ×·ÇóÇáÁ¿´øÀ´µÄ¸±×÷ÓÃ
°²È«ÐÔÎÊÌ⣬¸ú¸ôÀëÐÔ·Ö²»¿ª£¬Ä¿Ç° Docker ´æÔÚÖîÈç root ȨÏÞÌáÉý£¬¹²ÏíËÞÖ÷ÐÅÏ¢µÈ°²È«Â©¶´£¬Õâ×è°ÁËÆäÍÆ¹ãµ½ÆóÒµ¼¶Ó¦ÓõĽŲ½
ÐÔÄÜÎÊÌ⣬ÓÉÓÚÒýÈëÁË AUFS£¬ÌṩÁËºÜºÃµÄ COW ÌØÐÔ£¬µ«ÊÇÕâÒ²»á¶Ô I/O ÐÔÄÜÔì³ÉÒ»¶¨Ó°Ï죬Òò´Ë²»½¨ÒéÓÃ
docker ¸ºµ£ÓÐ״̬µÄÈÎÎñ
Docker ÌṩÓÃÓÚ¾µÏñ·Ö·¢ºÍÖØÓõÄÉú̬ϵͳ£¬È«Çò¿ª·¢Õß¶¼Äܹ»Í¨¹ýÕâ¸öƽ̨½øÐн»Á÷£¬µ«ËæÖ®¶øÀ´µÄ¾ÍÊÇÈçºÎ±£Ö¤¾µÏñµÄÖÊÁ¿¡¢¿É¿¿ÐԺͰ²È«ÐÔ£¬PS.±ðÈË×öµÄÄã¸ÒÓã¿
¾¡¹Ü´æÔÚÖî¶àÎÊÌ⣬µ«ÊÇÕâ²¢²»·Á° docker ǰ½øµÄ½Å²½¡£Òµ½çÒ²ÔÚÆÚÅÎ docker µÄ¿ìËٳɳ¤¡£
±ð¹â¿´£¬¶¯ÊÖ×ö°É
¸ÐлÄúÄܹ»¿´µ½ÕâÀ†ªà½áÊøÖ®ºó£¬ÎÒÃÇÀ´¶¯ÊÖ×öÒ»¸ö¼òµ¥µÄ»ùÓÚ Docker µÄ¸ºÔؾùºâÆ÷ʵÀý¡£
¸ºÔؾùºâ£¬¹ËÃû˼Òå¾ÍÊǶԸºÔؽøÐзÖÁ÷ʵÏÖ¾ùºâµÄÄ¿µÄ¡£ÔÚ web ÍøÕ¾ÒÔ¼° web service
·¢Õ¹µÄ¹ý³ÌÖУ¬¸ºÔغʹ¦ÀíÄÜÁ¦µÄì¶ÜʹµÃ¸ºÔؾùºâ³ÉΪ±ØÐ뿼ÂǵÄÎÊÌ⣬ÈçÏÂͼËùʾ£º

µ±ÇëÇó¸ºÔØÔÚµ¥½Úµã´¦ÀíÄÜÁ¦Ö®ÏÂʱ£¬Ã»ÓбØÒªÉèÖøºÔؾùºâÆ÷£¬ËùÓеÄÇëÇó¶¼ÓÉһ̨·þÎñÆ÷¸ã¶¨£»
µ±ÇëÇó´ïµ½Ò»¶¨ÊýÁ¿£¬³¬¹ýÁ˵¥Ì¨·þÎñÆ÷´¦ÀíÄÜÁ¦£¬ÄÇôÏÖÔÚ¾ÍÐèÒªÌí¼Ó¶ą̀·þÎñÆ÷£¬²¢ÇÒʹÓøºÔؾùºâÆ÷£¨Load
Balancer£©½øÐÐÁ÷Á¿·Ö·¢£¬±£Ö¤ÒµÎñÇëÇ󯽾ùµØ·ÖÉ¢µ½¸÷ web ·þÎñÆ÷£»
ÒµÎñµÄÁ÷Á¿ÌصãºÜ¶à±ä£¬Á÷Á¿¸ß·åºÎʱµ½À´ËÒ²²»ÖªµÀ£¬Èç¹ûʹÓöą̀ web ·þÎñÆ÷ÔÚºǫֵ́°à£¬ÕâÑùÄÑÃâ»áÔì³É×ÊÔ´µÄÀË·Ñ£¬²¢ÇÒÕâÑùÒ²ÓпÉÄÜÎÞ·¨Ó¦¶ÔÁ÷Á¿·åÖµ£¬Òò´ËÐèÒªÒ»¸ö×Ô¶¯µÄ¸ºÔؾùºâÆ÷£¬ËüÄܹ»ÊµÊ±¼ì²âµ±Ç°µ½À´µÄÒµÎñÁ÷Á¿£¬²¢ÇÒÄܹ»¿ØÖƺó¶Ë×ÊÔ´³Ø¿ìËÙÍê³É×ÊÔ´µÄÉêÇë¡¢ÊÍ·ÅÒÔ¼°Â·ÓÉÇл»£¬ÕâÑù¾Í¿ÉÒÔͨ¹ýʵʱµÄÁ÷Á¿¼ì²âÊý¾ÝÍê³É
web ·þÎñÆ÷µÄ¶¯Ì¬ÅäÖã¬ÔÚºó¶Ë×ÊÔ´³ØÄÜÁ¦×ã¹»µÄÇé¿öÏ£¬ÇáËÉÓ¦¶Ô¶à±äµÄÇëÇóÁ¿¡£
ΪÁËʵÏÖ 3 µÄÄ¿±ê£¬ÎÒÃǵÄϵͳÐèÒªÒÔϼ¸´ó¹¦ÄÜÄ£¿é£¬ÈçÏÂͼËùʾ£º

¸ºÔؾùºâÆ÷£º¸ºÔð·Ö·¢Á÷Á¿ÇëÇ󣬲¢ÇÒÔÚ½ÚµãÊýÄ¿±ä»¯Ê±Íê³É·ÓÉÇл»¡£ÔÚ±¾ÊµÀýÖУ¬ÎÒѡȡÁË¿ªÔ´µÄ HAProxy
×÷Ϊ¸ºÔؾùºâÆ÷µÄʵÏÖ£¬ËüÖ§³Ö¶àÖÖÁ÷Á¿·Ö·¢Ëã·¨£¬±¾Àý²ÉÓÃÁ˼òµ¥µÄÂÖѯ£¨RoundRobin£©Ä£Ê½¡£
¸ºÔØ¼à¿ØÆ÷£º¸ºÔð¼à¿Øµ±Ç°¸ºÔØÇëÇóÁ¿£¬²¢ÇÒ¸ù¾ÝÉ趨ãÐÖµ¾ö¶¨ÏÂÒ»²½¶¯×÷¡£±¾ÀýÖÐÓÉ Python ʵÏÖ£¬ÅäºÏ
Web ·þÎñÆ÷ʵʱÉϱ¨µÄµ±Ç°Á÷Á¿×´¿ö¾ö¶¨ÊÇ·ñ¶¯Ì¬ÉêÇë×ÊÔ´£¬ÊµÏÖ Scale-Out£¬¾ßÌå´úÂëÇëÒÆ²½Î¢Â룺
×ÊÔ´¿ØÖÆÆ÷£º·â×° docker µÄ²Ù×÷ API£¬¸ù¾Ý¼à¿ØÆ÷µÄÖ¸ÁîÍê³ÉÌí¼Ó»òɾ³ý·þÎñ½ÚµãµÄ¾ßÌå²Ù×÷£¬±¾ÀýÖÐÓÉ
Python ʵÏÖ£¬¾ßÌå´úÂëÇëÒÆ²½Î¢Â룺
Web ·þÎñÆ÷£º·¢»Ó docker µÄÌØµã£¬½«ÒµÎñËùÐèµÄ WebServer ¹¦ÄÜ×é¼þ£¬¸ºÔØ»ñÈ¡Éϱ¨Ä£¿éµÈ´ò°ü³ÉΪ¾µÏñ²¢×¢²áÓÚ¾µÏñ¿âÖУ¬¸ù¾Ý¿ØÖÆÆ÷µÄÖ¸ÁîÆôÍ£¡£
Docker ·þÎñ¾µÏñµÄ×¼±¸°´ÕÕÒÔϲ½Öè½øÐУº

°²×° docker ¼°Ïà¹Ø·þÎñ×é¼þ£»
Docker pull ÀÈ¡¿Õ°×µÄʵÀý£»
°²×°ËùÐèµÄ»ù´¡×é¼þ£¬²¿ÊðÒµÎñ´úÂ룻
½«ÊµÀý±£´æÎª¾µÏñ£¨Àà±È OOM Öд´½¨ÁËÒ»¸öÀࣩ£»
Docker push ¿ÉÒÔ½«´Ë¾µÏñÉÏ´«µ½¹«¹²¡¢Ë½ÓоµÏñ¿â£¬Íê³É·Ö·¢»òÖØÓã¨Àà±È½« 4 Öд´½¨µÄÀà·¢²¼£¬¹©ÆäËûÈ˼̳лòÊÇʵÀý»¯¶ÔÏó²¢Ê¹Óã©¡£
±¾ÀýËùʹÓõľµÏñÒѾÉÏ´«ÖÁ docker ¹Ù·½¾µÏñ¿â£¬¿ÉÒÔͨ¹ýÒÔÏ docker ÃüÁîÏÂÔØÊ¹Óãº
docker pull kevinjs/ubuntu:py27tor2 |
ÔËÐÐЧ¹û
ͨ¹ýÄ£Äâ http ÇëÇó·ÃÎʸºÔؾùºâÆ÷·þÎñ IP£¬¿ØÖÆ·ÃÎÊÁ¿¹Û²ìºó¶Ë·þÎñ½ÚµãµÄÊýÄ¿ºÍÏìÓ¦Çé¿ö£¬×îºó½«Êý¾Ý¿ÉÊÓ»¯Êä³öÈçÏÂͼËùʾ£¬¿ÉÒÔ¿´µ½£¬Ëæ×Å·ÃÎÊÁ¿µÄÉÏÉý£¬¼à¿ØÆ÷׼ȷµØ·´À¡ÁËÁ÷Á¿µÄ±ä»¯£¬²¢ÔÚ¶Ìʱ¼äÄÚ֪ͨºó¶Ë×ÊÔ´³ØÌí¼Ó·þÎñ½Úµã£¬´ÓÒ»¸ö·þ×îÖÕÔö¼Óµ½
18 ¸ö·þÎñ½Úµã£¬ÔÚÿһʱ¿Ì¶¼¾¡Á¿±£Ö¤Ã¿¸ö·þÎñ½Úµã¶¼·Ö²¼µ½Æ½¾ùµÄ¸ºÔØÑ¹Á¦£¬²¢ÇÒÔÚ¸ºÔØÏ½µºó¼°Ê±¼õÉÙ·þÎñ½ÚµãÒÔ½ÚÊ¡×ÊÔ´¡£ÐèÒª½âÊÍһϵÄÊÇ£¬´ÓͼÖпÉÒÔ¿´³öÿ¸ôÒ»Ò»¶¨Ê±¼ä·ÃÎÊÁ¿ÓÐÍ»½µµÄÇé¿ö£¬ÕâÊÇÓÉÓÚÐèÒªÔÚ×Ô¶¯Ìí¼Ó·þÎñ½ÚµãºóÖØÆô¸ºÔؾùºâÆ÷
HAProxy Ôì³ÉµÄ£¬ÕâÀïÊÇÒ»¸ö¼òµ¥µÄʵÏÖ£¬Èç¹û»»ÓÃÄܹ»¶¯Ì¬¼ÓÔØÅäÖõĸºÔؾùºâÆ÷·½°¸£¬¾ÍÄÜ×öµ½Á÷Á¿µÄƽ»¬¹ý¶É¡£

ÏÂͼÊÇ×ܵķÃÎÊÁ¿ÓëÆ½¾ù·ÃÎÊÁ¿Ö®¼äµÄ¶Ô±È£¬ÔÚ×ÜÇëÇóÁ¿±©ÕǵÄÇé¿öÏ£¬Í¨¹ý¿ìËÙ·´À¡µ÷½Úºó¶Ë web ·þÎñʵÀýµÄÊýÁ¿£¬Æ½¾ù·ÃÎÊÁ¿¿ìËÙÊÕÁ²£¬ÊµÏÖ¸ºÔؾùºâ¡£

|