DockOne¼¼Êõ·ÖÏí£¨Áù£©£ºÐÂÀËSCE Docker×î¼Ñʵ¼ù
±¾ÎÄÖ÷Òª´ÓIaaSÊӽǣ¬·ÖÏíSCEͨ¹ýÔõÑùµÄʵ¼ùÀ´Ö§³ÖÉϲã²úÆ·ÏßµÄÈÝÆ÷»¯ËßÇó¡£Ê×ÏÈÁÄÁÄÎÒÃÇΪʲô×öÖ§³ÖDocker¼¼ÊõÕâ¼þÊÂÇ飬Ȼºó½éÉÜÏÂDockerÖ§³Öʵ¼ùµÄ·½·½ÃæÃæ¡£×îºó¸ø³öʵ¼ù¹ý³ÌÖÐ×ܽá³öÀ´µÄһЩ¾Ñé¼°²È¹ýµÄһЩ¿Ó£¬ÒÔ¼°ºóÐøÐèÒªÉî¸ûµÄµã¡£
Ïȼٶ¨½ñÍíµÄÌýÖÚÖÁÉÙÒѾС·¶Î§Ê¹ÓùýDocker¼¼Êõ£¬ÊìϤÏà¹Ø¸ÅÄî¼°ÔÀí¡£
ǰ¼¸ÆÚDockOne¼¼Êõ·ÖÏíÒѾÕë¶ÔDockerµÄ¼¸¸ö¼¼ÊõÒªµã×öÁËÉîÈë·ÖÎö£¬ËùÒÔÎÒ½ñÍíÖ÷Òª´ÓIaaSÊӽǣ¬·ÖÏíSCEͨ¹ýÔõÑùµÄʵ¼ùÀ´Ö§³ÖÉϲã²úÆ·ÏßµÄÈÝÆ÷»¯ËßÇó¡£
ΪºÎÖ§³ÖDocker¼¼Êõ
ΪºÎ×öÕâ¼þÊÂ
ÏȽéÉÜÏÂÎÒÀËSCE¡£SCEÊÇÐÂÀËÑз¢ÖÐÐÄÖ÷ÍÆË½ÓÐÔÆ²úÆ·£¬ÒѾ¸²¸Çµ½¹«Ë¾ÄÚ²¿ËùÓвúÆ·Ïß¡£»ùÓÚOpenStack¶¨ÖÆ£¬ÕûºÏÁ˹«Ë¾Í¨µÀ»ú¡¢CMDB£¬Îª¹«Ë¾ÄÚ²¿È«²úÆ·ÏßÌṩIaaS·þÎñ¡£¹«ÓÐÔÆ°æ±¾½üÆÚ¿ªÊ¼Äڲ⡣
Ê×ÏÈ£¬OpenStackÓëDockerÌìÉú»¥²¹¡£
OpenStackÃæÏòIaaS£¬ÒÔ×ÊԴΪÖÐÐÄ£¬´ò°üOS£»Äܹ»Ìṩ³ÉÊìµÄ×ÊÔ´ÏÞÖÆÓë¸ôÀëÄÜÁ¦£»¶àOSϵÁÐÖ§³Ö£»
DockerÔòÃæÏòPaaS£¬ÒÔ·þÎñΪÖÐÐÄ£¬´ò°üservice£»Çá¿ìºÃÊ¡£»
ĿǰIaaSÒµ½çÖ÷ÒªÒÔÌá¹©ÔÆÖ÷»ú·þÎñΪÖ÷£¬ÓÐ×ųÉÊìµÄ×ÊÔ´ÏÞÖÆ¡¢×ÊÔ´¸ôÀëÄÜÁ¦£¬µ«±¾ÖÊÉÏÊǶÔOSµÄ´ò°ü£¬ÎÞ·¨Âú×ãÔÚÓ¦¶Ô·åÖµ·ÃÎÊ¡¢¿ìËÙÉìËõ¡¢¿ìËÙ²¿ÊðµÈ·½ÃæËßÇó¡£¶ødockerÓëÉú¾ãÀ´µÄÌØÐÔ¡±Çá¡¢¿ì¡¢ºÃ¡¢Ê¡¡°£¬Ôòǡǡ¿ÉÒÔÃÖ²¹IaaSÔÚ´Ë·½ÃæµÄ²»×ã¡£µ±È»OpenStackÉçÇøÎªÁËÄܹ»¸üºÃµÄÖ§³ÖdockerÒ²³¢ÊÔ×öÁ˺ܶàŬÁ¦£¬Õâ¸öºóÃæ»á½²µ½¡£
Æä´Î£¬SCEÔËά¹ý³Ì·¢ÏÖ£¬²úÆ·Ïß¶ÔÈÝÆ÷¼¼ÊõÐèÇóÏ൱ÍúÊ¢¡£
¿ìËÙ²¿Êð£»
¿ìËÙÆðÍ£¡¢´´½¨ÓëÏú»Ù£»
Ò»ÖµĿª·¢²âÊÔ»·¾³£»
ÑÝʾ¡¢ÊÔÓû·¾³£»
½â¾öÉ豸³É±¾£¬³ä·ÖÀûÓÃ×ÊÔ´£»
¼¼Êõ·½°¸¿ìËÙÑéÖ¤£»
¸ü¶à......
IaaS¶Ì°å+ÐèÇóÇý¶¯£¬ÈÃÎÒÃÇÒâʶµ½£ºSCEºÜÓбØÒªÒ²ºÜÊʺÏ×öÖ§³ÖÈÝÆ÷¼¼ÊõÕâ¼þÊ¡£
IaaS³§ÉÌDockerÖ§³Ö¸Å¿ö
µ÷ÑзÖÎöÁ˼¸¸öIaaSȦ×ӱȽÏÓдú±íÐԵľÞÍ·¼°Ð¹󣬴ӵ÷Ñнá¹û¿ÉÒÔ¿´³ö£¬Ä¿Ç°IaaS³§É̶ÔDockerµÄÖ§³Ö»¹±È½Ï±¡Èõ¡£
Ö»Óа¢ÀïÔÆÎªDockerÓû§¶à×öÁËһЩÊÂÇ飬ÌṩÁ˰¢Àï¹Ù·½Registry¡£µ«Ã»ÓÐÌṩ½ÏеÄÖ§³ÖDockerµÄÔÆÖ÷»ú£¬Ö»ÓÐÒ»¸öµÚÈý·½ÌṩÁËÒ»¸öºÜÀϵľµÏñ£¬¼¸ºõûÓпÉÓÃÐÔ¡£
UnitedStackºÍÇàÔÆÖ»ÌṩÁËCoreOS¡£¶øÊµ¼ÊÉÏ£¬CoreOSµÄÓû§½ÓÊܶȺܵ͡£ÎÒÃÇSCEÒ²³¢ÊÔ¹ýÌṩCoreOS£¬µ«ÓÉÓں͹«Ë¾CentOSϵͳʹÓ÷½Ê½²îÒìÌ«´ó£¬»ù±¾Ã»ÓвúÆ·ÏßÔ¸ÒâʹÓò¢Ç¨ÒƵ½CoreOSÉÏÃæÀ´¡£
DockerÖ§³Öʵ¼ùµÄ·½·½ÃæÃæ
»ùÓÚÒÔÉÏÐèÇó¼°µ÷ÑУ¬SCEÖ÷ÒªÔÚRegistry¡¢Hub¡¢Ö§³ÖDockerµÄÐéÄâ»ú¾µÏñ¡¢ÈÕÖ¾´æ´¢Óë¼ìË÷¡¢ÍøÂç¼°´æ´¢Çý¶¯µÈ·½Ãæ×öÁËһЩʵ¼ù£¬ÖÂÁ¦ÓÚÈòúÆ·ÏßÓû§¸ü·½±ã¸ßЧµÄʹÓÃDocker¼¼Êõ£¬Íƶ¯DockerÔÚ¹«Ë¾ÄÚµÄʹÓá£
Registry+Hub·½°¸
Registryºó¶Ë´æ´¢·½°¸·½Ã棬Æäʵ´ó¼ÒÒÑ·ÖÏí½Ï¶à£¬´ó¶àÊÇÓÃdev¼°s3¡£SCEµ±È»Ê¹ÓÃ×Ô¼ÒÐÂÀËS3ÁË£¬µ±Ê±µÄµÚÒ»¸ö·½°¸¾ÍÊÇDocker
Registry sinastorage driver + sina s3¡£¿É¿¿ÐÔÐÔ×ÔÈ»²»ÓöàÑÔ£¬µ«ÓÉÓÚÒÀÀµstorage
driver£¬×·²éÎÊÌâ¹ý³ÌÖУ¬µ÷ÊÔ¼°Î¬»¤¶¼±È½ÏÂé·³£¬²¢ÇÒ¸üкó»¹ÐèÒª×Ô¶¯¹¹½¨Ð¾µÏñ¡£
¼ÈÈ»×Ô¼ÒÌṩ¿É¿¿ÔÆÓ²ÅÌ£¬ÎªÊ²Ã´²»Îª×Ô¼ºÌṩ·þÎñÄØ¡£¹û¶Ï½«ÈÌÁËÀϱÇ×Óʱ¼äµÄ·½°¸Ò»¸ÄΪÁËlocalstorage
+ SCEÔÆÓ²ÅÌ£¬²»ÔÙÒÀÀµdriverµÄÈÕ×ÓÊæ·þ¶àÁË£¬ÁíÍ⻹ÄÜÏíÊܵ½ÔÆÓ²Å̵Äsnapshot¡¢resizeµÈ¸ß¼¶ÌØÐÔ¡£
ËùÒÔ£¬¶ÔÓÚÕýÔÚRegistry storage backendÑ¡Ð͵ÄÅóÓÑ£¬¸ø³öһЩ½¨ÒéÒÔ¹©²Î¿¼£º
¶Ô¾µÏñ´æ´¢¿É¿¿ÐÔÎÞÒªÇóµÄʹÓó¡¾°£¬½¨ÒéÖ±½ÓʹÓÃdev£»
¶Ô¾µÏñ´æ´¢¿É¿¿ÐÔÒªÇó½Ï¸ßµÄʹÓó¡¾°£¬Èç¹ûÄãÊÇÔÚIaaSÉÏÅÜ£¬Ç¿ÁÒ½¨ÒéʹÓÃlocalstorage
+ ÔÆÓ²ÅÌ·½°¸£»
¶Ô¾µÏñ´æ´¢¿É¿¿ÐÔÒªÇó½Ï¸ßµÄʹÓó¡¾°£¬Èç¹ûÄãûÔÚIaaSÉÏÅÜ£¬¿ÉÒÔÄõã´óÑó³öÀ´ÓÃS3µÈ£»
¶Ô¾µÏñ´æ´¢¿É¿¿ÐÔÒªÇó½Ï¸ßµÄʹÓó¡¾°£¬Èç¹ûÄãûÔÚIaaSÉÏÅÜ£¬ÓÖ²»Ï뻨Ǯ£¬ÏëÓÃ×Ô¼Ò´æ´¢£¬¾ÍÖ»ÄÜд¸ö×Ô¼ÒµÄdriverÁË¡£ÎҲŲ»»á¸æËßÄ㣬ÕâÖÖÇé¿öÅŲéÎÊÌâÓжàôÔãÐÄ¡£
ΪÁ˸ø²úÆ·ÏßÌṩ±ã½ÝµÄ¾µÏñ²é¿´¼°¼ìË÷·þÎñ£¬SCEÓë΢²©Æ½Ì¨ºÏ×÷£¬¹²Í¬ÍƳöÁËSCE docker hub£¬»ùÓÚdocker-registry-frontend¿ª·¢ÊµÏÖ¡£ÓëSCEÏÖÓзþÎñ´òͨ£¬²¢Ö§³Örepo¡¢tag¡¢ÏêϸÐÅÏ¢¡¢DockerfileµÄ²é¿´¡¢¼ìË÷Óë¹ÜÀíµÈ¡£
ΪÁ˲úÆ·Ï߸ü·½±ãʹÓÃDocker¹Ù·½¾µÏñ£¬ÎÒÃǵÄ×Ô¶¯Í¬²½¹¤¾ß»áÒÀ¾Ý¾µÏñ×¢²á±í£¬ÖÜÆÚÐÔµÄ×Ô¶¯Í¬²½Docker¹Ù·½¾µÏñµ½SCE·Ö²¼Ê½ºó¶Ë´æ´¢¼¯Èº£¬Ê¹µÃ²úÆ·ÏßÓû§¿ÉÒÔͨ¹ýÄÚÍø¿ìËÙpullµ½Docker¹Ù·½¾µÏñ¡£
ÓÉÓÚSCE²»±£Ö¤Ò²²»¿ÉÄܱ£Ö¤Docker Hub¹Ù·½¾µÏñµÄ°²È«ÐÔ£¬ËùÒÔ½¨Òé²úÆ·Ïß×îºÃʹÓÃSCE¹Ù·½·¢²¼µÄimage»ò¹¹½¨×Ô¼ºµÄbaseimage¡£
¶ÔÓÚ²úÆ·Ïß˽ÓÐRegistryµÄÐèÇó£¬SCEÒ²ÌṩÁËÏàÓ¦µÄÒ»¼ü¹¹½¨¹¤¾ß¼¯¡£
CentOS 7 + Docker¾µÏñ
SCEÔÚDockerÖ§³Ö·½ÃæÖ÷Òª×öÁËÈçÏÂһЩ¹¤×÷£º
1£©¼¯³ÉDocker 1.5¡¢Docker-Compose 1.2»·¾³£»
2£©Ìṩdocker-ip¡¢docker-pid¡¢docker-enterµÈcli£¬¼ò»¯Óû§Ê¹Óã»
3£©ÓëDIPºÏ×÷£¬Ö§³Örsyslog-kafka£¬½â¾öÈÕÖ¾¼à¿Ø¼ìË÷ÎÊÌ⣻
4£©Óë΢²©Æ½Ì¨ºÏ×÷£¬Ìṩmuti-if-adapter¹¤¾ß£¬½â¾öͬһÖ÷ËÞ»úÏàͬ·þÎñ¶Ë¿Ú³åÍ»µÄÎÊÌ⣻
5£© ¸ü¶à......
SCEÉÏʹÓÃDocker
ÓÐÁËÈçÉϹ¤×÷Ö§³Å£¬ÔÚSCEÉÏʹÓÃdocker¾Í±äµÃÏ൱±ã½Ý¡£

ÈÕÖ¾·½°¸
ĿǰSCEÖ÷ÒªÖ§³Ö3ÖÐÈÕÖ¾·½°¸£º
app´òcontainer logfile£»
app´òstdout£¬stderr£»
app+agent´òÔ¶¶Ë£»
ǰÁ½ÖÖ·½°¸ÊÊÓÃÓÚ¶ÔÈÕÖ¾ÒªÇ󲻸ߵÄʹÓó¡¾°£¬È翪·¢²âÊÔ¡£
µÚÈýÖÖ·½°¸ÔòÊÊÓÃÓÚÕæÊµµÄÒµÎñ³¡¾°¡¢Éú²ú»·¾³£¬ÕâЩ³¡¾°¶ÔÈÕÖ¾³Ö¾Ã»¯¡¢¼ìË÷¡¢¼à¿Ø¡¢¸æ¾¯µÈ·½Ãæ¶¼ÓнÏÇ¿ÐèÇó£»
Docker 1.6µÄsyslog driverĿǰ¿ÉÓÃÐÔ¡¢Ò×ÓÃÐÔ¶¼»¹²»Ì«ÀíÏ룬µ«ÖµµÃ¹Ø×¢¡£
app+rsyslog-kafka·½°¸
ÉÏÃæÌáµ½µÄµÚÈýÖÖÈÕÖ¾·½°¸£¬ÎÒÃÇÊÇͨ¹ýELK·½°¸ÊµÏֵġ£
¼Ü¹¹Í¼

ÈÕÖ¾Á÷
app >>> container rsyslog-kafka
>>> kafka >>> logstash >>>
elasticsearch >>> kibana
ÒµÎñÁ÷
²úÆ·Ïß×ßDIPʵʱÈÕÖ¾·ÖÎö·þÎñ½ÓÈ룻
DIPÉóÅú£»
config_web»ùÓÚDocker Swarm api¶¯Ì¬À©Õ¹logstash¼¯Èº£»
2. ¸ø³öÓû§½ÓÈëËùÐèÊý¾Ý£¬ÈçKafka broker¡¢topic£»
²úÆ·ÏßÒÀ¾Ý½ÓÈëÊý¾Ý´´½¨container£»
docker run -d -e KAFKA_ADDR=... -e KAFKA_TOPIC=... -e LOG_FILE=... -v
$(pwd)/kafka_config.sh:${SOME_DIR}/kafka_config.sh ... |
×ñÊØSCE log½ÓÈë¹æ·¶£¬containerÖеÄrun.shÐèÒªµ÷ÓÃSCEÌṩ¸øµÄÈÕÖ¾ÅäÖù¤¾ßdocker/tools/rsyslog_config.sh£»
3. rsyslog_config.sh»á°´Ðè×Ô¶¯ÅäÖÃrsyslog£¬½ÓÈë¹ý³Ì¼°Ï¸½Ú¶Ô²úÆ·Ïß͸Ã÷£»
ÍøÂçģʽ
Ŀǰ²úÆ·Ïß´ó¶àʹÓõϹÊÇbridgeºÍhost£¬ËäÈ»ÕâÁ½ÖÖģʽ¶¼´æÔÚһЩÎÊÌâ¡£
Á½ÕßËä´æÔÚһЩÎÊÌ⣬µ«»¹ÊÇÄܹ»Âú×ãÖÐС¹æÄ£¼¯ÈºÍøÂçÐèÇóµÄ¡£
µ«¹æÄ£ÉÏÀ´ºó£¬ÉÏÃæÁ½ÖÖģʽ¾Í²»ÊÊÓÃÁË¡£¶ÔÓÚ´ó¹æÄ£ÍøÂç½â¾ö·½°¸£¬ÎÒÃǺóÐø½«»ý¼«¸ú½ø£¬Ö÷Òª¼Æ»®µ÷ÑÐovs/weave/FlannelµÈ·½°¸¡£
Libnetwork driver³ýÁËÆ½ÒƹýÀ´µÄbridge¡¢host¡¢null£¬»¹ÌṩÁËremote£¬ÒÔÖ§³Ö·Ö²¼Ê½bridge£»ºóÐø¼Æ»®Ìṩ¸ü¶àdriverÒÔ½â¾öĿǰµÄÍøÂçÎÊÌ⣬ֵµÃÖØµã¹Ø×¢¡£
ÁíÍ⣬¶ÔÓÚ²úÆ·ÏßÌá³öµÄһЩÓÐÒâÒåµÄÐèÇó£¬Èç΢²©Æ½Ì¨Ìá³öµÄ¡°Í¬Ò»Ö÷ËÞ»úÏàͬ·þÎñ¶Ë¿Ú³åÍ»µÄÎÊÌ⡱£¬SCE»áºÍ²úÆ·ÏßÒ»µÀ»ý¼«Ì½Ë÷ÏàÓ¦µÄ½â¾ö·½°¸£»
´æ´¢Çý¶¯Ñ¡ÐÍ
Õⲿ·ÖÖ÷ÒªÊÇ¿ªÊ¼Ê±£¬´æ´¢Çý¶¯·½°¸Ñ¡Ð͵ÄһЩ¿¼ÂÇ¡£
aufs¡£Docker×î³õ²ÉÓõÄÎļþϵͳ£¬Ò»Ö±Ã»ÄܺÏÈëÄںˣ¬Òò´Ë¼æÈÝÐԲ½öÓÐUbuntuÖ§³Ö¡£ÐèÒªÓû§×Ô¼º±àÒ룬ʹÓÃÆðÀ´±È½ÏÂé·³£»
btrfs¡£Êý¾Ý²¢Ã»ÓÐÖ±½Ó±»Ð´Èë¶øÊÇÏÈÊDZ»Ð´Èëµ½ÈÕÖ¾£¬ÔÚÓÐÁ¬ÐøµØÐ´ÈëÁ÷µÄÇé¿öÏ£¬ÐÔÄÜ¿ÉÄÜ»áÕ۰룻
overlayfs¡£Ò»ÖÖеÄunionfs£¬µ«¶ÔÄں˰汾ҪÇóÌ«¸ß£¬ÐèÒªkernel
3.18+£»
devicemapper¡£Ä¬ÈÏdriver¡£¿ÉÒÔ˵ÊÇĿǰһ°ãÇé¿öϵÄ×îÓÅ·½°¸ÁË¡£SCE¾ÍÊDzÉÓôËdriver¡£
devicemapperÏà¹ØµÄһЩʵ¼ù¼°¿Ó»áÔÚÉÔºóÌáµ½¡£
¼¯Èº¹ÜÀí
ĿǰSCEÖ÷ÒªÍÆ¼ö3¸ö¼¯Èº¹ÜÀí¹¤¾ß£ºShipyard¡¢Swarm¡¢Kubernetes¡£
Shipyard
Ö§³Ö¿çÖ÷»úµÄcontainer¼¯Èº¹ÜÀí
ÇáÁ¿¼¶£¬Ñ§Ï°³É±¾µÍ
Ö§³Ö¼òµ¥µÄ×ÊÔ´µ÷¶È
Ö§³ÖGUIͼ±íչʾ
Ö§³ÖʵÀýºáÏòÀ©Õ¹
Swarm
Docker¹Ù·½Ö÷ÍÆµÄ¼¯Èº¹ÜÀí·½°¸
Ïà¶ÔÇáÁ¿¼¶£¬Ñ§Ï°³É±¾½ÏµÍ
Ö§³Ö¶àdiscovery backend
·á¸»µÄ×ÊÔ´µ÷¶ÈFilter
Rest API£¬ÍêÈ«¼æÈÝDocker API
ÉÐÓÐһЩ¿Ó
Ŀǰ²úÆ·Ïß×îÒ×½ÓÊÜ£¬ÇÒʹÓÃÂÊ×î¶àµÄ·½°¸
Kubernetes
Google Borg/Omega¿ªÔ´ÊµÏÖ
¸üеü´úÌ«¿é£¬¼Ü¹¹¼°ÊµÏÖÏà¶Ô¸´ÔÓ£¬Ñ§Ï°³É±¾¡¢¸ÄÔì³É±¾½Ï¸ß
×ÊÔ´µ÷¶È
À©ÈÝËõÈÝ
¹ÊÕÏ×Ô¶¯»Ö¸´
¶àʵÀý¸ºÔؾùºâ
¶ÔOpenStackÖ§³Ö½ÏºÃ
¸ú½øÖÐ
ÈýÕ߸÷ÓÐÓÅÁÓ£¬¾ßÌåʹÓÃÄĸö¹¤¾ß»¹ÊÇÐèÒªÒÀ¾Ý¾ßÌåµÄÒµÎñÐèÒª¶ø¶¨£¬¶ø²¢²»ÊÇ˵KubernetesÇ¿´ó¾ÍÒ»¶¨ÊǺõġ£
¸ù¾ÝĿǰ²úÆ·ÏßʹÓü°·´À¡À´¿´£¬swarm»¹ÊǸüÈÝÒ×±»½ÓÊÕһЩ¡£
ÓëOpenStack¼¯³É½øÕ¹
½ÓÏÂÀ´£¬ÎÒÃÇÊÇIaaS£¬ËùÒÔ±ØÐëҪ˵һÏÂÓëOpenStack¼¯³É½øÕ¹¡£ÈçºÎÓëOpenStack¸üºÃµÄ¼¯³É£¬³ä·Ö·¢»ÓÁ½ÕßÓÅÊÆ£¬ÊÇÎÒÃÇÒ»Ö±¹Ø×¢µÄÒ»¸öµã¡£
ĿǰÖ÷ÒªÓÐÈýÖÖ·½°¸£º
nova + docker driver£»
heat + docker driver£»
magnum£»
Nova driver¼°heat driverÁ½ÖÖ·½°¸£¬¶¼´æÔÚһЩӲÉË¡£Èçnova driver·½°¸°Ñcontainerµ±×÷VM´¦Àí£¬»áÎþÉüµôDockerµÄËùÓи߼¶ÌØÐÔ£¬ÕâÏÔÈ»ÊDz»Äܱ»½ÓÊյģ»ÓÖÈçheat
driver·½°¸£¬Ã»ÓÐ×ÊÔ´µ÷¶È£¬´´½¨Ê±±ØÐëÒªÖ¸¶¨host£¬ÕâÏÔȻֻÄÜÊÊÓÃÓÚС΢¹æÄ£¡£
OpenStackÉçÇø±¾Äê³õÖÕÓÚ¿ªÊ¼·¢Á¦CaaSÐÂÏîÄ¿magnum¡£Í¨¹ý¼¯³ÉHeat£¬À´Ö§³ÖʹÓÃDockerµÄ¸ß¼¶¹¦ÄÜ£»¿ÉÒÔ¼¯³ÉSwarm¡¢Gantt»òMesos£¬ÊµÏÖDocker¼¯Èº×ÊÔ´µ÷¶È£¨Ïּƻ®ÊÇʹÓÃswarm×öµ÷¶È£©£»Magnum»¹½«ÓëKubernetesÉî¶ÈÕûºÏ¡£
MagnumÒÑÕÒ×¼´ËǰÁ½ÖÖ½â¾ö·½°¸µÄÍ´µã£¬²¢ÕýÔÚÓÃÇ¡µ±µÄ·½Ê½½â¾ö´ËÎÊÌâ¡£·Ç³£ÖµµÃ¸ú½ø¡£
ÁíÍ⣬´Ë´Îθ绪OpenStack SummitÉÏ£¬OpenStack»ù½ð»á³ýÁË»¹±íʾ½«»ý¼«ÍƽøMagnum×ÓÏîÄ¿£¬ÔÚ¼¼ÊõÉÏʵÏÖÈÝÆ÷ÓëOpenStackµÄÉî¶ÈÕûºÏ¡£
ʵ¼ù¾Ñé&²È¹ýµÄ¿Ó
ÏÂÃæ½éÉܵÄÄÚÈÝ£¬´ó¶àÊDzúÆ·ÏßÎʵ½µÄ£¬ÒÔ¼°SCEÔÚDockerʵ¼ù¹ý³ÌÖÐ×ܽá³öÀ´µÄ¾Ñé½Ìѵ£¬¶¼ÒÑÎĵµ»¯µ½SCE¹Ù·½Docker
wiki¡£´ÓSCE Docker wikiÀïժȡÁËһЩʵ¼ù¾Ñé&²È¹ýµÄ¿Ó£¬Ïë±Ø´ó¼Ò»ò¶à»òÉÙÒѾʵ¼ù¹ý»ò²È¹ý¡£Èç¹û»¹Ã»Óöµ½ÕâЩÎÊÌ⣬ϣÍûÎÒÃǵÄÕâЩ¾Ñé×ܽáÄܶÔÄãÓÐËù°ïÖú¡£
¾µÏñÖÆ×÷·½Ãæ
½¨ÒéÓÃDockerfile build¾µÏñ£¬¾µÏñÎĵµ»¯£»
DockerfileÖУ¬valueǧÍò±ð¼Ó""¡£ÒòΪdocker»á°ÑÄãµÄ""×÷ΪvalueµÄÒ»²¿·Ö£»
×îС»¯¾µÏñ´óС£¬·Ö²ãÉè¼Æ£¬¾¡Á¿¸´Óã»
ÔËÐÐÈÝÆ÷·½Ãæ
Ò»ÈÝÆ÷Ò»½ø³Ì£¬±ãÓÚ·þÎñ¼à¿ØÓë×ÊÔ´¸ôÀ룻
²»½¨ÒéÓÃlatest
¶ÔÓÚÌṩ·þÎñµÄcontainer£¬½¨ÒéÑø³É¼Ó--restartµÄϰ¹ß
Êý¾Ý´æ·Å·½Ãæ
½¨Òé²ÉÓÃvolume¹ÒÔØ·½Ê½
²»ÒÀÀµhostĿ¼£¬±ãÓÚ¹²ÏíÓëÇ¨ÒÆ£»
×ÊÔ´ÏÞÖÆ·½Ãæ
cgroupÔÊÐí½ø³Ì³¬ÏÞʹÓ㬼´£ºÔÚÓпÕÓà×ÊÔ´µÄÇé¿öÏ£¬ÔÊÐíʹÓó¬³ö×ÊÔ´ÏÞÖÆµÄ¸ü¶à×ÊÔ´¡£
cgroup½öÔÚ±ØÒªÊ±£¨×ÊÔ´²»×ãʱ£©ÏÞÖÆ×ÊԴʹÓ㬱ÈÈ磺µ±Èô¸É½ø³Ìͬʱ´óÁ¿µØÊ¹ÓÃCPU¡£
cpu share enforcement½ö»áÔÚ¶à¸ö½ø³ÌÔËÐÐÔÚÏàͬºËÉϵÄÇé¿öÏ·¢Éú¡£Ò²¾ÍÊÇ˵£¬¼´Ê¹Äã»úÆ÷ÉϵÄÁ½¸öcontainer
cpuÏÞÖÆ²»Í¬£¬Èç¹ûÄã°ÑÒ»¸öcontainer°ó¶¨ÔÚcore1£¬¶ø°ÑÁíÍâÒ»¸öcontainer°ó¶¨ÔÚcore2£¬ÄÇôÕâÁ½¸öcontainer¶¼ÄÜ´òÂú¸÷×Եĺˡ£
×ÊÔ´¸ôÀë·½Ãæ
user nsÊÇͨ¹ý½«containerµÄuid¡¢gidÓ³ÉäΪnodeÉϵÄuid¡¢gidÀ´ÊµÏÖuser¸ôÀëµÄ£»
Ò²¾ÍÊÇ˵£¬ÄãÔÚnodeÉÏÖ»ÄÜ¿´µ½containerµÄuid£¬¶ø¿´²»µ½uname£¬³ý·ÇÕâ¸öuidÔÚcontainerºÍnodeÉϵÄunameÏàͬ£»
Ò²¾ÍÊÇ˵£¬ÄãÔÚnodeÉÏ¿´µ½µÄcontainerÉϵĽø³ÌµÄËùÊôÓû§µÄuname²»Ò»¶¨ÊÇcontainerÉÏÔËÐÐÕâ¸ö½ø³ÌµÄuname£¬µ«uidÒ»¶¨ÊÇcontainerÉÏÔËÐÐÕâ¸ö½ø³ÌµÄuid£»
swarm & composeʹÓ÷½Ãæ
×¢Òâswarm strategiesÉв»³ÉÊ죬binpack strategyʵÏÖ´æÔÚһЩÎÊÌ⣬»áµ¼ÖÂ×îºóµ÷¶È³öÀ´µÄnode²»ÊÇÄãÔ¤ÆÚµÄ¡£
×¢ÒâcomposeÉв»³ÉÊ죬¿ÉÄÜ»áÓöµ½µ¥¸öÆôcontainerûÎÊÌ⣬·Åµ½composeÆô¾Íʧ°ÜµÄÎÊÌâ¡£È磺²¿ÊðÆô¶¯Ê±¼äÒÀÀµÐÔÇ¿µÄÈÝÆ÷ºÜ¿ÉÄܻᵼÖÂʧ°Ü£»
container·½Ãæ
×¢ÒâdmĬÈÏpool¼°container´æ´¢¿Õ¼ä´óСÎÊÌâ¡£containerĬÈÏ10G£¬poolĬÈÏ100G£¬Äã¿ÉÄÜÐèҪͨ¹ýdm.basesize¡¢dm.loopdatasize°´ÐèÀ©ÈÝ£»
×¢Òânsenter½øÈÝÆ÷£¬¿´²»µ½ÅäÖÃÔÚcontainerÀïµÄenv±äÁ¿£»²é¿´env½¨ÒéÓÃdocker
exec»òdocker inspect£»
×¢Òâdocker daemon¡¢docker daemonµÄdefault-ulimitºÍdocker
runµÄulimitÈýÕß¼äµÄ¼Ì³Ð¹ØÏµ£»
ÓÉÓÚÆª·ùËùÏÞ£¬ÕâÀï¾Í²»ÔÙ¹ý¶àÁо١£
ºóÐø¼Æ»®
ÏÂÃæ¸ø³öSCEºóÐøÐèÒª¼ÌÐøÉî¸ûµÄ¼¸¸öµã¡£
ÌṩCI & CD½â¾ö·½°¸
̽Ë÷´ó¹æÄ£¼¯ÈºÍøÂç·½°¸
³ÖÐø¸ú½ø´ó¹æÄ£¼¯Èº¹ÜÀí·½°¸
ÉîÈëµ÷ÑÐOpenStackÓëDockerÕûºÏ·½°¸
DockOne¼¼Êõ·ÖÏí£¨Æß£©£º »ùÓÚHypervisorµÄDockerÒýÇæ¡ª¡ªHyper
´Ó2013ÄêDocker·¢²¼£¬µ½2014ÄêµÄÈ«ÃæÒý±¬£¬Docker¸øÁËÎÒÃÇÒ»¸öÃ÷ÏԵĸоõ¡ª¡ªÈÝÆ÷ÕýÔÚ³ÉΪеġ°Òøµ¯¡±£¬¶øAmazon
AWSÒý±¬µÄÐéÄâ»ú¼¼ÊõÒѳÉÁË×òÈջƻ¨¡£
ÉóÊÓÒ»ÏÂDocker£¬ÎÒÃÇ´ÓÖÐѧµ½ÁËʲô¡ª¡ªDockerµÄ¹Ø¼üµãÔÚÓÚËüÊÇÒÔAppΪÖÐÐĵÄÔËÐл·¾³µÄ·â×°£¬×Ô´ÓÓÐÁËDocker£¬¿ª·¢¡¢²âÊÔ¡¢Éú²ú¶¼¿ÉÒÔʹÓÃÍêÈ«ÏàͬµÄ»·¾³²¿Êð£¬Éú²ú»·¾³ÐèҪά»¤µÄºÜ¶à¶«Î÷¶¼ÔÚ¿ª·¢Ê±¾Í¹Ì»¯ÔÚ¾µÏñÄÚÁË£¬Î¬»¤ÄѶÈϽµ£¬Ò»ÖÂÐԺͿÉÈ·¶¨ÐÔÌáÉý£¬³ÖÐø½»¸¶²»ÊÇÃΡ£
ËùÒÔ£¬¶ÔÐéÄâ»úÔÚÈÝÆ÷ÃæÇ°µÄ¿ÁÔð£¬ÓÃÒ»¾ä»°Ëµ¾ÍÊÇ¡ª¡ª¡°ÐéÄâ»ú¡±µÄÎÊÌâ²»ÔÚÓÚ¡°ÐéÄ⡱£¬¶øÔÚÓÚ¡°»ú¡±¡£×ÔÈ»µØ£¬ÎÒÃÇ»áÏë¿É²»¿ÉÒÔ×öAppΪÖÐÐĵÄÐéÄâ»¯ÄØ£¿
Hyper¾ÍÊÇÕâÑùÒ»ÖÖApp-CentricµÄÐéÄ⻯¼¼Êõ£¬ÎÒÃÇÍêÈ«ÞðÆúÁË´«Í³Ðé»úÉϱØÐëºÍÎïÀí»úÒ»Ñù£¬ÔËÐÐÒ»¸öÍêÕûOSÕâÖÖ¿´ËÆÏÔÈ»µÄ¼ÙÉ裬ÎÒÃÇÈÃDocker
ImageÖ±½ÓÔËÐÐÔÚHypervisorÉÏ¡£ÎÒÃÇÈÃÒ»×éÈÝÆ÷Ö±½ÓÆô¶¯ÔÚhypervisorÉϵÄʱ¼ä´ïµ½350ºÁÃ룬²¢ÇÒ»¹ÔÚ½øÒ»²½ÓÅ»¯¡£¶øÇÒËùÓÐÕâЩ£¬¶¼ÊÇ¡°¿ªÏä¼´µÃµÄ¡±¡£
µ±È»ÓÐÈË»áÎÊ£¬ÓÐÁËÈÝÆ÷Ϊʲô»¹ÒªÐé»ú¡£³ÏÈ»£¬Ðé»ú²¢²»ÊÇËùÓÐÈ˶¼ÐèÒªµÄ£¬µ«ÊÇ£¬Ðé»úÌìÈ»¾ß±¸¸üºÃµÄ¸ôÀëÐÔ£»ÐéÄâ»úÒ²ÈÔÈ»´æÔÚÓںܶàÆóÒµÓ¦ÓõÄÐÒéÕ»ÖУ¬ÕâÑùÒ»¸öÒÀÀµ¸üÉÙ¡¢¿ªÏä¼´µÃ£¬¶øÇÒ»¹´øÓÐPod¡¢persist
modeµÈ¸½¼Ó·á¸»ÌØÐÔµÄÓ¦Óã¬ÊDz»ÉÙ³¡¾°Öж¼ÐèÒªµÄ¡£¶øÎÒÃÇ×îÆÚ´ýµÄ£¬¾ÍÊÇÈ¥Òý±¬ÐµÄÈÝÆ÷·þÎñ¡ª¡ªCaaS¡£
´Ó Docker µ½ÈÝÆ÷·þÎñ
Docker ÊÇÕâÁ½ÄêÀ´£¬ÔƼÆËãÁìÓò×îÈÈÃŵĴ´ÒµÏîÄ¿£¬´ø¶¯ÁËÕû¸ö Container²úÒµ¡£ËûÃÇ×îÀ÷º¦µÄÒ»µãÔÚÓÚ£¬¿ª·¢ÕßÖ±½ÓÊä³ö
Docker Image »òÕß Dockerfile£¬²âÊÔ¡¢²¿Êð¾Í¿ÉÒÔ×öµ½¸ß¶ÈÒ»Ö£¬ÕâÀﻹÊÇÌù³ö¶Ô @¶ÅÓñ½Ü@»ªÎª¿ªÔ´
¶Å×ÜµÄ½ØÆÁµÄ½ØÆÁ£º

Ëæ×ÅDockerµÄÆÕ¼°£¬Ô½À´Ô½¶àÓ¦ÓÿªÊ¼ÇãÏòÓÚ²ÉÓÃDockerµÄ·½Ê½²¿Ê𡪡ª²Ù×÷ϵͳ½«Ö»ÓÃÓÚ³ÐÔØDocker£¬Ìṩ¸¨ÖúÐÔ¹¦ÄÜ£¬Öð½¥Í¬ÖÊ»¯£¬CoreOS£¬Redhat
Atomic£¬Ubuntu Core ¶¼ÔÚ×ßÏòÕâ¸ö·½Ïò¡£¶ø IaaS »òÕß PaaS ·þÎñÉÌÃÇ£¬±ØÈ»Ïò
CaaS¡ª¡ªÈÝÆ÷¼´·þÎñתÐÍ£¬±ÜÃâÕæµÄÂÙΪ×ÔÀ´Ë®Ò»ÑùµÄ»ù´¡ÉèÊ©¡£

Hyper¡ª¡ªÓÃÐé»ú½â¾ö¸ôÀëÎÊÌâ
µ«ÊÇ£¬ContainerµÄ¸ôÀëÐÔÎÞ·¨µÃµ½³¹µ×½â¾ö£¨Í¼Æ¬Òý×Ô»ÆÇ¿µÄÑݽ²£©

ÓÚÊǾÍÓÐÁËÁ½¸ö²»Í¬µÄÑ¡Ôñ¡ª¡ªÒª×·ÇóÐÔÄÜ£¬ÄÇô¾Í½«ÎïÀíÕû»ú»ú³ö×â¸øÓû§£¬µ«ÊÇÕâÑù×öµ¯ÐÔÓÐÏÞ£¬»ØÊÕÖ®ºó¶ÔϵͳµÄÇåÀíºÜ¸´ÔÓ£¬¶øÇÒÓû§¿ÉÒÔ½Ó´¥µ½ÎïÀí»ú¡¢BIOS¡¢ÍøÂ磬»á²úÉúÒ»¶¨°²È«Òþ»¼£»»òÕß³ö×âÐéÄâ»ú¸øÓû§¡ª¡ªAWS
ECS£¨EC2 Container Service£©µÄÑ¡Ôñ£¬ÕâÑù¾ÍËðʧÁËÐÔÄÜ£¬¶øÇÒÓû§Æäʵ¶Ôά»¤ÐéÄâ»úµÄ²Ù×÷ϵͳûÐËȤ¡£
ÕâÀïÎÒÃÇҪ˵µÄ¾ÍÊÇÒ»¸öÆäËûµÄÑ¡Ôñ¡ª¡ªÖ±½ÓÓÃÐéÄâ»ú³ÐÔØÈÝÆ÷£º Hyper = hypervisor docker
image¡£
´«Í³ÐéÄâ»úµÄÎÊÌâÆäʵÔÚÓÚ¹ýÓÚ¿ÌÒâÄ£·ÂÎïÀí»ú£¬¿ÌÒâÒª³ÐÔØÍêÕû²Ù×÷ϵͳ£¬Æô¶¯Ò»Ì¨ÐéÄâ»úÒªÈô¸ÉÃ룬ÉõÖÁ¼¸·ÖÖÓ£¬Image
ÓÐÈô¸ÉGB£¬¼ÓÔØ´«²¥¶¼ºÜÂý£¬µ«Æäʵ¸ù±¾Ã»ÓÐÕâ¸ö±ØÒª£¬HyperÏ£Íû¼æÈ¡Á½ÕßµÄÇ¿Ïî

Hyper ÔÚÆô¶¯·½Ã濪ÏúºÜµÍ£¬¼´Ê¹ºÜÈëÃŵĻúÆ÷£¬Ò²¿ÉÒÔÓкܺõÄÐÔÄÜ£¬±ÈÈçÔÚÒ»¸öСºÐ×ÓÉÏ£¬ÀïÃæÅܵÄÊdz¬µÍµçѹµÄ
i3 CPU£¬Æô¶¯ËùÓõÄʱÑÓÖ»Óв»µ½500ms¡ª¡ª

¶øÇÒ Hyper µÄÃüÁîÐÐÓ÷¨ºÍ Docker ºÜÏàËÆ£¬¼òµ¥µ½Ò»¸ö run
ÃüÁî¾Í¿ÉÒÔÆô¶¯Ò»¸ö docker image

Hyper µÄʵÏּܹ¹ÊÇÕâÑùµÄ

ÔÚÐé»úÉÏ£¬Òýµ¼Æð kernel Ö®ºó£¬Óà init ½ø³ÌÖ±½ÓÆô¶¯ Docker Image£¬Ã»ÓÐÍêÕûOS¡£ËùÓеÄ
image µÄ´¦Àí£¬ÔÚÐéÄâ»úÍâÃæ×¼±¸ºÃ£¬²åÈëÐéÄâ»úÔËÐС£
´ËÍ⣬ÓÐʱ£¬ÄãÐèÒª link ¼¸¸öÃÜÇйØÁªµÄ docker£¬ÕâÑùµÄʱºò£¬hyper
ÔÊÐíÄã°ÑËüÃÇ·ÅÔÚÒ»¸öÐé»úÀïÃæ£¬Í¨¹ýmount namespace¸ôÀëÎļþϵͳ£¬Õâ³ÆÎª pod£¬Õâ¸ö¸ÅÄîÀ´×ÔÓÚ
kubernetes¡£
One more thing
Hyper »¹ÓÐһЩ¶îÍâµÄºÃ´¦£¬¶Ô»ùÓÚÐéÄâ»úµÄ˽ÓÐÔÆ¼Ü¹¹£¬ÀûÓà hyper£¬ ¿ÉÒÔÈÃÒѾÓеÄÕë¶ÔÐé»úµÄÈí¼þÕ»£¬¸üƽ»¬µØÏòÈÝÆ÷»¯µÄ·½ÏòÇ¨ÒÆ¡£¶øÇÒ£¬Ðé»ú¿ÉÒÔ¸üºÃµØ¼æÈÝÒÑÓÐ
openstack Èí¼þÕ»£¬Ö÷Á÷É豸³§É̵ÄÍøÂçºÍ´æ´¢É豸¶¼ÌṩÁËÕë¶Ô OpenStack Neutron
ºÍ Cinder µÄÇý¶¯£¬¿ÉÒÔ¿ìËÙ¹¹½¨Ë½ÓÐÔÆ¡£
ÎÒÃÇÒ²Ìá³öÁË HyperStack £¬Ò²»¶Ó OpenStack ÉçÇøµÄ»ï°éÒ»ÆðÍÆ¶¯ÈÝÆ÷»¯µÄÓ¦Óá£
ÏÂÒ»²½¼´½«µ½À´µÄ¸Ä½ø
¶à Hypervisor Ö§³Ö¡ª¡ª Xen ±¾ÖÜ·¢²¼£¬Virtualbox
¿ª·¢ÖУ¬ ESXi ÔÚ Roadmap ÉÏ
¿çƽ̨¡ª¡ªMac µÄÖ§³ÖÔÚ¿ª·¢ÖÐ
|