»¶ÓÄú·ÃÎÊÎÒ°®IT¼¼ÊõÍø£¬½ñÌìС±àΪÄã·ÖÏíµÄµçÄԽ̳ÌÊÇ·þÎñÆ÷ϵÁÐÖ®£º¡¾Dockerµ½µ×ÊÇʲô£¿DockerΪʲôËüÕâô»ð£¡¡¿£¬ÏÂÃæÊÇÏêϸµÄ·ÖÏí£¡
Dockerµ½µ×ÊÇʲô£¿DockerΪʲôËüÕâô»ð£¡
Xcode ÊÇÔËÐÐÔÚ²Ù×÷ϵͳMac OS XÉϵļ¯³É¿ª·¢¹¤¾ß£¨IDE£©£¬ÓÉÆ»¹û¹«Ë¾¿ª·¢¡£XcodeÊÇ¿ª·¢OS X ºÍ iOS Ó¦ÓóÌÐòµÄ×î¿ì½ÝµÄ·½Ê½¡£Xcode ¾ßÓÐͳһµÄÓû§½çÃæÉè¼Æ£¬±àÂë¡¢²âÊÔ¡¢µ÷ÊÔ¶¼ÔÚÒ»¸ö¼òµ¥µÄ´°¿ÚÄÚÍê³É¡£
±³¾°½éÉÜ
XcodeǰÉíÊǼ̳Ð×ÔNeXTµÄProject Builder¡£
The Xcode suite °üº¬ÓÐGNU Compiler Collection×ÔÓÉÈí¼þ £¨GCC¡¢ apple-darwin9-gcc-4.0.1 ÒÔ¼° apple-darwin9-gcc-4.2.1, ĬÈϵÄÊǵÚÒ»¸ö£©£¬²¢Ö§³Ö CÓïÑÔ¡¢C++¡¢Fortran¡¢Objective-C¡¢Objective-C++¡¢Java¡¢AppleScript¡¢PythonÒÔ¼°Ruby£¬»¹ÌṩCocoa¡¢CarbonÒÔ¼°JavaµÈ±à³Ìģʽ¡£ÐÁ¦³§É̸üÌṩÁË GNU Pascal£¬Free Pascal, Ada, C#, Perl, Haskell ºÍ DÓïÑÔ¡£XcodeÌ×¼þʹÓà GDB×÷ΪÆäºǫ́µ÷ÊÔ¹¤¾ß¡£
´ÓXcode 3.1¿ªÊ¼£¬XcodeÒ²¿É±»ÓÃΪiPhone OSµÄ¿ª·¢»·¾³¡£
Xcode 4.0ÓÚ2011Äê3ÔÂ9ÈÕÕýʽ·¢ÐС£¸Ã°æ±¾·ÇApple¿ª·¢Õß×¢²á»áÔ±ÒàÄÜ´ÓMac App StoreÖи¶·ÑÏÂÔØ, ÊÕÈ¡US$4.99µÄ·ÑÓá£
´ÓXcode 4.1¿ªÊ¼£¬Õë¶ÔOS X 10.6¼°OS X 10.7Óû§´ÓMac App StoreÃâ·ÑÏÂÔØ
XcodeÖ÷Òª°æ±¾ÊÇXcode 5£¬Ö§³ÖiOS7£¬¿ÉÒÔÔÚMac App StoreÃâ·ÑÏÂÔØ£¬Òà¿ÉÔÚiOS¿ª·¢Õ߼ƻ®ÍøÕ¾ÏÂÔØ¡£
Xcode6ÕûºÏÁËÆ»¹ûÔÚWWDC´ó»áÉÏ·¢²¼µÄÐÂÓïÑÔSwift1.0°æ±¾¡£
2015Äê9ÔÂ16ÈÕ,Æ»¹ûÔÚ¿ª·¢Õß¹ÙÍø·¢²¼Xcode7Õýʽ°æ,²¢½«SwiftÓïÑÔÉý¼¶µ½2.0°æ±¾[1] .
¸ù¾Ý˹ŵµÇÌṩµÄ×ÊÁÏ£¬ÃÀ¹úÕþ¸®Ñо¿ÈËÔ±´´½¨ÁËÒ»¸ö°æ±¾µÄÆ»¹ûÈí¼þÓ¦Óÿª·¢¹¤¾ßXcode£¬Ï£Íû½è´Ë½«¼à¿ØºóÃÅÖ²È뵽ͨ¹ýÆ»¹ûÓ¦ÓÃÉ̵êApp Store·¢²¼µÄÓ¦ÓóÌÐòÖС£
Ó¦Óñà¼
XcodeÔËÐÐÓÚÆ»¹û¹«Ë¾µÄMac²Ù×÷ϵͳÏ£¬ÊÇÆ»¹û¹«Ë¾Ïò¿ª·¢ÈËÔ±ÌṩµÄ¼¯³É¿ª·¢»·¾³£¨·Ç¿ªÔ´£©£¬ÓÃÓÚ¿ª·¢Mac OS X£¬iOSµÄÓ¦ÓóÌÐò¡£[3]
²»¹ÜÄãÓÃC¡¢C++¡¢Objective-C»òJava±àд³ÌÐò£¬ÔÚAppleScriptÀï±àд½Å±¾£¬»¹ÊÇÊÔͼ´ÓÁíÒ»¸öÆæÃîµÄ¹¤¾ßÖÐ×ªÒÆ±àÂ룬Äã»á·¢ÏÖ Xcode ±àÒëËٶȼ«¿ì¡£Ã¿´Î²Ù×÷¶¼ºÜ¿ìËÙºÍÇáËÉ¡£
Æ»¹û¹«Ë¾ÎªÓû§ÌṩÁËÈ«Ì×Ãâ·ÑµÄCocoa³ÌÐò¿ª·¢¹¤¾ß(Xcode)£¬ºÍMac OS XÒ»Æð·¢ÐУ¬ÔÚÆ»¹û¹«Ë¾¹Ù·½µÄÍøÕ¾ÏÂÔØ¡£
×ÔÓɳ·Ïû
Xcode 4 µÄÐéÄâÄ£ÐͺÍÉè¼Æ¹¦ÄÜÈÃÄã¿ÉÒÔ¸üÇáËɵĿª·¢ºÍά»¤Ó¦ÓóÌÐò¡£Ö»ÐèÑ¡ÔñÓ¦ÓóÌÐòÖÐÏëÒª±àдµÄ²¿·Ö£¬È»ºóÄ£ÐͺÍÉè¼ÆÏµÍ³½«×Ô¶¯´´
½¨·ÖÀàͼ±í£¬²»½ö¿ÉÒÔÏÔʾ±àÂ룬»¹¿ÉÒÔÈÃÄã½øÐÐä¯ÀÀ¡£Mac OS X Core Data API °ïÄãµÄÓ¦ÓóÌÐò´´½¨Êý¾Ý½á¹¹¡£¸ü°ôµÄÊÇ£¬Ëü»¹×Ô¶¯Ìṩ³·Ïû¡¢ÖØ×öºÍ±£´æ¹¦ÄÜ£¬ÎÞÐè±àдÈκαàÂë¡£
²Î¿¼×ÊÁÏ¿â
Xcode ÕûºÏµÄ Apple Reference Library ΪËùÓеÄApple¿ª·¢ÕßÎļþÌṩһ¸öµ¥¶ÀµÄËÑË÷ºÍÏÔʾ½çÃæ£¬ÕâЩÎļþ°üÀ¨À´×ÔÆ»¹ûµçÄÔ¹«Ë¾ÍøÕ¾µÄÔÚÏßÎļþ£¬ÒÔ¼°´æ·ÅÔÚÄãµçÄÔÉϵÄÎļþ¡£ÐµIJο¼×ÊÁÏ¿âÉõÖÁ¿ÉÒÔ°ïÄ㽫¶¨ÆÚ¸üÐÂ×ÊÁÏÏÂÔØµ½ÄãµÄµçÄÔ£¬±£³ÖÎļþµÄ×îÐÂ״̬¡£Xcode ½«°ïÄã¿ìËÙÕÒµ½×îеĴ𰸡£
±àÒëÆ÷
Xcode3ËùʹÓõıàÒëÆ÷ÊÇgcc±àÒëÆ÷£¬¶øÔÚXcode4Ö®ºóºÍ°æ±¾ÖУ¬XcodeËùʹÓõıàÒëÆ÷ÒÑ¾Ìæ»»³ÉΪеÄLLVM±àÒëÆ÷¡£LLVM±àÒëÆ÷µÄǰ¶ËÊÇclang¡£
Xcode 4 µÄºËÐIJ¿·ÖÊÇÆ»¹ûµçÄÔ¹«Ë¾ÏÂÒ»´úÒµ½ç±ê×¼µÄ gcc±àÒëÆ÷gcc 4.0¡£ÐµıàÒëÆ÷ÀûÓÃÐí¶àÏȽøµÄ×îÓÅ»¯¼¼Êõ°ïÄã´ÓÏÖ´æ±àÂëÖлñµÃ¸ü¶àÐÔÄÜ¡£´Ó³¬¼¶¼ÆËãÊÀ½ç½è¼øÀ´µÄ×Ô¶¯ÏòÁ¿»¯£¨Auto-vectorization£©¼¼Êõ¿ÉÒÔ°ïÖúÄãÊÍ·Åÿ̨ Intel ϵͳÖÐËÙ¶ÈÒýÇæµÄÄÜÁ¿£¬¶ø²»ÐèÒª±àдÏòÁ¿»¯±àÂë¡£ÆäËûµÄ×îÓÅ»¯¹¤¾ßÔòÖ§³Ö·´À¡¶¨ÏòµÄ×îÓÅ»¯£¬ÒÔ¼°Òþ²ØÄ£¿é·ÖÎö¡£
Xcode¿ì½Ý¼ü
Îļþ
CMD + N: ÐÂÎļþ£» CMD + SHIFT + N: ÐÂÏîÄ¿£» CMD + O: ´ò¿ª£»
CMD + S: ±£´æ£» CMD + SHIFT + S: Áí´æÎª£»
CMD + W: ¹Ø±Õ´°¿Ú£» CMD + SHIFT + W: ¹Ø±ÕÎļþ
±à¼
CMD + [: ×óËõ½ø£»CMD + ]: ÓÒËõ½ø£»
CMD + CTRL + LEFT: ÕÛµþ£»CMD + CTRL + RIGHT: È¡ÏûÕÛµþ£»
CMD + CTRL + TOP: ÕÛµþÈ«²¿º¯Êý£»CMD + CTRL + BOTTOM: È¡ÏûÈ«²¿º¯ÊýÕÛµþ£»
CTRL + U: È¡ÏûÈ«²¿ÕÛµþ£»
CMD + D: Ìí¼ÓÊéÇ©£» CMD + /: ×¢ÊÍ»òÈ¡Ïû×¢ÊÍ£»
CTRL + .: ²ÎÊýÌáʾ£» ESC: ×Ô¶¯ÌáʾÁбí
µ÷ÊÔ
CMD + \: ÉèÖûòÈ¡Ïû¶Ïµã£»
CMD + OPT + \: ÔÊÐí»ò½ûÓõ±Ç°¶Ïµã£»
CMD + OPT + B: ²é¿´È«²¿¶Ïµã£»
CMD + RETURN: ±àÒë²¢ÔËÐУ¨¸ù¾ÝÉèÖþö¶¨ÊÇ·ñÆôÓöϵ㣩£»
CMD + R: ±àÒë²¢ÔËÐУ¨²»´¥·¢¶Ïµã£©£»
CMD + Y: ±àÒë²¢µ÷ÊÔ£¨´¥·¢¶Ïµã£©£»
CMD + SHIFT + RETURN: ÖÕÖ¹ÔËÐлòµ÷ÊÔ£»
CMD + B: ±àÒ룻
CMD + SHIFT + K: ÇåÀí£»
º£Á¿ÄÚ´æ
Xcode ½«¸³ÓèÄã´´½¨ÖîÈç¼ÆËãºÍäÖȾÒýÇæÓ¦ÓóÌÐòµÄÄÜÁ¦£¬ÕâЩӦÓóÌÐòʹÓÃ64λÄڴ涨ַ¡£Õâ·Ç³£ÊʺÏÊý¾Ý¼¯ÖеÄÓ¦ÓóÌÐò£¬Æäͨ¹ý·ÃÎÊÄÚ´æÖеÄÊý¾ÝÔËÐÐËٶȸü¿ì£¬Ô¶Ê¤ÓÚ´ÅÅÌ·ÃÎÊ¡£Xcode ½«ÎªÄãÌṩ¹¤¾ßÀ´½¨Á¢²¢µ÷ÊÔÊÊºÏ Intel Core i5, i7 ºÍ Mac OS X Lion µÄ 32 »ò 64 λӦÓóÌÐò£¬»¹¿ÉÒÔÈÃÄã´´½¨°üº¬32λºÍ64λִÐÐÄÜÁ¦µÄ Fat Binaries¡£
¹¹½¨
ÖÚËùÖÜÖª£¬ÔÚ¹¹½¨ÖÐÒý½ø¶àÖØ´¦ÀíÆ÷¿ÉÒÔÌá¸ßËÙ¶È£¬Xcode ÄܰïÄãʵÏÖÕâ¸öÃ÷ÏԵĽáÂÛ¡£ÀûÓÃÖ§³Ö Rendezvous µÄ·Ö²¼Ê½¹¹½¨¹¦ÄÜ£¬¿ÉÒÔÇáÒ׵ذѱàÒ빤×÷Á¿·ÖÉ¢µ½ÏÐÖõĵçÄÔÉÏÀ´¼Ä·Å¹¹½¨£¬»òÕ߸üºÃÊÇÔÚµ¥¶ÀµÄµçÄÔÉÏ¿ª·¢Ò»¸öרÃÅµÄ Xserve ¹¹½¨¼Ä·ÅÇø£¬¿ìËÙ´¦ÀíÄÇЩºÄʱµÄÈÎÎñ¡£
Java
Xcode 4 ÓµÓÐÖڶ๦ÄÜ£¬Îª Java ¿ª·¢ÈËÔ±¸³ÓèÁ˸ü¶àµÄ¿ª·¢ÄÜÁ¦¡£ÀûÓøĽøµÄ Code Sense Ë÷Òý¼° Ant ÏîĿģ°å£¬Java Óû§¿ÉÒÔ¼ÌÐøÊ¹ÓÃËûÃǵıê×¼ Java °ü£¬²¢¹¹½¨¾ßÓÐ Xcode ¹Ø¼üÉú²ú¹¦ÄܵŤ¾ß¡£Java ´úÂëÌî³äΪÄãÌṩÀàÃû¡¢·½·¨¡¢±äÁ¿¼°ÆäËû¹Ø¼üÐÅÏ¢¡£ÔÚ Xcode Öд´½¨ JavaÓ¦ÓóÌÐò±ÈÒÔÍù¸üÈÝÒס£
ÊäÈë
ÒòΪ Xcode Ö§³Ö CodeWarrior ·ç¸ñÏà¹ØÏîÄ¿²Î¿¼£¬ËùÒÔ¿ÉÒÔ±£Ö¤°Ñ CodeWarrior ÏîÄ¿Îļþ¿ìËÙ·½±ãµØ×ªÒƵ½ Xcode¡£ÒòΪ Xcode ¼æÈÝ CodeWarrior ·ç¸ñÔÚÏß±àÂë»ã±à£¬ËùÒÔ´Ó CodeWarrior µ½ Xcode ת±äµÄÏûºÄµÃµ½½µµÍ, ҲʹµÃ¿ª·¢ÈËÔ±ÊÖ¶¯µ÷ÕûÓ¦ÓóÌÐòµÄÁÙ½çÐÔÄܲ¿·Ö¡£
Æ»¹ûµçÄÔ¹«Ë¾µÄ Mac OS X ×ۺϿª·¢»·¾³Xcode Ϊ¸÷ÖÖÀàÐ굀 Mac OS XÈí¼þÏîÄ¿ÌṩÏîÄ¿±à¼¡¢ËÑË÷ºÍä¯ÀÀ£¬Îļþ±à¼£¬ÏîÄ¿¹¹½¨ºÍµ÷ÊÔÉ豸µÈ¹¦ÄÜ¡£
Xcode ¿ÉÓÃÀ´¸¨Öú¿ª·¢Ó¦ÓóÌÐò¡¢¹¤¾ß¡¢¼Ü¹¹¡¢Êý¾Ý¿â¡¢Ç¶Èë°ü¡¢ºËÐÄÀ©Õ¹ºÍÉ豸Çý¶¯³ÌÐò¡£Xcode Ö§³Ö¿ª·¢ÈËԱʹÓà C¡¢ C++¡¢Objective C¡¢ AppleScript ºÍ Java¡£
Xcode Äܹ»ºÍ Mac OS X ÀïÖÚ¶àÆäËüµÄ¹¤¾ßÐ×÷£¬ÀýÈç×ÛºÏÓû§½çÃæ½á¹¹Ó¦ÓóÌÐò£»±àÒëÆ÷Èç gcc¡¢javac ºÍjikes£»»¹Óе÷ÊÔ¹¤¾ßÈç gdb¡£
ÁíÍ⣬Äã¿ÉÒÔÓà AppleScript Studio ×éÔö¼ÓÒ»¸ö Aqua ½çÃæµ½ÏµÍ³ºÍÓ¦ÓóÌÐò½Å±¾¡¢ÃüÁîÐй¤¾ß¡¢ÒÔ¼°ÍøÂçÓ¦ÓóÌÐòÖС£ÒÔÉÏÈýÕßÎÞÂÛÈçºÎ¶¼ÄÜÔÚÈÎºÎÆ½Ì¨×éºÏ³É×îÇ¿´óµÄ½Å±¾»·¾³¡£
Ô¶³Ìµ÷ÊÔ
µ÷ÊÔÈ«ÆÁĻӦÓóÌÐò£¨±ÈÈçÓÎÏ·£©¾ßÓкܴóµÄÌôÕ½ÐÔ¡£½«µ÷ÊÔ´°¿Ú·ÅÔÚʲôλÖÃÄØ£¿ÓÐÁË Xcode 2.0 µÄ»æÍ¼Ô¶³Ìµ÷ÊÔ£¬ËùÓÐÇ¿´óµÄ Xcode µ÷ÊÔ¹¦ÄÜ£¨ÀýÈçÊý¾Ý¸ñʽ³ÌÐò¡¢Fix¡¢Continue£©¶¼¿ÉÒÔÔÚÔ¶³Ì»úÆ÷ÉÏÓÃÀ´µ÷ÊÔÓ¦ÓóÌÐò¡£ÀûÓÃÓëÔ¶³Ìµ÷ÊԽ׶εļÓÃÜÁ¬½Ó£¬Xcode ¿ÉÒÔ±£Ö¤ÄãµÄÊý¾Ý°²È«¡£
¿ª·¢
Xcode 4 ÔÊÐíÄ㿪·¢»ùÓÚiOSµÄiPad¡¢iPhone¡¢iPod Touch É豸ӦÓóÌÐò£¬Ö»ÒªÄãÓÐMac OS X Snow Leopard 10.6.2 ÒÔÉϰ汾 Mac OS ²Ù×÷ϵͳ£¬±ã¿É°²×°ios sdk£¬Èç¹ûÄãÓÐiOSÉ豸£¬±ã¿ÉÈÃXcode°ÑÓ¦ÓóÌÐò²¿Êðµ½ÄãµÄiOSÉ豸ÉÏ£¬²»È»£¬Ä㻹¿ÉÒÔʹÓÃiPhone·ÂÕæÆ÷½øÐе÷ÊÔ¡£XcodeÌṩÁËÓѺöø·½±ãµÄÓ¦ÓóÌÐò¿ª·¢»·¾³£¬ÕâÑùÄã¾Í¿ÉÒÔ¿ª·¢³öºÃµÄiOSÓ¦ÓóÌÐòÁË¡£
Èç¹ûÄãÊÇÊý¾ÝÖÐÐÄ»òÔÆ¼ÆËãITȦ×ÓµÄÈË£¬ÕâÒ»Äê¶àÀ´Ó¦¸ÃÒ»Ö±ÔÚÌýµ½ÆÕͨµÄÈÝÆ÷¡¢ÓÈÆäÊÇDocker£¬¹ØÓÚËüÃǵÄÐÂÎÅ´Óδ¼ä¶Ï¹ý¡£Docker1.0ÔÚ½ñÄê6Ô·¢²¼ºó£¬ÉùÊÆ¸üÊÇ´ïµ½ÁËǰËùδÓеij̶ȡ£
¶¯¾²Ö®ËùÒÔÕâô´ó£¬¾ÍÊÇÒòΪÐí¶à¹«Ë¾ÔÚÒÔ¾ªÈ˵ÄËٶȲÉÓÃDocker¡£ÔÚ½ñÄê7ÔµĿªÔ´´ó»á£¨OSCon£©ÉÏ£¬ÎÒÓöµ½ÁËÔçÒѽ«·þÎñÆ÷Ó¦ÓóÌÐò´ÓÐéÄâ»ú£¨VM£©×ªÒƵ½ÈÝÆ÷µÄÎÞÊýÆóÒµ¡£µÄÈ·£¬Docker¹«Ë¾Ö÷¹Ü·þÎñºÍÖ§³ÖµÄ¸±×ܲÃJames TurnbullÔÚ»áÉϸæËßÎÒ£¬ÆäÖÐÓÐÈý¼Ò´óÒøÐÐÒ»Ö±ÔÚʹÓÃDockerµÄ²âÊ԰棬ÏÖÒÑÔÚÉú²ú»·¾³ÖÐʹÓÃDocker¡£¶ÔÈκÎÔçÆÚ¼¼ÊõÀ´Ëµ£¬ÕâÎÞÒÉÊǼ«´óµÄ³äÂú×ÔÐŵľٶ¯£¬ÒªÖªµÀËüÔÚ°²È«ÖÁÉϵĽðÈڽ缸ºõÎÅËùδÎÅ¡£
Óë´Ëͬʱ£¬DockerÕâÏԴ¼¼Êõ²»½ö½öÊǺìñºÍCanonicalµÈLinux¾ÞÍ·ÑÛÀïµÄ³è¶ù¡£Î¢ÈíµÈרÓÐÈí¼þ¹«Ë¾Ò²ÔÚÈÈÁÒÓµ±§Docker¡£
ÄÇô£¬ÎªÊ²Ã´´ó¼Ò¶¼×·ÅõÈÝÆ÷ºÍDockerÄØ£¿James BottomleyÊÇParallels¹«Ë¾µÄ·þÎñÆ÷ÐéÄ⻯Ê×ϯ¼¼Êõ¹Ù£¬Ò²ÊÇһλ֪ÃûµÄLinuxÄں˿ª·¢ÈËÔ±¡£ËûÏòÎÒ½âÊÍ£¬Hyper-V¡¢KVMºÍXenµÈÐéÄâ»ú¹ÜÀí³ÌÐò¶¼¡°»ùÓÚÐéÄ⻯Ӳ¼þ·ÂÕæ»úÖÆ¡£ÕâÒâζ×Å£¬ËüÃǶÔϵͳҪÇóºÜ¸ß¡£¡±
È»¶ø£¬ÈÝÆ÷ȴʹÓù²ÏíµÄ²Ù×÷ϵͳ¡£ÕâÒâζ×ÅËüÃÇÔÚʹÓÃϵͳ×ÊÔ´·½Ãæ±ÈÐéÄâ»ú¹ÜÀí³ÌÐòÒª¸ßЧµÃ¶à¡£ÈÝÆ÷²»ÊǶÔÓ²¼þ½øÐÐÐéÄ⻯´¦Àí£¬¶øÊÇפÁôÔÚµ¥µ¥Ò»¸öLinuxʵÀýÉÏ¡£Õâ·´¹ýÀ´Òâζ×Å£¬Äã¿ÉÒÔ¡°¶ªÆúûÓÐÓõÄ99.9%µÄÐéÄâ»úÀ¬»ø£¬Ê£ÏÂÒ»¸öСÇɼò½àµÄ½ºÄÒʽÈÝÆ÷£¬ÀïÃæº¬ÓÐÄãµÄÓ¦ÓóÌÐò£¬¡±BottomleyÈçÊÇ˵¡£
¾ÝBottomleyÉù³Æ£¬Òò´Ë£¬½èÖú¾¹ýÈ«Ãæµ÷ÓŵÄÈÝÆ÷ϵͳ£¬Äã¾Í¿ÉÒÔÔÚͬһӲ¼þÉÏÓµÓÐÊýÁ¿±ÈʹÓÃXenÐéÄâ»ú»òKVMÐéÄâ»ú¶à³öËĵ½Áù±¶µÄ·þÎñÆ÷Ó¦ÓÃʵÀý¡£
ÊDz»ÊǾõµÃÌýÆðÀ´ºÜ²»´í£¿±Ï¾¹£¬Äã¿ÉÒÔÈ÷þÎñÆ÷ÔËÐжàµÃ¶àµÄÓ¦ÓóÌÐò¡£ÄÇô£¬ÎªÊ²Ã´Ö®Ç°Ã»ÓÐÈË×ö¹ýÄØ£¿Êµ¼ÊÉÏ£¬Ö®Ç°ÓÐÈË×ö¹ý¡£ÈÝÆ÷ÆäʵÊǸö¾É¸ÅÄî¡£
ÈÝÆ÷¿ÉÒÔ×·Ëݵ½ÖÁÉÙ2000ÄêºÍFreeBSD Jails¡£¼×¹ÇÎÄSolarisÒ²ÓÐÒ»¸öÀàËÆ¸ÅÄÃûΪZones£»Parallels¡¢¹È¸èºÍDockerµÈ¹«Ë¾Ò»Ö±ÔÚÖÂÁ¦ÓÚÑз¢ÖîÈçOpenVZºÍLXC£¨LinuxÈÝÆ÷£©Ö®ÀàµÄ¿ªÔ´ÏîÄ¿£¬Ö¼ÔÚÈÃÈÝÆ÷ÔËÐÐÆðÀ´Ë³³©ÓÖ°²È«¡£
µÄÈ·£¬ºÜÉÙÓÐÈËÖªµÀÈÝÆ÷£¬µ«´ó¶àÊýÈ˶àÄêÀ´Ò»Ö±ÔÚʹÓÃÈÝÆ÷¡£¹È¸è¾ÍÓÐ×Ô¼ºµÄ¿ªÔ´ÈÝÆ÷¼¼Êõlmctfy£¨Let Me Contain That For You£¬ÒâΪ¡°ÈÃÎÒÈÝÄÉÄãµÄ³ÌÐò¡±£©¡£Ö»ÒªÄãʹÓùȸèµÄijÏÄÜ£º±ÈÈçËÑË÷¡¢Gmail¡¢Google Docks»òÎÞÂÛÆäËûʲô£¬¾Í·ÖÅäÁËÒ»¸öеÄÈÝÆ÷¡£
È»¶ø£¬Docker½¨Á¢ÔÚLXCµÄ»ù´¡ÉÏ¡£ÓëÈκÎÈÝÆ÷¼¼ÊõÒ»Ñù£¬¾Í¸Ã³ÌÐò¶øÑÔ£¬ËüÓÐ×Ô¼ºµÄÎļþϵͳ¡¢´æ´¢ÏµÍ³¡¢´¦ÀíÆ÷ºÍÄÚ´æµÈ²¿¼þ¡£ÈÝÆ÷ÓëÐéÄâ»úÖ®¼äµÄÇø±ðÖ÷ÒªÔÚÓÚ£¬ÐéÄâ»ú¹ÜÀí³ÌÐò¶ÔÕû¸öÉ豸½øÐгéÏó´¦Àí£¬¶øÈÝÆ÷Ö»ÊǶԲÙ×÷ϵͳÄں˽øÐгéÏó´¦Àí¡£
Õâ·´¹ýÀ´Òâζ×Å£ºÐéÄâ»ú¹ÜÀí³ÌÐòÄÜ×öÈÝÆ÷×ö²»Á˵ÄÒ»¼þʾÍÊÇ£¬Ê¹Óò»Í¬µÄ²Ù×÷ϵͳ»òÄںˡ£ËùÒÔ£¬¾ÙÀý˵£¬Äã¿ÉÒÔʹÓÃ΢ÈíAzure£¬Í¬Ê±ÔËÐÐWindows Server2012µÄʵÀýºÍSUSE LinuxÆóÒµ¼¶·þÎñÆ÷µÄʵÀý¡£ÖÁÓÚDocker£¬ËùÓÐÈÝÆ÷¶¼±ØÐëʹÓÃͬÑùµÄ²Ù×÷ϵͳºÍÄںˡ£
ÁíÒ»·½Ã棬Èç¹ûÄãÖ»ÊÇÏëÈþ¡¿ÉÄܶàµÄ·þÎñÆ÷Ó¦ÓÃʵÀýÔÚ¾¡¿ÉÄÜÉÙµÄÓ²¼þÉÏÔËÐУ¬¿ÉÄܲ»´ó¹ØÐÄÔËÐжà¸ö²Ù×÷ϵͳÐéÄâ»ú¡£ÒªÊÇͬһӦÓóÌÐòµÄ¶à¸ö¸±±¾ÕýÊÇÄãÐèÒªµÄ£¬ÄÇôÄã»áϲ»¶ÉÏÈÝÆ÷¡£
¸ÄÓÃDockerÕâÒ»¾Ù´ëÓÐÍûÿÄêΪÊý¾ÝÖÐÐÄ»òÔÆ¼ÆËã·þÎñÌṩÉ̽ÚÊ¡ÊýǧÍòÃÀÔªµÄµçÁ¦ºÍÓ²¼þ³É±¾¡£ËùÒÔÄѹÖËüÃÇÔÚÒ»ÎÑ·äµØ¾¡¿ì²ÉÓÃDocker¡£
Docker´øÀ´ÁË֮ǰ¼¼ÊõËùûÓеöÐÂÌØµã¡£µÚÒ»ÊÇ£¬Óë֮ǰµÄ·½·¨Ïà±È£¬DockerÈÃÈÝÆ÷²¿ÊðºÍʹÓÃÆðÀ´¸üÈÝÒס¢¸ü°²È«¡£´ËÍ⣬ÓÉÓÚDockerÓëÆäËûÈÝÆ÷ÁìÓòµÄ¾Þ뢽øÐÐÁ˺Ï×÷£¬°üÀ¨Canonical¡¢¹È¸è¡¢ºìñºÍParallels£¬¹²Í¬¿ª·¢Æä¹Ø¼üµÄ¿ªÔ´×é¼þlibcontainer£¬ËüΪÈÝÆ÷´øÀ´ÁËÆÈÇÐÐèÒªµÄ±ê×¼»¯¡£
Óë´Ëͬʱ£¬¹ã´ó¿ª·¢ÈËÔ±¿ÉÒÔʹÓÃDocker·â×°¡¢½»¸¶ºÍÔËÐÐÈκÎÓ¦ÓóÌÐò£¬Ó¦ÓóÌÐò³ÉΪÇáÐ͵ġ¢¿ÉÒÆÖ²µÄ¡¢×Ô¸ø×Ô×ãµÄLXCÈÝÆ÷£¬¿ÉÒÔÔÚÈκεط½ÔËÐС£ÕýÈçBottomley¸æËßÎÒ£¬¡°ÈÝÆ÷ÈÃÄãÁ¢¼´ÏíÓÐÓ¦ÓóÌÐò¿ÉÒÆÖ²ÐÔ¡£¡±
Êг¡Ñо¿¹«Ë¾451 ResearchµÄ×ÊÉî·ÖÎöʦJay Lyman²¹³äµÀ£º¡°ÆóÒµ×éÖ¯Á¦ÇóÒÔÒ»ÖÖ¸ßЧ¡¢±ê×¼»¯¡¢¿ÉÖØ¸´µÄ·½Ê½£¬ÈÃÓ¦ÓóÌÐòºÍ¹¤×÷¸ºÔظüÒ×ÓÚÒÆÖ²ºÍ·Ö·¢£¬¶øÓÐʱºÜÄÑ×öµ½Õâµã¡£ÕýÈçGitHubͨ¹ý¹²ÏíÔ´´úÂëÀ´´Ù½øºÏ×÷ºÍ´´ÐÂÄÇÑù£¬Docker Hub¡¢Official ReposºÍÉÌÒµÖ§³ÖÒ²ÔÚ°ïÖúÖÚ¶àÆóҵͨ¹ý¸Ä½ø·â×°¡¢²¿ÊðºÍ¹ÜÀíÓ¦ÓóÌÐòµÄ·½Ê½£¬Ó¦¶ÔÕâ¸öÄÑÌâ¡£¡±
×îºóµ«²¢·Ç×î²»ÖØÒªµÄ£¬DockerÈÝÆ÷Ò×ÓÚ²¿Êðµ½Ôƶˡ£ÕýÈçBen Lloyd PearsonÔÚopensource.comÉÏдµÀ£º¡°Docker²ÉÓÃÁËÒ»ÖÖÌØ±ðµÄ·½Ê½£¬ÒÔ±ã¿ÉÒÔÕûºÏµ½´ó¶àÊýDevOps£¨¿ª·¢ÔËÓª£©Ó¦ÓóÌÐòµ±ÖУ¬°üÀ¨Puppet¡¢Chef¡¢VagrantºÍAnsible£¬»òÕß¿ÉÒÔ¶À×ÔʹÓã¬ÒÔ¹ÜÀí¿ª·¢»·¾³¡£Ö÷ÒªÂôµãÊÇ£¬Ëü¼ò»¯ÁËͨ³£ÓÉÁíÍâÕâЩӦÓóÌÐòÖ´ÐеĺöàÈÎÎñ¡£¾ßÌåÀ´Ëµ£¬ÓÐÁËDocker£¬ÈËÃǾͿÉÒԴÓë»î¶¯·þÎñÆ÷һģһÑùµÄ±¾µØ¿ª·¢»·¾³£¬´Óͬһ¸öÖ÷»úÔËÐжà¸ö¿ª·¢»·¾³£¨Ã¿¸ö¿ª·¢»·¾³ÓжÀÌØµÄÈí¼þ¡¢²Ù×÷ϵͳºÍÅäÖã©£¬ÔÚеĻò²»Í¬µÄ·þÎñÆ÷ÉϲâÊÔÏîÄ¿£¬ÒÔ¼°ÈÃÈκÎÈ˶¼¿ÉÒÔÔÚÉèÖÃһģһÑùµÄÇé¿öÏ´¦ÀíͬһÏîÄ¿£¬ÎÞÂÛ±¾µØÖ÷»ú»·¾³ÔõÑù¡£¡±
¼ò¶øÑÔÖ®£¬DockerÄÜΪÄã×öµÄÊÂÇé¾ÍÊÇ£ºÏà±ÈÆäËû¼¼Êõ£¬ËüÄÜÈøü¶àÊýÁ¿µÄÓ¦ÓóÌÐòÔÚͬһӲ¼þÉÏÔËÐУ»ËüÈÿª·¢ÈËÔ±Ò×ÓÚ¿ìËÙ¹¹½¨¿ÉËæÊ±ÔËÐеÄÈÝÆ÷»¯Ó¦ÓóÌÐò£»Ëü´ó´ó¼ò»¯Á˹ÜÀíºÍ²¿ÊðÓ¦ÓóÌÐòµÄÈÎÎñ¡£×ܶøÑÔÖ®£¬ÎÒÄÜÀí½â×÷ΪһÏîÆóÒµ¼¶¼¼Êõ£¬DockerΪºÎÒ»ÏÂ×Ӵں졣ÎÒÖ»ÊÇÏ£ÍûËü²»¸ºÖÚÍû£¬·ñÔòÍâÍ·»áÓÐһЩÓÇÐÄâçâçµÄCEOºÍCIO¡£
Ó¢ÎÄ£ºhttp://www.zdnet.com/what-is-docker-and-why-is-it-so-darn-popular-7000032269/
ÒÔÉϾÍÊǹØÓÚDockerµ½µ×ÊÇʲô£¿DockerΪʲôËüÕâô»ð£¡µÄ·þÎñÆ÷ά»¤½Ì³Ì·ÖÏí£¬¸ü¶àµçÄԽ̳ÌÇëÒÆ²½µ½>>µçÄÔ½Ì³ÌÆµµÀ¡£
- ÆÀÂÛÁÐ±í£¨ÍøÓÑÆÀÂÛ½ö¹©ÍøÓѱí´ï¸öÈË¿´·¨£¬²¢²»±íÃ÷±¾Õ¾Í¬ÒâÆä¹Ûµã»ò֤ʵÆäÃèÊö£©
-
