IronWorkerÊÇÒ»¸öÃæÏò¿ª·¢ÕßµÄÈÎÎñ¶ÓÁзþÎñ£¬¿ª·¢ÈËÔ±¿ÉÒÔÔÚ²»ÉèÖú͹ÜÀíÈκλù´¡ÉèÊ©µÄ»ù´¡ÉÏ£¬µ÷¶ÈÖ´Ðдó¹æÄ£µÄÈÎÎñ¡£¼¸¸öÔÂǰ£¬Iron¿ªÊ¼ÊÔÓÃDocker£¬Èç½ñÆäÄÚ²¿ÒѾ²¿ÊðÁË3ÒÚ¶à¸öDockerÈÝÆ÷£¬±¾ÎÄÖзÖÏíÁËIronWorkerÔÚʹÓûùÓÚDockerµÄ»ù´¡¼Ü¹¹Ê±£¬Óöµ½µÄÌôÕ½¡¢½â¾ö·½·¨£¬ÒÔ¼°ÆäÖеÄÊÕ»ñ¡£ÒÔÏÂΪÔÎÄ£º

IronWorkerÊÇÒ»¸öÈÎÎñ¶ÓÁзþÎñ£¬ËûÈÿª·¢ÈËÔ±ÔÚ²»ÓÃÉèÖú͹ÜÀíÈκλù´¡ÉèÊ©µÄ»ù´¡ÉÏ£¬µ÷¶ÈÖ´Ðдó¹æÄ£µÄÈÎÎñ¡£ÎÒÃÇ3Äê¶àÇ°ÍÆ³öÕâÏî·þÎñʱ£¬Ê¹ÓÃÁ˰üº¬ËùÓеÄÓïÑԺʹúÂë°üµÄLXCÈÝÆ÷ÔËÐÐÈÎÎñ¡£DockerʹÎÒÃÇÄܹ»ÇáËɵØÉý¼¶ºÍ¹ÜÀíÒ»×éÈÝÆ÷£¬Îª¿Í»§Ìṩ¸ü¶àµÄÓïÑÔ»·¾³ºÍ°²×°°ü¡£
ÎÒÃǸտªÊ¼Ê¹ÓõÄÊÇv0.7.4°æ±¾µÄDokcer,ʹÓùý³ÌÖÐÓöµ½Ò»Ð©À§ÄÑ£¨²»ÄÜÕý³£µÄ¹Ø±ÕÊÇÒ»¸ö´óµÄÎÊÌ⣬µ«ÊǺóÀ´ÒѾ±»½â¾öÁË£©£¬ÎÒÃÇÒѾ³É¹¦µØ¿Ë·þÁËËùÓеÄÀ§ÄÑ£¬²¢ÇÒ·¢ÏÖDocker²»½ö½öÂú×ãÁËÎÒÃǵÄÐèÇ󣬸üÊdz¬³öÁËÎÒÃǵÄÔ¤ÆÚ¡£Òò´ËÎÒÃÇÔÚÎÒÃǵĻù´¡¼Ü¹¹ÖÐÍÆ¹ãʹÓÃDocker¡£»ùÓÚÎÒÃǵľÑéÀ´¿´£¬ÕâÑù×öÊÇÓÐÒâÒåµÄ¡£

ÓÅÊÆ
ÏÂÃæÁгö¼¸µãÎÒÃÇÒâʶµ½µÄDockerµÄÓÅÊÆ£º
¸üÐÂά»¤¾µÏñ·Ç³£ÈÝÒ×
Doker ʹÓÃÀàËÆgitµÄ·Ç³£Ç¿´óµÄ·½·¨À´¹ÜÀíImage£¬Ê¹µÃËüÄܷܺ½±ãµØ¹ÜÀí´óÁ¿µÄ¡¢²»¶Ï±ä»¯µÄ»·¾³£¬ËûµÄImage·Ö²ãϵͳ²»½ö½ÚÊ¡¿Õ¼ä¶øÇÒʹÎÒÃÇÓµÓиüÏ¸Çø·Ö¶ÈµÄimages¡£
ÏÖÔÚ£¬ÎÒÃÇÄܹ»¸úÉÏ¿ìËÙ¸üеÄÓïÑԵĽÚ×࣬ÎÒÃÇÄܹ»ÌṩרÃŵÄÀýÈçÒ»¸öеÄרÃÅΪýÌå´¦Àí¶øÉè¼ÆµÄffmpeg stack¡£ÎÒÃÇÏÖÔÚÓжà´ï15¸ö²»Í¬µÄ¶ÑÕ»²¢ÇÒÕýÔÚѸËÙÀ©´ó¡£
×ÊÔ´·ÖÅä
»ùÓÚLxcµÄÈÝÆ÷ÊDzÙ×÷ϵͳ¼¶±ðµÄÐéÄ⻯·½·¨£¬ËùÓеÄÈÝÆ÷¹²ÏíϵͳÄںˣ¬µ«ÊÇÿ¸öÈÝÆ÷¿ÉÒÔ±»Ô¼ÊøÊ¹ÓÃÖ¸¶¨µÄ×ÊÔ´£¬±ÈÈçCPU,ÄÚ´æºÍI/O.DockerÌṩREST API¡¢»·¾³°æ±¾¿ØÖÆ¡¢»ñÈ¡/Ìá½»¾µÏñ¡¢ÇáËÉ»ñȡͳ¼ÆÊý¾ÝµÈ¹¦ÄÜ¡£DockerÖ§³ÖʹÓÃCoWÎļþϵͳÀ´¸ü°²È«µÄ¸ôÀëÊý¾Ý¡£ÕâÒâζ×Å£¬ÈÎÎñÖжÔÎļþµÄËùÓиı䶼·Ö¿ª´æ´¢£¬²¢¿ÉÒÔÓÃÒ»¸öÃüÁîÇå³ý¡£ LXCÊDz»Äܸú×ÙÕâÖֱ仯¡£
DockerfilesʹµÃ¼¯³É¼òµ¥
ÎÒÃǵÄÍŶӱ鲼ÊÀ½ç¸÷µØ¡£Ö»Òª·¢²¼Ò»¸ö¼òµ¥µÄDockerfile¾Í¿ÉÒÔϰ࣬µ±ÄãÐÝϢʱ£¬¿ÉÒÔ±£Ö¤ÆäËû¹¤×÷µÄÈËÄܹ»Éú³ÉºÍÄãµÄÒ»ÑùµÄ¾µÏñ¡£¿Ë·þÁ˲»Í¬µØ·½µÄÈËÓв»Í¬µÄ×÷Ϣʱ¼äµÄÀ§ÄÑ¡£¸É¾»µÄ¾µÏñʹµÃËü²¿ÊðºÍ²âÊÔ¸ü¿ì¡£ÎÒÃǵĵü´úÖÜÆÚ¸ü¿ì£¬ÍŶÓÀïÿ¸öÈ˸ü¼Ó¿ªÐÄ¡£
²»¶Ï׳´óµÄÉçÇø
DockerÔڷdz£¿ìµÃ¸üУ¬ÉõÖÁ±Èchrome¸ü¿ì¡£¸üÖØÒªµÄÊÇ£¬²ÎÓëÔö¼Óй¦ÄܺÍÐÞ¸´bugµÄÉçÇøÊýÁ¿ÔÚ´óÁ¿Ôö¼Ó¡£ ÎÞÂÛÊÇΪΪ¾µÏñ¹±Ï×»¹ÊÇΪDocker×ö¹±Ï×£¬ÉõÖÁÊÇΪDockerµÄÖܱ߹¤¾ß×ö¹±Ï×£¬ÓÐÒ»´óÅú´ÏÃ÷µÄÈËÕýÔÚΪÆäŬÁ¦£¬Òò´ËÎÒÃÇÒ²²»ÄÜÖÃÉíÊÂÍâ¡£ÎÒÃÇ·¢ÏÖDockerµÄÉçÇø·Ç³£»îÔ¾ÓÐÒâÒ壬ÎÒÃǺܸßÐËÄܹ»³ÉΪÆäÖÐÒ»Ô±¡£
Docker + CoreOS
ÎÒÃÇÒ²´¦ÔÚ̽Ë÷½×¶Î£¬µ«ÎÒÃÇ·¢ÏÖDockerºÍCoreOSµÄ½áºÏ¶ÔÓÚÎÒÃÇÀ´ËµËƺõÊǸüºÃµØÑ¡Ôñ¡£DockerÌṩÁËÎȶ¨µÄ¾µÏñ¹ÜÀíºÍÈÝÆ÷¡£CoreOSÌṩÁËÒ»¸ö¾«¼òµÄÔÆ²Ù×÷ϵͳ¡¢»úÆ÷¼¶±ð·Ö²¼Ê½±àÅźÍÐéÄâ״̬¹ÜÀí¡£Õâ¸ö×éºÏ¹Ø×¢ÎÊÌâµÄ²»Í¬·½Ã棬ÊÇÒ»¸ö¸üºÏÀíµÄ»ù´¡Éèʩջ¡£
ÌôÕ½
ÿһ¸ö·þÎñÆ÷¶ËµÄ¼¼ÊõÐèҪ΢µ÷ºÍ¶¨ÖÆ£¬ÓÈÆäÊÇ´ó¹æÄ£ÔËÐÐʱ£¬£¬DockerÒ²²»ÀýÍâ¡££¨ÀýÈ磬ÎÒÃÇÅܲ»µ½5000ÍòµÄÈÎÎñ£¬Ò»¸öÔÂ50ÍòСʱ¼ÆË㣬²¢ÇÒ²»¶Ï¸üÐÂÎÒÃǵľµÏñ£©¡£ÏÂÃæÊÇÎÒÃÇʹÓôóÁ¿DockerÈÝÆ÷ÊýʱÓöµ½µÄһЩÌôÕ½£º
Ïòºó¼æÈÝÐÔ²»¹»
¸ÃÁìÓòµÄ¿ìËÙ´´ÐÂËäÈ»ÊÇÒ»¸öÓÅÊÆ£¬µ«ÊÇÒ²´æÔÚȱµã¡£ÆäÖÐÖ®Ò»ÊÇÏòºó¼æÈÝÐԲÔÚ¶àÊýÇé¿öÏ£¬ÎÒÃÇÓöµ½µÄÎÊÌâÖ÷ÒªÊÇÊÇÃüÁîÐÐÓï·¨¡¢APIµÄ¸Ä±ä£¬´Ó²úÆ·½Ç¶ÈÀ´ËµÕâ²»ÊÇÒ»¸öÑÏÖØµÄÎÊÌâ¡£
µ«ÔÚijЩÇé¿öÏ£¬ËüÓ°ÏìÁ˲Ù×÷ÐÔÄÜ¡£ÀýÈ磬ÔÚÈÎºÎÆô¶¯ÈÝÆ÷ºóÒý·¢µÄDocker´íÎó£¬ÎÒÃÇÒª½âÎöSTDERR²¢¸ù¾Ý´íÎóÀàÐͽøÐÐÏìÓ¦£¨ÀýÈçÖØÊÔ£©¡£·Ç³£²»ÐÒµÄÊÇ£¬´íÎóµÄÊä³ö¸ñÊ½Ëæ×Ű汾²»Í¬±ä»¯£¬²»µÃ²»ÔÚ²»¶Ï±ä»¯µÄ½á¹ûÖе÷ÊÔ£¬Ê¹ÎÒÃǷdz£Æ£±¹¡£

DockerµÄ´íÎóÂÊ
Õâ¸öÎÊÌâÏà¶ÔÀ´Ëµ»¹±È½ÏºÃ½â¾ö£¬µ«ÊÇÒâζ×Åÿ´ÎµÄ¸üÐÂÒª¾¹ý¶à´ÎÑéÖ¤£¬²¢ÇÒÄãÐèÒªÒ»Ö±¿ª·¢Ö±µ½Õâ¸ö¸üеİ汾±»·¢²¼µ½ÁËϵͳ´ó²¿·Ö»·¾³ÖС£ÎÒÃǼ¸¸öÔÂǰʹÓÃv0.7.4,ÏÖÔÚÎÒÃǵÄϵͳ¸üе½v1.2.0.ÔÚÕâ¸öÁìÓòÎÒÃÇÒѾÓÐÁËÒ»¸öºÜ´óµÄ½ø²½¡£
ÓÐÏ޵Ť¾ßºÍ¿â
ËäÈ»Docker ÓÐÒ»¸öËĸöÔÂǰ·¢²¼µÄÎȶ¨°æ±¾£¬Î§ÈÆËüµÄһЩ¹¤¾ßÈÔÈ»²»Îȶ¨¡£²ÉÓÃDockerÉú̬ȦÖеĴ󲿷ֹ¤¾ßÒâζ×ÅÐèҪͶÈë¸ü¶àµÄ¾«Á¦¡£ÎªÁËʹÓÃ×îÐµĹ¦ÄÜ¡¢ÐÞ¸´bug£¬ÄãÍŶÓÖÐÐèÒªÓÐÈ˰¾Ò¹¼Ó°à¶ÔÕâЩ¹¦ÄÜ£¬Æµ·±µÄ½øÐÐһЩÐÞ¸Ä.Ò²¾ÍÊÇ˵£¬ÎÒÃǺܸßÐËÓÐһЩDocker ÖܱߵŤ¾ßÔÚ¿ª·¢£¬¶øÇÒºÜÆÚ´ýÄܹ»ÓÐÒ»¸ö¹¤¾ßÔÚÆäÖÐÍÑÓ±¶ø³ö¡£ÎÒÃǶÔetcd,fleet, kubernetes±È½Ï¿´ºÃ¡£
սʤÀ§ÄÑ
½ÓÏÂÀ´¸ù¾ÝÎÒÃǵľÑ飬¸üÉîÈëµÄ½²ÎÒÃǽ²ÎÒÃÇÓöµ½µÄÎÊÌâºÍÎÒÃǵĽâ¾ö·½·¨¡£ÎÊÌâÁбíÖ÷ÒªÀ´×ÔÎÒÃÇIronworkerµÄÊ×ϯ¿ª·¢¼æ¹¤³ÌÔËÓª×ܼàRoman KononovºÍÒ»Ö±ÔÚµ÷ÊԺ͹淶»¯ÎÒÃÇDocker²Ù×÷µÄSam Ward¡£

DebugʱµÄÒ»¸öÒì³£
˵Ã÷һϣ¬µ±ÎÒÃÇÓöµ½ºÍDockerÏà¹Ø»òÕ߯äËüϵͳÏà¹ØµÄÎÊÌ⣬ÎÒÃÇ¿ÉÒÔ×Ô¶¯µÄÖØÐÂÖ´ÐÐÈÎÎñ£¬¶ÔÓû§Ã»ÓÐÈκÎÓ°Ïì£¨ÖØÊÔÊÇÆ½Ì¨µÄÄÚÖù¦ÄÜ£©¡£
ɾ³ý²Ù×÷ʱ¼ä³¤
Æð³õɾ³ýÈÝÆ÷ʱ¼ä³¤£¬ÐèҪ̫¶àµÄ´ÅÅÌI/O²Ù×÷¡£Õâµ¼ÖÂÎÒÃǵÄϵͳËÙ¶ÈÃ÷ÏÔ±äÂý£¬ÐγÉÁËÆ¿¾±¡£ÎÒÃDz»µÃ²»Ôö¼Ó¿ÉÓõÄÄÚºËÊýÄ¿£¬¶øÕâ¸öÊýÁ¿Ô¶Ô¶³¬³öÎÒÃÇËùÐèµÄ¡£

¿ìËÙɾ³ýDockerÈÝÆ÷µÄ½â¾ö·½°¸
ͨ¹ýÑо¿Ê¹ÓÃdevicemapper£¨Ò»¸öDockerµÄÎļþϵͳÇý¶¯£©£¬ÎÒÃÇ·¢ÏÖÉèÖÃÒ»¸öÑ¡ÏîÓÐ×÷ÓÃ`--storage-opt dm.blkdiscard=false`£¬Õâ¸öÑ¡Ïî¸æËßDocker ɾ³ýÈÝÆ÷Ê±Ìø¹ý»¨·Ñʱ¼ä³¤µÄ´ÅÅ̲Ù×÷,´ó´ó¼ÓËÙÁËÈÝÆ÷µÄ¹Ø±Õ¹ý³Ì¡£µ±Ð޸ĺÃɾ³ý½Å±¾ºó£¬Õâ¸öÎÊÌâ¾ÍûÁË¡£

¾íÎÞ·¨Ð¶ÔØ
ÓÉÓÚDockerûÓпɿ¿µØÐ¶ÔØ¾í£¬ÈÝÆ÷²»ÄÜÕýÈ·µØÍ£Ö¹¡£Õâµ¼ÖÂÈÝÆ÷ÓÀÔ¶ÔÚÔËÐУ¬¼´Ê¹ÒѾÍê³ÉÁËÈÎÎñ¡£½â¾ö°ì·¨¾ÍÊÇÏÔʾµØµ÷ÓÃÓû§×Ô¼ºÐ´µÃһЩÁнű¾À´Ð¶ÔØ¾í£¬É¾³ýÎļþ¼Ð¡£ÐÒÔ˵Äʱ£¬Õâ¸öÎÊÌâÊÇ֮ǰÎÒÃÇʹÓÃDocker v0.7.6°æ±¾Ê±Óöµ½µÄ£¬µ±Docker v0.9.0½â¾öÕâ¸öÎÊÌâºóÎÒÃǾÍɾ³ýÁËÄÇЩÈß³¤µÄ½Å±¾¡£
ÄÚ´æÏÞÖÆ¿ª¹Ø
DockerÆäÖеÄÒ»¸ö·¢²¼µÄ°æ±¾ÖÐͻȻÐÂÔöÁËÄÚ´æÏÞÖÆÑ¡Ïɾ³ýÁËLXCÖеÄÑ¡Ïî¡£Æä½á¹ûÊÇһЩ¹¤×÷½ø³Ìµ½´ïÄÚ´æ½çÏÞ£¬È»ºóÁËÕûÌå²»ÏìÓ¦¡£ÕâŪµÃÎÒÃÇ´ëÊÖ²»¼°£¬ÒòΪ¼´Ê¹Ê¹ÓÃÁËËü²»Ö§³ÖµÄÉèÖã¬DockerҲûÓгö´í¡£½â¾ö·½·¨ºÜ¼òµ¥£¬¼´ÔÚDockerÄÚ²¿ÉèÖÃÄÚ´æÏÞÖÆ£¬µ«ÊÇÕâÖֱ仯ÈÃÎÒÃÇ´ëÊÖ²»¼°
δÀ´¼Æ»®
ÕýÈçÄãËù¿´µ½µÄ£¬ÎÒÃǶÔDockerͶÈë·Ç³£µÄ¶à£¬ÎÒÃÇÔÚ½ÓϵÃÿÌì»á¼ÌÐøÍ¶Èë¡£³ýÁËÓÃËüÀ´¸ôÀëÓû§ÔÚIronWorkerÖÐÔËÐеĴúÂ룬ÎÒÃÇÒ²×¼±¸ÔÚÆäËûµÄһЩÁìÓòʹÓÃËü¡£
ÕâЩÁìÓò°üÀ¨£º
IronWorker ºǫ́
³ýÁËʹÓÃDocker×÷ΪÈÎÎñµÄÈÝÆ÷£¬ÎÒÃÇÒ²ÔÚʹÓÃËüÀ´¹ÜÀíÿ¸ö·þÎñÆ÷ÉÏÔËÐеÄÓÃÀ´¹ÜÀíºÍÆô¶¯ÈÎÎñµÄ½ø³Æ¡£Ã¿Ò»½ø³Ì×ŵÄÖ÷ÒªÈÎÎñÊÇ´Ó¶ÓÁÐÖÐÄÃÒ»¸öÈÎÎñ£¬°ÑËü·Åµ½ºÏÊʵÄDockerÈÝÆ÷ÖУ¬ÔËÐУ¬¼à²â£¬ÔËÐÐÍêºóɾ³ý»·¾³¡£ÓÐȤµÄÊÇͬһ̨»úÆ÷ÉÏÎÒÃÇÓÐÈÝÆ÷»¯µÄ´úÂëÀ´¹ÜÀíÆäËüÈÝÆ÷¡£°ÑÎÒÃÇËùÓеĻù´¡ÉèÊ©»·¾³·Åµ½DockerµÄÈÝÆ÷ÖÐÈÃÎÒÃÇÔÚCoreOSÉϵÄÔËÐÐÏ൱ÈÝÒס£
IronWorker, IronMQ,ÒÔ¼° IronCache APIs
ÎÒÃÇºÍÆäËûµÄopsÍŶÓÒ»Ñù£¬Ã»ÓÐÈËϲ»¶²¿Êð¡£Äܹ»°ÑÎÒÃǵÄËùÓеķþÎñ´ò°üDockerÈÝÆ÷ÖУ¬È»ºó¼òµ¥¡¢È·¶¨µØ²¿Êð£¬ÎÒÃǷdz£µØ¼¤¶¯¡£²»ÓÃÔÙÅäÖ÷þÎñÆ÷¡£ÎÒÃÇÐèÒªµÄ¾ÍÖ»ÊÇÄܹ»ÔËÐÐDokcerÈÝÆ÷µÄ·þÎñÆ÷¡£ÎÒÃÇÕýÔÚÌæ»»ÎÒÃǵķþÎñÆ÷´î½¨£¬Ê¹ÓÃDockerÈÝÆ÷ÔÚ·þÎñÆ÷ÉÏΪÎÒÃÇ·¢²¼µÄ²úÆ·´î½¨»·¾³¡£±äµÃµÄÁé»î¡¢¼òµ¥£¬Óиü¿É¿¿µÄÐÒéÕ»¡£
Éú³ÉºÍ¼ÓÔØ³ÌÐò
ÎÒÃÇÒ²ÔÚÓÃDockerÈÝÆ÷ÔÚIronWorkerÖÐÉú³ÉºÍ¼ÓÔØ³ÌÐò¡£Ò»¸öÏÔÖøµÄ½ø²½ÊÇΪÓû§¸Ä½øÁË£¬´ó¹æÄ£¡¢Ìض¨ÈÎÎñ¸ºÔغ͹¤×÷Á÷µÄ´´½¨¡¢ÉÏ´«¡¢ÔËÐÐÈÎÎñµÄ¹ý³Ì¡£»¹ÓÐÒ»¸öºÃ´¦ÊÇÓû§¿ÉÒÔÔÚ±¾µØ²âÊÔ³ÌÐò£¬¶ø²âÊÔ»·¾³ºÍÎÒÃǵÄÉú²ú·þÎñÒ»Ö¡£
ÆóÒµÄÚ²¿²¿Êð°æ
ʹÓÃDocker×÷ΪÖ÷Òª·Ö·¢·½·¨£¬IronMQÆóÒµÄÚ²¿²¿Êð°æ¼ò»¯ÁËÎÒÃǵķַ¢¹¤×÷£¬²¢ÇÒÌṩÁËÒ»¸ö¼òµ¥Í¨ÓõÄÔÚ¼¸ºõÈκÎÔÆ»·¾³Öж¼Äܲ¿ÊðµÄ·½·¨¡£¾ÍÏñÎÒÃÇÔÚ¹²ÓÐÔÆÉÏÔËÐеķþÎñ£¬¿Í»§ÐèÒªµÄ¾ÍÊÇ¿ÉÒÔÔËÐÐDockerÈÝÆ÷µÄ·þÎñÆ÷£¬Í¬Ê±ËûÃÇ¿ÉÒÔÏà¶ÔÈÝÒ׵ĻñµÃÔÚ²âÊÔ»òÉú²ú»·¾³ÖÐÔËÐеĶą̀·þÎñÆ÷µÄÔÆ·þÎñ¡£
|