Docker·ç±©Ï¯¾íÈ«Çò£¬ÒÔÇáÁ¿¼¶ÈÝÆ÷ΪºËÐĵÄÉú̬ϵͳ·¢Õ¹Ñ¸ÃÍ¡£×÷Õß½áºÏ×Ô¼ºÔÚ¿ªÔ´ÁìÓòµÄһЩ¾Ñ飬ÊáÀíÁËDockerµÄ¼¼Êõ·¢Õ¹Ê·£¬·Ö²ãÆÊÎöÁËÏÖÓеÄÉú̬ϵͳ£¬²¢Õ¹ÍûÁËδÀ´¿ÉÄܵÄ×ßÏòºÍÍ»ÆÆ¡£

ÔٴξÀÕý¸ÅÄDocker²»ÊÇÇáÁ¿¼¶ÈÝÆ÷¡£ËüÓɹÜÀíÇáÁ¿¼¶ÈÝÆ÷µÄÒýÇæ¡¢¿Í»§¶ËºÍAUFSÎļþϵͳÈý²¿·Ö×é³É¡£ÇáÁ¿¼¶ÈÝÆ÷£¨Lightweight Container£©ÔÚUNIX/LinuxÁìÓò¾ÀúÁËÊ®¶àÄêµÄ·¢Õ¹£¬²¢ÔÚ×î½ü5ÄêÍ»·ÉÃͽø¡£
ÇáÁ¿¼¶ÈÝÆ÷¼¼Êõ·¢Õ¹Àú³Ì
ÔÚ·ÖÎöDockerµÄÉú̬ϵͳ֮ǰ£¬ÎÒÃÇÊ×ÏȻعËÇáÁ¿¼¶ÈÝÆ÷¼¼ÊõµÄ·¢Õ¹Â·Ïßͼ¡£
- 2000Ä꣬BSD Jail£ºJailÒÔ¶àÖÖ·½Ê½¸Ä½øºÍÔöÇ¿ÁËBSDÀà²Ù×÷ϵͳÖÐÓÃÓÚ½ø³Ì¸ôÀëµÄchroot»·¾³¡£Jail²»½ö¶ÔÎļþϵͳ·ÃÎÊʵÏÖ¸ôÀ룬»¹°ÑÓû§¡¢BSDµÄÍøÂç×Óϵͳ¼°Ò»Ð©ÆäËûϵͳ×ÊÔ´ÔÚÄÚºËÖнøÐиôÀë¡£
- 2005Ä꣬Solaris Containers£ºSolaris ContainersµÄʵÏÖ°üÀ¨Á½²¿·Ö£ºSolaris ZonesºÍSystem Resource Controls¡£ZonesʵÏÖÁËÃüÃû¿Õ¼ä¸ôÀëºÍ°²È«·ÃÎÊ¿ØÖÆ¡£ÔÚnon-global zoneÖеĽø³Ì¼È²»ÄÜ¿´¼û¸ÃzoneÖ®ÍâµÄ½ø³Ì£¬Ò²²»ÄÜÓë֮ͨÐÅ¡£System Resource ControlsʵÏÖÁË×ÊÔ´¹ÜÀí¹¦ÄÜ¡£
- 2005Ä꣬OpenVZ£ºOpenVZÊÇGPLv2ÐÒéϵĿªÔ´Èí¼þ£¬ÊÇ»ùÓÚLinuxƽ̨µÄ²Ù×÷ϵͳ¼¶·þÎñÆ÷×ÊÔ´¸ôÀë½â¾ö·½°¸¡£OpenVZ²ÉÓÃSWsoftµÄVirutozzoÈí¼þ²úÆ·µÄÄںˣ¬VirutozzoÊÇSWsoft¹«Ë¾ÌṩµÄÉÌÒµ½â¾ö·½°¸¡£
ÒÔÉÏÕâЩ¶¼ÊÇÈÝÆ÷¼¼ÊõµÄÏÈÇý£¬ContainerÕæÕý¿ªÊ¼ÆÕ¼°£¬ÓÉÒÔϼ¸¸ö±êÖ¾ÐÔʼþÍÆ¶¯¡£
- 2007Ä꣬´Ó2.6.4°æ±¾¿ªÊ¼£¬cgroupsÕýʽ½øÈëLinuxÄںˡ£
- 2008Ä꣬LXC 0.10³öÏÖ£¬¼ò»¯ÁËÈÝÆ÷µÄ´´½¨ºÍ¹ÜÀí¡£
- 2011Ä꣬Linux¿ª·¢Õß¾ÍÈÝÆ÷¼¼ÊõµÄͳһ¹æ·¶´ï³É¹²Ê¶¡£
- 2012Ä꣬Cloud FoundryÑ¡ÔñʹÓÃWARDEN ContainerÀ´³ÐÔØPaaSÓ¦Óá£
- 2013Ä꣬Google·¢²¼¿ªÔ´ÈÝÆ÷¹ÜÀí¹¤¾ßlmctfy £¨Let Me Contain That For You£©¡£
2013ÄêÊÇÈÝÆ÷ºÍÖܱ߼¼Êõ¸ß¸èÃͽøµÄÒ»Ä꣬ÕâÆäÖÐÒÔDockerµÄÁ÷ÐÐΪ´ú±í£¬ÒÔÏÂÁ½¼Ò¹«Ë¾ºÍËûÃǵIJúÆ·¾ßÓбêÖ¾ÒâÒå¡£
- 2013Ä꣬Docker version 0.10£ºDockerÊÇPaaSÌṩÉÌdotCloud£¨×î½üÒѾÕýʽ¸ÄÃûΪDocker Inc.£©¿ªÔ´µÄÒ»¸ö»ùÓÚLXCµÄ¸ß¼¶ÈÝÆ÷ÒýÇæ£¬Ô´´úÂëÍйÜÔÚGitHubÉÏ£¬»ùÓÚGoÓïÑÔ²¢×ñ´ÓApache 2.0ÐÒ鿪Դ¡£DockerµÄ³öÏÖ¼«´ó¼ò»¯ÁËÈÝÆ÷µÄ´´½¨ºÍ¹ÜÀí£¬·Ö²ãʽµÄAUFSʵÏÖÁËDocker¾µÏñ¡£
- 2013Ä꣬CoreOS£ºÕâ¼ÒÔÚ¹è¹Èij¸ö³µ¿âÀï³ÉÁ¢µÄ´´Òµ¹«Ë¾·¢²¼ÁËרÃÅΪ´ó¹æÄ£·þÎñÆ÷²¿Êð¶¨ÖƵÄLinux¾«¼òϵͳ£¬Ä¿µÄÊÇΪÔËÐÐÒÔÇáÁ¿¼¶ÈÝÆ÷ÎªÔØÌåµÄÓ¦ÓÃÌṩһ¸ö¸ß¶ÈÓÅ»¯µÄµ×²ãϵͳ¡£
2014Ä꣬´óÁ¿Î§ÈÆDockerºÍCoreOSµÄ´´Òµ¹«Ë¾¡¢Ð½ü¿ªÔ´µÄÈí¼þÏîÄ¿¡¢´óÐÍÆóÒµºÍ»¥ÁªÍø¹«Ë¾µÄ¼ÓÈ룬ʹÇáÁ¿¼¶ÈÝÆ÷¼¼ÊõµÄÀ˳±¸üÉÏÒ»²ãÂ¥¡£
ÕýÈ綨ÒåËùÑÔ£¬DockerÊÇ“Container Engine”£¬ËüÊÇÒ»¸ö°Ñcgroup¡¢namespaceµÈÈÝÆ÷µ×²ã¼¼Êõ³éÏóµÄÒ»¸öÒýÇæ£¬ÎªÓû§ÌṩÁË´´½¨ºÍ¹ÜÀíÈÝÆ÷µÄ±ã½Ý½çÃæ£¨°üÀ¨ÃüÁîÐкÍAPI£©¡£
¸ÅÄîÃ÷ÎúÁË£¬ÎÒÃÇÏÈ´Ó¼¼ÊõÕ»µÄά¶ÈÀ´¿´DockerºÍËüµÄÉú̬ϵͳ£¬°Ñ´ÓLinuxµ½Docker×öËĸö²ãÃæµÄ·Ö²ã¡£
- Linux²Ù×÷ϵͳ¡£ÍêÕûµÄLinuxÄںˣ¬ÂÄÐвÙ×÷µÄʹÃü£º¹ÜÀíÓ²¼þ£¬µ÷¶ÈÈÎÎñ£¬ÌṩÓû§½çÃæºÍ·þÎñµÈ¡£
- ÈÝÆ÷µÄÄÚºËʵÏÖ¡£ÕâÖ÷Òª°üÀ¨LinuxÄÚºËÖеÄcgroup¡¢namespaceµÈ£¬ËüÃÇΪÈÝÆ÷£¨Óû§½ø³Ì£©µÄ×ÊÔ´¸ôÀëÐÔÌṩÁËÄں˲ãÃæµÄ±£ÕÏ¡£
- ÇáÁ¿¼¶ÈÝÆ÷µÄ»ù´¡¹¤¾ß¡£Í¨¹ýLXCÕâÑùµÄ¹¤¾ß¿ÉÒÔÍê³ÉÈÝÆ÷´´½¨¡¢Æô¶¯µÈ»ù±¾²Ù×÷£¬µ«Ê¹ÓÃLXCÐèÒªÊìÖªÈÝÆ÷ÄÚºËʵÏÖÔÀí¡£Õâ¶ÔÓÚÆÕͨÓû§À´ËµÓÐÒ»¶¨ÄѶȣ¬²¢ÇÒLXCÔÚ²»Í¬Linux·¢Ðа治һÖ¡£
- ÈÝÆ÷¹ÜÀíÒýÇæ¡£DockerÊÇÕâÒ»²ãµÄÖ÷½Ç¡£DockerÓÉDocker engineºÍDocker client×é³É¡£Docker engine½«ÉñÃØµÄcgroup¡¢¸´ÔÓµÄLXCͳͳÒþ²ØÆðÀ´£¬Ê¹Óüòµ¥µÄÃüÁî¼´¿ÉÍê³ÉÈÝÆ÷µÄÔËÐк͹ÜÀí¡£ËüµÄÁíÒ»¸ö¶ÀÌØÖ®´¦ÔÚÓÚAUFSµÄÔËÓã¬Copy on writeģʽµÄ·Ö²ãÎļþϵͳʹÈÝÆ÷µÄ¾µÏñ¿ÉÒÔÏñ´î»ýľһÑùÁé»î´´½¨ºÍÐ޸쬲¢ÔÚÍøÂçÉÏʵÏÖÔöÁ¿·Ö·¢¡£Docker client£¬ÌرðÊÇËüµÄAPI£¬ÎªÔÚDockerÖ®ÉϵÄÉú̬ϵͳ·¢Õ¹ÌṩÁË¿ÉÄÜÐÔ¡£
DockerµÄ³öÏֺͱê×¼»¯£¬ÎªÒÔÇáÁ¿¼¶ÈÝÆ÷ΪºËÐĵÄÉú̬ϵͳÌṩÁ˱¬·¢Ê½Ôö³¤µÄ»ú»á¡£ÎÒÃÇ´ÓÒÔϼ¸¸ö½Ç¶ÈÀ´¿´DockerµÄÉú̬ϵͳ¡£
DockerºÍÈÝÆ÷ËÞÖ÷
ǰÎÄÌáµ½µÄDocker Inc.ºÍCoreOSÒѾ׬×ãÑÛÇò£¬Í¶×ÊÕß½Óõà¶øÖÁ£¬´ó¹æÄ£ÈÚ×Ê´ËÆð±Ë·ü¡£ÆóÒµ¼¶³§ÉÌÈçºìñ¡¢UbuntuµÈ²»¸Ê¼Åᣬ·×·×ÁÁÃ÷ÆìÖÄ£¬Ñ¡ÔñÕ¾¶Ó¡£
6ÔÂÔھɽðɽ¾ÙÐеÄDockerCon 2014չʾÁËDocker¶ÔδÀ´µÄÐÛÐÄ׳־¡£ÔÚDocker engineÖð½¥Îȶ¨²¢±ê×¼»¯µÄ±³¾°Ï£¬DockerµÄδÀ´Ä¿±êÊÇΪ»¥ÁªÍø»ù´¡¼Ü¹¹Öƶ¨Ðµıê×¼¡£×î½ü¿ªÔ´µÄlibcontainer¡¢libchanºÍlibswarmÈý¸öÏîÄ¿£¬´µÏìÁËÕⳡսÒÛµÄ³å·æºÅ¡£
- ÔÚа汾Docker engineÖУ¬ÓÉGoÓïÑÔ¿ª·¢µÄlibcontainer¿âÒÑÈ¡´úLXC¡£ÎÒÈÏΪ£¬Ëü¸ü´óµÄÄ¿µÄÊÇ·´Ïò¶¨ÒåÈÝÆ÷µÄʵÏÖ±ê×¼£¬½«µ×²ãʵÏÖ£¨Ò²Ðí¿ÉÒÔÍêÈ«²»ÓÃcgroupÉõÖÁLinux£©¶¼³éÏ󻯵½libcontainerµÄ½Ó¿Ú¡£
- libchanÀà¿â£¬ÒÔ±ê×¼½Ó¿ÚµÄ·½Ê½½â¾öÈÝÆ÷µÄ»¥Áª»¥Í¨£¬ÊµÏÖ¿çÆ½Ì¨£¬ÄܸüºÃÖ§³Ö·Ö²¼Ê½ÏµÍ³ºÍ²¢·¢±à³Ì¡£
- libswarmÊÇÁíÒ»¸öºÜ¼òµ¥µÄÀà¿â£¬µ«Ëü½«ÊµÖÊÐÔµØÍƶ¯»¥ÁªÍøÓ¦Óüܹ¹µÄ´´Ð¡£Ëü³éÏóÁËÓ¦Óò¿ÊðºÍ¼¯Èº¹ÜÀíµÄϸ½Ú£¬ÎªÓ¦ÓóÌÐò¸³ÓèÁË¿çÔÆÆ½Ì¨ºÍ»¥ÁªÍø¼¶µ¯ÐÔ¡£
CoreOSµÄ¿ÚºÅ“A new way to think about servers”£¬Õâ¾ä»°²ûÃ÷ÁËËûÃǶԸÄÔ컥ÁªÍø·þÎñÆ÷µÄÄ¿±ê¡£CoreOSͨ¹ý×îС»¯µÄ¶¨ÖưæLinuxϵͳΪÈÝÆ÷ÔËÐÐÌá¹©ÔØÌå¡£ÎÒÔøÒ»¶ÈÈÏΪCoreOSµÄ·¢Õ¹·½ÏòÊÇÓëÓ²¼þ¸ü½ôÃܽáºÏ£¬ÍƳö»ùÓÚARMµÄ°æ±¾£¬ÉõÖÁ¼¯³É½øÈë·þÎñÆ÷¹Ì¼þ¡£
È»¶øCoreOSÒÔʵ¼ÊÐж¯Ö¤Ã÷ÁËÎÒµÄÅжϴíÎó£º2014Äê8ÔÂ14ÈÕ£¬´«À´ÁËCoreOSÊÕ¹ºQuay.IO²¢ÍƳöCoreOS Enterprise Registry·þÎñµÄÐÂÎÅ¡£
ÏÔÈ»£¬CoreOS²¢²»Âú×ãÓÚ·þÎñÆ÷²ãµÄ¹¤×÷£¬ÆäÄ¿±ê¶¨Î»ÔÚΪÆóÒµÓû§ÌṩÍêÕûµÄÈÝÆ÷¼¼Êõ·þÎñÕ»£¬Ìṩ¹ÜÀí´óÐÍÈÝÆ÷¼¯ÈºµÄÕûÌå½â¾ö·½°¸¡£ÔÚÕâ¸öÀà±ðÖÐÉú´æµÄÊDZê×¼¶¨ÒåÕߣ¬ËüÃÇÊÇÕû¸öDockerÉú̬ϵͳµÄ»ù´¡¡£
¾µÏñ´æ´¢ºÍÈÝÆ÷ÍйÜ
Õâ°üÀ¨ÈÝÆ÷µÄ¾µÏñ´æ´¢ºÍCaaS£¨Container as a Service£©ÀàµÄÈÝÆ÷ÔËÐÐÍйܣ¬Óдú±íÐԵĹ«Ë¾ÊÇStackDock¡¢Orchard¡¢Tutum¡¢Quay.IO¡¢Baremetal.IOµÈ¡£
Õ⼸¼Ò¼¸ºõÈ«¶¼ÊÇ´´Òµ¹«Ë¾£¬ËûÃÇÎ§ÈÆÇáÁ¿¼¶ÈÝÆ÷µÄÕû¸öÉúÃüÖÜÆÚÀ´Éè¼Æ×Ô¼ºµÄ²úÆ·£¬Óеľ۽¹ÈÝÆ÷¾µÏñÃèÊöÎļþ£¨Dockerfile£©Ïòµ¼»¯Éú³ÉºÍ¹¹½¨¹ý³ÌµÄÓÅ»¯£¨ÈçStackDock£©£¬ÓеÄÌṩ°üÀ¨SSDÔÚÄڵĸßÐÔÄÜÍйܻ·¾³£¨ÈçStackDockºÍTutum£©£¬ÓеÄÔÚ¼à¿ØºÍµ¯ÐÔÀ©Õ¹·½Ãæ×ö×ãÎÄÕ£¨ÈçTutum£©£¬Ò²ÓÐÏñBaremetal.IOÕâÑùÕë¶ÔÆóÒµ¼¶ÕûÌå½â¾ö·½°¸µÄ¹«Ë¾¡£
ÈÝÆ÷µÄ¾µÏñ´æ´¢ºÍÔËÐÐÍйÜÊÇDockerÉú̬ÌåϵÖзdz£½Ó½ü×îÖÕÓû§µÄÒ»²ã¡£Õâ¸öÀà±ðÖеĹ«Ë¾Ò²Ðí²¢Ã»ÓиßÉîβâµÄ¼¼Êõ£¬Ò²²»ÊDZê×¼µÄ¶¨ÒåÕߣ¬µ«Í¨¹ýËüÃÇÓëϸ·ÖÊг¡Öпͻ§µÄ³¤ÆÚ¹µÍ¨ºÏ×÷£¬»ýÀÛÁË´óÁ¿DockerÉÌÓû¯µÄ¾ÑéºÍʵ¼ù¡£ÕâÒ»²ã×î½üÓÐÁ½¸ö²¢¹º°¸Àý£ºDockerÊÕ¹ºOrchard/FigÍŶӺÍCoreOSÊÕ¹ºQuay.IO¡£ÊDz»ÊÇÓеãÏñ´óÓã³ÔСÓ㣿ÎÒÃÇÀ´×Ðϸ¿´¿´ÕâÁ½¼Ò±»“³Ôµô”µÄ¹«Ë¾¡£
Orchard Laboratories£¨ºÃаºõµÄÃû×Ö£¬ÆäʵֻÓÐÁ½ÃûÔ±¹¤£©¿ª·¢²¢Î¬»¤Ò»¸öÃûΪFigµÄ¿ªÔ´¹¤¾ß¡£Fig±»³ÆÎª“by far the easiest way to orchestrate the deployment of multi-container applications”£¬Ò²±»¹ÚÒÔ“the perfect Docker companion for developers”¡£¼òµ¥µØËµ£¬FigÒÔDockerΪ»ù´¡£¬ÓÃÈÝÆ÷¹á´©Õû¸öÈí¼þ¿ª·¢Á÷³Ì£¬¿ìËÙʵÏÖ¸ôÀ뿪·¢»·¾³¡£FigÈÃÓû§±àдһ¸ö¼òµ¥µÄfig.ymlÎļþÁгöÓ¦ÓÃÐèÒªµÄËùÓÐDockerÈÝÆ÷£¬ÒÔ¼°ËüÃÇÊÇÈçºÎÁ¬½ÓÔÚÒ»ÆðµÄ¡£±àдºÃfig.ymlÒÔºó£¬Ö»ÐèÒª¼ÓÉÏ-d²ÎÊý£¬Ó¦ÓþÍÄÜ¿ªÊ¼ÉÏÏßÔËÐÐÁË¡£ÕâÒâζ×Å´Ó´Ë¿ª·¢¡¢²âÊÔ¡¢ÔËÐл·¾³µÃµ½Í³Ò»£¬ÈÝÆ÷³ÉΪÈí¼þ·¢²¼µÄÐÂÔØÌ塣ǰÎÄÌáµ½¹ýDockerµÄÄ¿±êÊÇΪ»¥ÁªÍø»ù´¡¼Ü¹¹Öƶ¨Ðµıê×¼£¬FigµÄ¼ÓÈëÊ¹ÃæÏò¿ª·¢ÕߺͿª·¢Á÷³ÌÕâ¸ö»·½ÚµÃµ½¼«´óÔöÇ¿¡£
Quay.IO£¬Õâ¸öÍŶÓΪÓû§Ìṩ˽ÓеÄDocker¾µÏñ²Ö¿â£¨Image Repository£©ÍйܷþÎñ¡£Í¨¹ýÕâ´ÎÊÕ¹º£¬CoreOSÔöÇ¿ÁËCoreOS Enterprise Registry·þÎñ¡£Quay.IOÒ²Ö»ÓÐÁ½ÃûÔ±¹¤¡£
8ÔÂ20ÈÕ£¬´«À´ÁËTutum.co»ñµÃ260ÍòÃÀԪǰÆÚͶ×ʵÄÐÂÎÅ£¬ËûÃÇÊÇÕâ¸öÁìÓòµÄ´ó¹«Ë¾£¨ÓÐÆßÃûÔ±¹¤£©£¬×÷ΪCaaSƽ̨ÌṩÉÌ£¬Ä¿Ç°ÓÐ1500¸ö¿ª·¢ÕßʹÓÃÆä·þÎñ¡£
»ùÓÚDockerµÄ΢PaaS
¾µÏñ´æ´¢£¨¾²Ì¬£©ºÍÈÝÆ÷Íйܣ¨¶¯Ì¬£©¶¼ÊÇÒÔÈÝÆ÷Ϊµ¥Î»µÄ¡£ÏÂÃæÎÒÃǽ«Òª½²ÊöÒÔÓ¦ÓÃΪµ¥Î»£¬ÒÔÈÝÆ÷Ϊµ×²ã¼¼ÊõʵÏÖµÄ΢PaaS¡£
Õ⼸ÄêËæ×ÅMicrosoft Azure¡¢Cloud FoundryµÄÆÕ¼°£¨ÎÒÓÐÐÒ·Ö±ð²ÎÓëÁËÕâÁ½¸ö²úÆ·ÔÚÖйúÊг¡µÄÔçÆÚÍÆ¹ã¹¤×÷£©£¬PaaSµÄ¸ÅÄîÒѾÉîÈëÈËÐÄ¡£´«Í³ÒâÒåÉÏPaaSʵÀýÒ»°ã¶¼ÓëÒ»¸öÌØ¶¨µÄIaaSƽ̨°ó¶¨£¬Ìṩ²¿Êð½Ó¿Ú¡¢¸ºÔØÆ½ºâ¡¢·þÎñ°ó¶¨µÈ£¬È»¶øDockerÊÀ½çÖвúÉúµÄ΢PaaS£¬ÔÚ´Ë»ù´¡ÉϽøÒ»²½´´Ð¡£Õâ¸öÁìÓò±È½ÏÓдú±íÐÔµÄÊÇFlynnºÍDeis.IO£¬ËüÃǶ¼ÊÇ¿ªÔ´ÏîÄ¿¡£
Flynn·ÖΪLayer 0ºÍLayer 1Á½²ã¡£Layer 0Ö÷Òª×öµ×²ãÓ²¼þºÍÔÆÆ½Ì¨µÄ³éÏ󣬷ֲ¼Ê½ÅäÖá¢ÈÎÎñµ÷¶È¡¢·þÎñ·¢ÏֵȻù´¡¹¤×÷£¬ËüΪÉϲãµÄÈÝÆ÷ÔËÐл·¾³ÌṩÁËÒ»¸ö³éÏóµÄ×ÊԴƽ̨¡£Flynn¿ÉÒÔ¿ìËÙ²¿ÊðÔÚAWSÉÏ£¬½ñºóÒ²¿ÉÀ©Õ¹µ½ÆäËû¹«ÓÐÔÆºÍ˽ÓÐÔÆ¡£Layer 1Ö÷Òª·þÎñÓÚÓ¦Óã¬ÊÇPaaS¹¦ÄܵľßÌåʵÏֲ㣬ËüÌṩÁË»ù±¾µÄ¹ÜÀíAPIºÍ¿Í»§¶Ë£¬ÊµÏÖÁËGit Receiver¡¢Heroku Buildpacks¡¢RoutingºÍDatastoreµÈPaaSºËÐŦÄÜ¡£Layer 1±¾ÉíºÍËüËù¹ÜÀíµÄÓ¦Ó㬶¼ÒÔÈÝÆ÷ÎªÔØÌå¡£
Deis.IO£¬ËüµÄÒ»¸öÁÁµãÊÇÓÃCoreOS³Ðµ£µ×²ã×ÊÔ´¹ÜÀíµÄÈÎÎñ¡£ÔÚ²¿ÊðDeis PaaS»·¾³Ê±£¬Ê×ÏȰ²×°µÄController»á´´½¨Ò»¸öCoreOSϵͳ£¬È»ºóÔÚÆäÖ®ÉÏÒÔÈÝÆ÷µÄ·½Ê½ÔËÐÐDeisµÄËùÓÐ×é¼þ¡£¶ÔCoreOSµÄÖ§³ÖÊÇÒ»¸ö·Ç³£´ÏÃ÷µÄÑ¡Ôñ£¬Ä¿Ç°CoreOSÒÑ¿ÉÒÔÔËÐÐÔÚ¶à¸ö¹«ÓÐÔÆÆ½Ì¨¡¢ÐéÄâ»úºÍÎïÀí»ú»·¾³Ï£¬ÕâΪDeisÌṩÁËÓëÉú¾ãÀ´µÄ¿çÔÆÆ½Ì¨ÄÜÁ¦¡£
FlynnºÍDeisµÄ¹²Í¬Ìص㣬ÊǶԸ´ÔӺʹó¹æÄ£·Ö²¼Ê½Ó¦ÓõÄÔÉúÖ§³Ö¡£Heroku´´Ê¼ÈËAdam WigginsÔø·¢²¼ÖøÃûµÄ“Ê®¶þÒªËØÓ¦ÓÃÐûÑÔ£¨The Twelve-Factor App£©”£¬Õâ¸öÐûÑÔ¶¨ÒåÁËÒÔ·þÎñ·½Ê½ºÍͨ¹ý»¥ÁªÍø½»¸¶µÄÈí¼þÓ¦¸Ã×ñѵÄÊ®¶þ¸öÒªËØ¡£FlynnºÍDeis¶¼ÊÇÊ®¶þÒªËØµÄÖÒʵӵ»¤Õߣ¬ËüÃǵÄ΢PaaSƽ̨ÓëHerokuÓм«ºÃµÄ¼æÈÝÐÔ¡£
΢PaaS´´Òµ¹«Ë¾²ã³ö²»Ç¾ºÕùÊ®·Ö¼¤ÁÒ£¬µ«Ò²Ðí×ßµ½×îºóµÄÖ»ÊÇÉÙÊý¡£ÔÚÕâÒ»ÂÖÈÝÆ÷¼¼ÊõÈȳ±ÖУ¬Î¢PaaSÕýÔÚÓ°ÏìÈí¼þ¿ª·¢ºÍÔËάÁ÷³Ì£¬¸Ä±äÈí¼þµÄ½»¸¶·½Ê½£¬°ÑÊ®¶þÒªËØÀ໥ÁªÍøÓ¦Óüܹ¹±ê×¼»¯¡£
Orchestration¡¢ManagementºÍMoni-toring
Î§ÈÆDocker API×öWeb UIµÄÃż÷Ïà¶Ô½ÏµÍ£¬Êܵ½ÁË´ó¼ÒµÄ×·Åõ£¬ÕâÒ»ÀàÖ÷ÒªÓÐDockerUI¡¢Shipyard¡¢maDockerµÈ¡£ËüÃÇÎÞÒ»ÀýÍâ¶¼µ÷ÓÃDocker APIºÍÆäËûÀà¿â£¬°Ñ¶ÔÈÝÆ÷µÄ¹ÜÀíºÍ¼à¿Ø³ÊÏÖÔÚWebÒ³ÃæÖУ¬ÕâÔÚijÖ̶ֳÈÉϽµµÍÁËÆóÒµÍø¹Ü¶ÔÕâЩм¼ÊõµÄ¿Ö¾å¡£
ÕâÒ»ÁìÓòÓÐÈý¸ö²»µÃ²»ÌáµÄ¸ß¸»Ë§ÏîÄ¿£ºGoogle Kubernetes¡¢Cloud FoundryµÄBOSHºÍDiego¡£
KubernetesÊǹ¹½¨ÔÚDockerÖ®ÉϵÄÈÝÆ÷¼¯Èº¹ÜÀíϵͳ£¬GoogleÔÚ2014Äê6Ô½«Õâ¸öÏîÄ¿¿ªÔ´¡£Ëü¿ÉÒÔΪÓû§Ìṩ¿çƽ̨µÄ´¦ÀíÄÜÁ¦£¬²»µ«Äܹ»ÔÚGoogleµÄ»ù´¡¼Ü¹¹ÖÐÔËÐУ¬Í¬Ê±¿ÉÒÔ·ÃÎÊÆäËûµÄÔÆ¼ÆËã·þÎñÆ÷£¬ÈçAWS£¬ÉõÖÁÊÇ˽ÓÐÔÆ¡£
Õâ¸öϵͳһ¾¿ªÔ´£¬¾ÍµÃµ½ÁËIBM¡¢ºìñ¡¢Î¢Èí¡¢Docker¡¢Mesosphere¡¢CoreOSºÍSaltStackµÈ³§É̵ÄÖ§³Ö£ºÎ¢Èí½«È·±£KubernetesÄܹ»ÔÚÆäAzureÔÆÖÐ×÷Ϊ»ùÓÚLinuxµÄÐéÄâ»úϵͳÈÝÆ÷²¢Õý³£ÔË×÷£»ºìñÔò½«ÆäÒýÈëÁË×Ô¼ºµÄÔÆ²úÆ·£»IBMµÄ¼Æ»®ÊÇΪKubernetesÓëDocker¹±Ï×´úÂ룻CoreOS½«ÔÚÆä²Ù×÷ϵͳ·¢ÐаæÖÐΪKubernetesÌṩ֧³Ö£»SaltStackÕýŬÁ¦¼ò»¯KubernetesÔËÐÐÔÚÆäËû»·¾³ÏµIJ¿ÊðÁ÷³Ì£»¶øMesosphereÔò´òË㽫ÕâÏî¼¼Êõ¼ÓÈëµ½×Ô¼ºµÄMesosͬÃû¿ªÔ´ÏîÄ¿µ±ÖС£GoogleÒ»ºô°ÙÓ¦µÄ´ó½«Ö®·çչ¶ÎÞÒÅ¡£
Cloud FoundryµÄBOSHÊDz¿ÊðºÍÔËά¹¤¾ß£¬Ëüͨ¹ýÀàËÆ²Ù×÷ϵͳÇý¶¯³ÌÐòµÄCPI£¨Cloud Provider Interface£©À´ÊµÏÖ¶Ô¶àÖÖÒì¹¹ÔÆÆ½Ì¨µÄÖ§³ÖºÍ³éÏó£¬ÒÔ½üºõÓÅÑŵķ½Ê½¹ÜÀíVMÄ£°å¡¾×¢£ºÔÚCloud FoundryÊõÓïÖгÆÎª¸Éϸ°û£¨stemcell£©¡¿¡¢Èí¼þ·¢²¼£¨release£©ºÍ²¿ÊðÅäÖýű¾Îļþ¡£×î½üBOSHÍÆ³öÁËÒ»¸öÊÔÑéÐÔÖʵÄÏîÄ¿BOSH Release for Docker¡£
Cloud FoundryÔÚËüµÄDEA£¨Droplet Execution Agent£©ÖÐʹÓûùÓÚWardenµÄÈÝÆ÷¼¼ÊõÀ´×öPaaSµÄÓ¦ÓøôÀë¡£×îеÄDiego£¨GoÓïÑÔ°æDEA£©ÏîĿĿ±êÊÇÈÃCloud FoundryÔÚ¿çÔËÐÐʱ»·¾³·½Ãæ¸ü¾ßÓÐÀ©Õ¹ÐÔ£¬ÕâЩÔËÐÐʱ»·¾³¾Í°üÀ¨Docker£¬Ò²¿ÉÄÜ»áÔÉúÖ§³ÖWindows Server¡£
ÍøÂç²ãµÄÔöÇ¿ºÍ½â¾ö·½°¸
ÈÝÆ÷Ö®¼äÈçºÎ»¥Áª»¥Í¨£¿DockerÒýÇæÖеÄÄÚÁªÍøÂçÄÜ·ñÂú×ãÆóÒµ¼¶±ðÍøÂçµÄÐèÇ󣿵±ÈÝÆ÷Ïñ½ñÌìµÄÐéÄâ»úÒ»ÑùÔÚÆóÒµ»·¾³´ó¹æÄ£²¿Êðʱ£¬¸´ÔÓµÄÍøÂçÐèÇóÈçÍøÂçÅäÖùÜÀí¡¢°²È«¼à¿Ø¡¢Á÷Á¿QoS¡¢ÍøÂç¸ôÀëµÈÒ»¶¨»á³öÏÖ¡£
ÔÚÐéÄ⻯µÄÊÀ½çÀÕâЩÐèÇó´ßÉúÁËÅÓ´óµÄÍøÂçÐéÄ⻯£¨SDN£©²úÒµ£¬ÔÚÈÝÆ÷µÄ»·¾³ÖУ¬ÊÇ·ñÓÐͬÑùµÄÌôÕ½ºÍ»ú»á£¿ÔÚÕâ¸öÁìÓòÖУ¬Ä¿Ç°ÊܹØ×¢½Ï¶àµÄÊÇSkydockºÍVNS3¿ªÔ´ÏîÄ¿£¬µ«ÕûÌåÉÏ»¹¶¼´¦ÔÚÃÈÑ¿Æð²½½×¶Î¡£
ËÊÇÈÝÆ÷¼¼ÊõµÄ×îÖÕÓû§
ÉÏÃæÁгöÁ˺ܶ๫˾ºÍ²úÆ·£¬Ë½«ÊÇÈÝÆ÷¼¼ÊõµÄ×îÖÕÓû§ÄØ£¿ÎÒÈÏΪ»áÔÚÒÔϼ¸¸öÁìÓòÈ¡µÃÍ»ÆÆ¡£
»¥ÁªÍø¹«Ë¾
»¥ÁªÍø¹«Ë¾µÄ¿ª·¢ÔËά»·¾³¸´ÔÓ£¬Ó¦Óöà²ÉÓ÷ֲ¼Ê½¼Ü¹¹£¬ºǫ́ʹÓ÷þÎñµÄÖÖÀà·±¶à£¬ÕâЩ¶¼ÊÇDocker×îÉó¤½â¾öµÄÎÊÌâ¡£¾Ýͳ¼Æ£¬¹úÄÚÍâÒÑÓÐÒ»¶¨ÊýÁ¿µÄ»¥ÁªÍø¹«Ë¾½«Docker¼¯³Éµ½ÄÚ²¿µÄ¿ª·¢²âÊÔÁ÷³Ì£¬²¢ÒÔDockerÎªÔØÌå·¢²¼Ó¦Óá£GROUPONÔøÔÚÉçÇø·ÖÏíËûÃÇʹÓÃDockerÓëJenkins½áºÏ×ö³ÖÐø¼¯³ÉµÄ°¸Àý£¬¹úÄÚÀýÈçÆßÅ£µÈÐÂÐË»¥ÁªÍø¹«Ë¾Ò²¿ªÊ¼Ó¦ÓÃDocker¡£
´«Í³ISV
ÔÚÕû¸öSDLC£¨Systems Development Life Cycle£©»·½ÚÖÐÒýÈëDocker£¬ÌرðÊÇÔöÇ¿ÒÔÈÝÆ÷ΪºËÐĵijÖÐø¼¯³ÉºÍ³ÖÐø½»¸¶£¬×îÖÕ½«ÈÝÆ÷×÷ΪÈí¼þÏòÔÆÆ½Ì¨½»¸¶µÄʵÌå¡£Õâ·½ÃæÄ¿Ç°²¢Ã»ÓвúÆ·»¯µÄÕûÌå½â¾ö·½°¸£¬¹úÍâÈçShippable£¬¹úÄÚÈçCodingµÈ´´Òµ¹«Ë¾ÔÚÏòÕâ¸ö·½ÏòŬÁ¦¡£
ÒÆ¶¯¿ª·¢
ÕâÊÇÈí¼þ¿ª·¢×îÈÈÃŵÄÁìÓò£¬Î§ÈÆÉç½»¡¢Òƶ¯¡¢ÓÎÏ·µÄMBaaS£¨Mobile Backend as a Service£©ÒÑÓв»ÉÙ³ÉÐ͵IJúÆ·¡£Docker£¬Î¢PaaSÈçºÎÓëÒÆ¶¯Ó¦Óÿª·¢Ïà½áºÏ£¬ÊÇÁíÒ»¸öÖµµÃ¹Ø×¢µÄÁìÓò¡£
³ý´ËÒÔÍ⣬DockerÉú̬ϵͳÔÚ´óÊý¾ÝµÈÁìÓòÒ²·¢Õ¹ÁËÈô¸É¿ªÔ´¹¤¾ßºÍÏîÄ¿£¬ÕâÀﲻһһ׸Êö¡£
ÒÔÉÏÊÇDockerÉú̬ϵͳµÄÒ»¸ö¿ìÕÕ£¬Õâ¸öÁìÓòµÄ·¢Õ¹¿ÉνһÈÕǧÀ±ê×¼»¯¡¢¿ªÔ´¿ª·Å¡¢´´Òµ¹«Ë¾¡¢´óÆóÒµÖ§³Ö¡¢·çÏÕͶ×ʵÈÌØÕ÷ÐγÉÁËÒ»¸ö¹öÑ©ÇòµÄģʽ£¬½«ÖúÍÆÕâÒ»ÂÖ¼¼Êõ¸ïе½¸ü¸ßµÄÒ»¸ǫ̈½×¡£
DockerµÄδÀ´
½ÓÏÂÀ´Docker»áÓÐÄÄЩеĽøÕ¹£¿Ëüµ½µ×ÊǼ«¿ÍÊÖÀïê¼»¨Ò»Ïֵļ¼ÊõÍæ¾ß£¬»¹ÊÇÏÂÒ»´úµÄ»¥ÁªÍø»ù´¡¼Ü¹¹£¿
Docker´´Ê¼ÈËSolomon HykesÔÚDockerCon 2014ÉϷųöÁË“Upgrade the Internet”µÄºÀÑÔ׳ÓĿǰµÄDockerºÍËüÖܱߵÄÉú̬ϵͳ£¬¾àÀëÍê³ÉÕâ¸öΰ´óʹÃü£¬»¹ÓжàÔ¶ÄØ£¿ÐÐÎÄÖÁ´Ë£¬ÎÒ³¢ÊÔ½áºÏ×Ô¼ºÍƹãºÍ½¨ÉèCloud FoundryÉú̬ϵͳµÄһЩ¾Ñ飬¶Ô´Ë×ö³õ²½·ÖÎö£¬Å×שÒýÓñ£¬ÒâÔÚÒýÆð¸ü¶àÕë¶ÔÇáÁ¿¼¶ÈÝÆ÷¼¼ÊõµÄÉî¶È˼¿¼¡£
Ê×ÏÈÐèҪ˼¿¼£¬InternetΪʲôÐèÒªUpgrade£¿
½üЩÄêÔÆ¼ÆËã¸ßËÙ·¢Õ¹£¬ÈÕÇ÷³ÉÊìµÄIaaSƽ̨£¬½â¾öÁËÒÔ×Ô¶¯»¯·½Ê½×éÖ¯¡¢¹ÜÀíºÍʹÓôó¹æÄ£Ó²¼þ×ÊÔ´·½ÃæµÄÐèÇó£¨Í¼1£©£¬µ«Ó¦Óüܹ¹²ãÃæµÄÑݽø²»ÈÝÀÖ¹Û¡£

ͼ1 ÔÆ¼ÆËãµÄ×Ô¶¯»¯×éÖ¯
´«Í³µÄÈý²ã¼Ü¹¹Ó¦Óã¬ÍùÍùͨ¹ýÐéÄâ»úµÄ·½Ê½ÔÚÔÆÆ½Ì¨²¿Ê𣬲¢Î´Õë¶ÔÔÆ¼ÆËãÆ½Ì¨µÄÌØµã×ö³ä·ÖµÄÓÅ»¯£»¸´Ôӵķֲ¼Ê½»¥ÁªÍøÓ¦Ó㬶àÊýͨ¹ýÓëµ×²ãÌØ¶¨ÔÆÆ½Ì¨½ôÃܰ󶨵ÄDevOps¹¤¾ßÀ´²¿ÊðºÍ¹ÜÀí£¬È±ÉÙ¿çÔÆÆ½Ì¨µÄÁé»îÐÔ¡£ÊÔÏëÈç¹ûÎÒÃǰÑÿһÖÖÀàÐ͵ÄIaaS¶¼¿´×öÒ»ÀàÆ·ÅÆµÄ·þÎñÆ÷£¬ÎÒÃǵÄÓ¦ÓÃʵ¼ÊÉÏÊÇÓëÓ²¼þ½ôñîºÏµÄ¡£ÄÇôÕâ¸úÔ½¹ý²Ù×÷ϵͳ£¬Ö±½ÓÕë¶ÔCPUµÄ»úÆ÷Ö¸Á·¢³ÌÐò£¬ÓкÎÇø±ðÄØ£¿
DockerµÄ³öÏÖ£¬²»½öΪʹÓÃLinuxÇáÁ¿¼¶ÈÝÆ÷ÌṩÁ˱ãÀûµÄ¹¤¾ß£¬¸üÖØÒªµÄÊÇËü½«Òý·¢»¥ÁªÍøÓ¦Óüܹ¹µÄ¸ïÃü¡£Ö÷ÒªÌåÏÖÔÚÒÔϼ¸¸ö·½Ãæ¡£
- ÒÔÈÝÆ÷Ϊ¿ª·¢¡¢²âÊԺͷ¢²¼µÄµ¥Ôª£¬½«Ê¹µ¥»ú¡¢Ë½ÓÐÔÆ¡¢¹«ÓÐÔÆµÄ½çÏÞÄ£ºý£¬Èÿª·¢Õ߸ü¼Ó¹Ø×¢Ó¦Óÿª·¢±¾Éí£¬ÏÔÖø½µµÍDevOpsµÄѹÁ¦£¨È±·¦¸´ÔÓ·Ö²¼Ê½»¥ÁªÍøÓ¦ÓõÄÔËάÄÜÁ¦£¬ÊÇ×è°´«Í³ÆóҵתÐÍ»¥ÁªÍø¼Ü¹¹µÄÃż÷Ö®Ò»£©¡£
- ´«Í³Ó¦ÓÃÔÚÔÆÆ½Ì¨ÉÏ£¬ÈÔ¾ÉÃæÁٸ߿ÉÓÃÐÔ£¬Êý¾ÝÍÌÍÂÆ¿¾±ºÍ°²È«µÄ¿¼Ñé£¬ÌØ±ðÊÇ´óÈÝÁ¿ºÍ´óÁ÷Á¿µÄÊý¾Ý¿â½Úµã£¬ÊÇÆóÒµÓ¦ÓÃÔÚ»¥ÁªÍø¼Ü¹¹Ï»ñµÃµ¯ÐÔµÄÒ»´óÕϰ¡£Êý¾ÝºÍ·þÎñ£¬ÊÇ·ñ¿ÉÒÔ×öµ½·Ö²¼Ê½£¬ÕâÊÇĿǰ¼Ü¹¹Ê¦ÃæÁٵľ޴ó¿¼Ñé¡£ÇáÁ¿¼¶ÈÝÆ÷ÔÚ¿ìËÙÆô¶¯¡¢Ò»ÖÂÐÔ¡¢·þÎñÍйܡ¢Î¢·þÎñµÈ·½ÃæµÄÄÜÁ¦£¬ÊÇ·ñÄÜÎªÍ»ÆÆÕâ²ãÕϰÌṩ¿ÉÄÜ£¿
- DockerµÄÈȳ±Íƶ¯Á˱ê×¼µÄÐγɣ¬DockerCon 2014ÉϹ«²¼µÄÈý¸öÀà¿â£ºlibcontainer¡¢libchan¡¢libswarmÊÇÕâÒ»³¡¸ïÃüµÄÈý´ó»ùʯ¡£ÒÔ´ËΪ¹æ·¶¹¹½¨µÄ»¥ÁªÍøÓ¦Óã¬ÊÇ·ñÄÜ»ñµÃ¿ç»¥ÁªÍøµÄµ¯ÐԺͿÉÓÃÐÔ£¿
ÂÞÂí²¢·ÇÒ»ÈÕÖ®¼ä½¨³É£¬Docker¡¢ÇáÁ¿¼¶ÈÝÆ÷ÒÔ¼°»¥ÁªÍøÓ¦Óüܹ¹µÄ¸ïÃü»¹Óкܳ¤µÄ·Ҫ×ß¡£ÎÒÈÏΪ£¬ÒÔϼ¸¸öÁìÓò½«»áÖ±½ÓÓ°ÏìDockerδÀ´µÄ·¢Õ¹¡£
¿ªÔ´µÄ¶ÀÁ¢ÐÔ
ÓйØDockerµÄÉú̬ϵͳ£¬Ç°ÎÄÒѾÓÐÏêϸ·ÖÎö£¬ÕâÀï²»ÔÙ׸Êö¡£Õâô¶Ìʱ¼äÄÚ£¬±ãÏà¼Ì´«À´ÁËDocker»ñµÃ×·¼ÓͶ×Ê£¬Fig¡¢Quay.IOµÈ±»ÊÕ¹ºµÄÐÂÎÅ£¬ÏàÐÅÔÚÕâ¸öÁìÓò£¬ÈÚ×Ê¡¢²¢¹ºµÄºÃÏ·»¹½«ÓúÑÝÓúÁÒ¡£×ʱ¾Êг¡µÄ²ÎÓë¹ÌÈ»»á¼ÓËÙ¼¼ÊõµÄ·¢Õ¹£¬µ«Í¶×ÊÕßµÄÖÐ¶ÌÆÚ»ñÀûÔ¤ÆÚ£¬ÊƱØÒýÆðδÀ´12~18¸öÔÂÄÚ¸ü¶àµÄÔÙÈÚ×Ê¡¢²¢¹ºÉõÖÁÌ×ÏÖ¡£ÕâÀà×ʱ¾»î¶¯£¬ÒÔ¼°Ò»Ð©´óÐÍÉÌÒµ¹«Ë¾µÄ²ÎÓ룬ÊÇ·ñ»á¹ýÔç´øÀ´ÉÌÒµÐÔµÄÓ¯ÀûËßÇó£¬Ó°Ï쿪ԴµÄ¶ÀÁ¢ÐÔºÍÖÐÁ¢·¢Õ¹£¬ÊÇÒ»¸öÐèÒªÌØ±ð¹Ø×¢µÄÎÊÌâ¡£
ÈçºÎ±»ÆóÒµÓû§½ÓÊÜ
DockerÈçºÎ×ß½øÆóÒµ¼¶Êг¡£¿³ýÁ˼¼ÊõÉÏÐèÒªÔÚ°²È«¡¢¸ôÀëÐԵȷ½ÃæÌṩ¸ü¶àÔöÇ¿£¬Ñ¡ÔñºÏÊʵÄÇÐÈëµãÖÁ¹ØÖØÒª¡£´ÓÐèÇóÀ´Ëµ£¬ÆóÒµ¼¶¿Í»§ÃæÁÙÈçϼ¸¸öÌôÕ½¡£
- ÔÚ´«Í³ÆóÒµ·×·×´¥Íø£¬ÒµÎñÏò»¥ÁªÍø×ªÐ͵Ĵ󱳾°Ï£¬ÔÓÐµÄÆóÒµÓ¦ÓúÍÖ§³Öƽ̨£¬ÄÜ·ñ³Ðµ£»¥ÁªÍø´øÀ´µÄ±¬·¢Ê½Á÷Á¿¡¢Ñ¹Á¦ºÍµ¯ÐÔ£¿
- ÆóÒµITÔËάÈËÔ±£¬ÊÇ·ñ¾ß±¸DevOpsµÄÄÜÁ¦£¿
- ´Ó˽ÓÐÔÆµ½¹«ÓÐÔÆµÄ¹ý¶É£¬ÊÇ·ñÄÜÒÔ¸üµÍµÄ³É±¾Íê³É£¿
ÎÒÈÏΪ£¬Docker¶ÔISV³§ÉÌÀ´ËµÊÇÒ»´ÎÖØÒªµÄ»ú»á£¬Ëü²»½öÓÐÖúÓÚͳһ¿ª·¢Á÷³ÌÖи÷ÀàÒì¹¹¿ª·¢»·¾³£¬½µµÍ¿ª·¢²âÊԵijɱ¾£¬¸üÖØÒªµÄÊÇÒÔÈÝÆ÷·½Ê½½»¸¶µÄÈí¼þ£¬ÄÜΪ¿Í»§´øÀ´ÇÐʵµÄ¼ÛÖµ¡£DockerÓëÉú¾ãÀ´µÄ¿ÉÒÆÖ²ÐÔ¡¢ÈÕ½¥³ÉΪ±ê×¼µÄµ×²ãƽ̨½Ó¿Ú¡¢¿çÔÆµÄAPIµÈ£¬ÄÜÔÚÒ»¶¨³Ì¶ÈÉϽâ¾öÆóÒµ¿Í»§ÉÏÊöÃæÁٵķ³ÄÕ£¬ÎªÆóÒµ¼¶¿Í»§´øÀ´Õ½ÂÔÐԵļÛÖµ¡£
Docker¶Ô˽ÓÐÔÆÔËÓªÉÌÒ²ÊÇÒ»´Î»ú»á£¬ÌṩÂú×ãÆóÒµ¼¶ÐèÇóµÄÈÝÆ÷ÍÐ¹ÜÆ½Ì¨£¬²»ÂÛÊÇCaaS£¬»¹ÊÇ΢PaaS£¬Èç¹û´ïµ½ÆóÒµ¼¶Óû§¶ÔÐÔÄÜ¡¢°²È«¡¢¼à¿Ø¡¢¹ÜÀí¡¢ºÏ¹æµÈ·½ÃæµÄÒªÇ󣬶¼½«»ñµÃÊг¡µÄÈϿɡ£µ±Èí¼þµÄÈÝÆ÷ʽ½»¸¶³ÉΪ±ê×¼£¬ÕâÒ²Ðí»á´øÀ´Ë½ÓÐÔÆÊг¡µÄÒ»´ÎеÄÏ´ÅÆ¡£
¶ÔÉϲãÓ¦Óüܹ¹µÄÓ°Ïì
ËùÓеÄÔÆÓ¦Óüܹ¹Ê¦¶¼Ó¦¸ÃÊì¶ÁÖøÃûµÄ“Ê®¶þÒªËØÓ¦ÓÃÐûÑÔ”¡£DockerºÍËüÖܱߵÄϵͳ£¬ÊÇ·ñÄܳÉΪÔËÐÐÊ®¶þÒªËØÀàÓ¦ÓõÄÔÉúƽ̨£¿ÊÇ·ñÄÜΪÕâÀàÓ¦ÓôøÀ´¿çÔÆºÍ·Ö²¼Ê½Êý¾Ý·þÎñµÄÄÜÁ¦£¿
Ê®¶þÒªËØÇ¿µ÷²»»áÇø±ð¶Ô´ý±¾µØ»òµÚÈý·½·þÎñ£¬Ó¦ÓðѲ»Í¬À´Ô´µÄ·þÎñ¶¼µ±×÷×ÊÔ´£¬²¢ÓëÖ®±£³ÖËÉñîºÏ°ó¶¨¡£DokkuµÄ×÷ÕßÒÔ¼°DockerÔçÆÚµÄ¹±Ï×ÕßJeff LindsayÔÚCenturyLinkµÄÒ»¸ö²É·ÃÖÐÌÖÂÛÁËÈçºÎ½â¾öÉæ¼°ÃæÏòDocker·þÎñµÄ¼Ü¹¹µÄÎÊÌâ¡£
ÉçÇøÄ¿Ç°ÓкܶàŬÁ¦¼¯ÖÐÔÚ£º·þÎñ·¢ÏÖϵͳ£¨Etcd¡¢DiscoveredµÈ£©£¬Ô¶³Ì·þÎñ´úÀí£¨Ambassadord£©£¬·þÎñ×¢²á£¨Registrator£©£¬·Ö²¼Ê½·þÎñ·¢ÏֺͷÓÉÍø¸ñ£¬libchanÖ®ÉϵÄͨÐÅÐÒ飬ÎÞÖÐÐÄ»¯µÄÈí¼þÅäÖÃÎļþ£¬·Ö²¼Ê½µ÷¶ÈϵͳµÈ£¬ÕâЩÁìÓòµÄ´´Ð¶¼´¦ÔÚÆð²½½×¶Î¡£6~12¸öÔÂÄÚÕâ·½ÃæµÄ½øÕ¹½«ÔÚPaaSºÍÈí¼þ¼Ü¹¹ÁìÓò´øÀ´Ðµı仯£¬ÐèÒª½ôÃܹØ×¢¡£
DockerÊÇÒ»¸ö²»³¬¹ý18¸öÔµÄÐÂÉú¶ù£¬Ëü±³ºóµÄ¼¼ÊõÒ²²¢·Ç¸ßÉîĪ²â£¬±¸ÊܹØ×¢µÄÔÒòÖ÷ÒªÊÇÊÊÓ¦»¥ÁªÍøÊ±´úµÄÐèÒª£¬ÎªÄ¿Ç°µÄÔÆÆ½Ì¨ºÍÓ¦Óüܹ¹Ö¸Ã÷ÁËÒ»¸öеķ¢Õ¹·½Ïò¡£ÈÃÎÒÃÇÊÃÄ¿ÒÔ´ý£¬¹Ø×¢²¢²ÎÓëÕâÒ»³¡¼´½«µ½À´µÄ“Generational Shift”¡£
|