DockOne¼¼Êõ·ÖÏí£¨¶þ£©£º¼¯Èº¹æÄ£ÏÂÈÕÖ¾´¦ÀíºÍÍøÂç·½°¸
±¾ÎÄÖ÷Òª½éÉÜÔÚÈÝÆ÷¼¯ÈºÖУ¬ÈçºÎ¹ÜÀíÈÝÆ÷ÈÕÖ¾£¬ÓÐÄÄЩ·½·¨¿ÉÒÔ¹ÜÀíÈÕÖ¾£¬ÕâЩ·½·¨·Ö±ðÓÐÄÄЩÓÅÊÆºÍÁÓÊÆ¡£½ô½Ó×ÅÌÖÂÛÁËÄ¿Ç°ÍøÂçµÄ¼¸ÖÖ·½°¸£¬Ã¿ÖÖ·½°¸¶¼»á´øÀ´Ê²Ã´ÑùµÄÊÕÒæºÍЧ¹û¡£×îºó½éÉÜÁËâ¹ûTVµÄ×î¼Ñʵ¼ù¡£
ÎÒÏȼٶ¨½ñÍíµÄÌýÖÚÖÁÉÙС·¶Î§µÄÆÌ¿ª Docker ÈÝÆ÷»¯¼¼ÊõÔÚÏßÉÏÁË£¬ÖÁÉÙÊìϤ
Docker µÄ¹¤×÷ÔÀíºÍ remote API¡£ËùÒÔÎÒ²»»á¹ý¶àµÄ½éÉÜDocker µÄ»ù±¾²Ù×÷ºÍʹÓã¬Ö÷ÒªÊÇ·ÖÏí¼¯Èº»¯ÈÝÆ÷ÖеÄÈÕÖ¾¹ÜÀíºÍÍøÂç¹ÜÀí¡£
ÔÚÔçÆÚ Docker ʵÏÖÖУ¬ÈÕÖ¾Õâ¿éµÄ¹¦Äܶ¼²»ÍêÉÆ£¬ËùÓÐÈÝÆ÷Äڵıê×¼Êä³öºÍ´íÎó¶¼»áдÈëµ½/var/lib/docker/containers/{$cid}/{$cid}-log.jsonÖС£ÒòΪûÓÐÈÕÖ¾×Ô¶¯·Ö¾íÒÔ¼°ÈÝÆ÷°ó¶¨£¬ËùÒÔÒ»µ©µ½ÏßÉϾͻá³öÏÖ˲¼ä´ÅÅÌ´òÂúµÄÇé¿ö¡£¶øÕâ¸öÎļþͬʱÓÖÊÇ
docker logs api µÄ data source£¬¼ÓÖ® docker 1.6 ÒýÈëµÄ log-driver
²ÎÊý£¬Òò´Ë¶ÔÓÚÏßÉÏÈÕÖ¾µÄÊÕ¼¯¹ÜÀíÎÒÃÇĿǰÓÐÕâô¼¸¸ö·½·¨¡£
¼à¿ØÎļþ£¬²¢Í¨¹ý¹ÜµÀת³öÊý¾Ý¡£ÕâÖÖ·½°¸×î´óµÄÎÊÌâÊÇÈÕÖ¾ÎļþºÍÈÝÆ÷Êǰ󶨵ģ¬Òò´ËÐèÒªÓÐÒ»¸ö
agent µÄ½ÇÉ«À´×öÕâ¼þÊ£¬±äÏàµÄÔö¼ÓÁË¿ª·¢³É±¾£¬»¹Òª¿¼ÂǹܵÀµÄ¿É¿¿ÐÔÎÊÌâ¡£ÁíÍâ CentOS 6ϵºÍ7ϵÈÕÖ¾µØÖ·²»Ò»Ñù£¬Èç¹ûÓ²±àÂëÔòÀ©Õ¹ÐÔ²»¼Ñ£¬Èç¹û¶ÁȡϵͳÅäÖã¬ÄǾÍÒª¿¼ÂÇ¿çϵͳ֮¼äµÄ·¾¶ÎÊÌâ¡£
ͨ¹ýdocker logs apiÀ´Ô¶³ÌÖØ¶¨ÏòÈÕÖ¾¡£ÕâÖÖ·½·¨×î´óµÄÎÊÌâÊÇÄã±ÜÃâ²»ÁË»¹ÊǵÃÓÐ
agent È¥ÇåÀíÈÕÖ¾Õâô¸ö²Ù×÷£¬·ñÔòµÄ»°´ÅÅÌÒÀÈ»»á±»´òÂú£¬µ±È»Ò²¿ÉÒÔÅäºÏ logrotate À´×öÕâÊ£¬²»¹ýÔö¼ÓÁËÔËά³É±¾¡£Èç¹ûÊÇÔ¶¶Ëµ÷ÓÃÕâ¸ö
API µÄ»°£¬ÐèÒª¿¼ÂÇÁ¬½ÓµÄ¿É¿¿ÐÔ£¬Ò»µ©³öÏÖÖØÁ¬£¬ÄǾÍÒª×öÈÕÖ¾»ØËÝ£¬·ñÔò»á¶ªÊ§Ò»²¿·ÖÈÕÖ¾¡£
ÈÝÆ÷ÄÚ½ø³Ì×Ô¼ºÐ´³öÈÕÖ¾¡£ÕâÓÖÓÐÁ½ÖÖ·½°¸£¬ÈçÏ£º
½ø³ÌÖ±½Óд³ö£¬¿ØÖÆÈ¨½»¸øÁËÒµÎñ·½£¬¶ÔÒµÎñ²»Í¸Ã÷£¬¿É¿ØÐÔ½µµÍ£¬±Ï¾¹ÊǼ¯Èº»·¾³¡£ÕâÑùÒ»À´Ò²Òª±©Â¶¼¯Èº½á¹¹¸øÉϲ㡣
Ó³ÉäÈÕÖ¾É豸£¨/dev/log£©½øÈÝÆ÷£¬ÈÝÆ÷ÄÚ½ø³ÌÖ±½ÓдÉ豸£¬¸ôÀëÐÔ¼õÈõ£¬µ¥µãÎÊÌâ×·×Ù»áºÜÂé·³£¬ÒòΪÕâʱºò
stdout ºÍ stderr ÊÇûÓÐÄÚÈݵģ¬Ò²¾ÍÊÇdocker logÃüÁîÎÞÈκÎÊä³ö¡£
¡º½ø³ÌÖ±½Óд³ö¡»ÕâÖÖ·½°¸ÎÒÃÇÊÔ¹ý£¬²»¹ýÒªÈÃÒµÎñ·½À´¸Ä´úÂ룬ËùÒÔÕûÌåÍÆ½øºÜÄÑÁË¡£ÁíÍâËü»¹±©Â¶ÁËÔ¶¶ËÈÕÖ¾·þÎñÆ÷µØÖ·£¬ÎÞÂÛÊÇÍøÂçÉÏ»¹Êǰ²È«É϶¼ÊÇÓÐÎÊÌâµÄ¡£¾Ù¸öÀý×Ó£¬Ò»µ©½éÈë
SDN µÈ¹ÜÀíÍøÂçµÄ·½Ê½£¬ÄÇôµÈÓÚ¾ÍÊÇÆÆ»µÁËÕûÌåµÄ¸ôÀëÐÔ¡£¡ºÓ³ÉäÈÕÖ¾É豸½øÈÝÆ÷¡»ÕâÖÖ·½°¸¾ÍÊǶ¨Î»ÎÊÌâÈÝÆ÷±È½ÏÂé·³£¬¶øÇÒ»¹ÊÇ񻃾¼°µ½¸úÒµÎñ·½¹µÍ¨¡£
ʹÓÃаæµÄ log-driver ²ÎÊý£¬ÆäÖаüº¬Ö§³Ö syslog£¬¿´ËƺÜÃÀºÃ£¬µ«ÊÇÔÚ¼¯Èº»·¾³ÏÂÒª¿¼ÂÇ
syslog µ¥µãÎÊÌâ¡£Ò»°ãÀ´Ëµ»áÓжà¸ö syslog »òÕßÖ§³Ö syslog ÐÒéµÄÔ¶¶Ë server
£¨logstash£©¡£Èç¹ûʹÓÃÔ¶³Ì syslog ½ÓÊÜÈÕÖ¾£¬´óÁ¿ÈÝÆ÷ÈÕÖ¾Êä³ö²¢²»Æ½¾ù£¬´Ó¶ø»á²úÉúÐÔÄÜÈȵãºÍÁ÷Á¿Èȵ㡣Èç¹û×ßµ¥»ú
syslog ÔÙ»ã×Ü£¬ÄǾͺÍÉÏÃæµÄ·½°¸¡º½ø³ÌÖ±½ÓÊä³ö¡»Ã»¶à´óÇø±ðÁË£¬Í¬ÑùÊǸú×ÙÎÊÌâ±È½ÏÂé·³¡£ÎÒ¾õµÃĿǰÕâ¸öʵÏÖ¸ü¶àµÄÊÇ·½±ãÁË֮ǰʹÓÃ
syslog ·½°¸µÄ¡£
ͨ¹ýattach ·½·¨½Ø»ñÈÝÆ÷Êä³öÁ÷ÖØ¶¨Ïò¡£ÕâÖÖ·½°¸ÐèÒª agent Ö§³Ö£¬ÓÐÒ»¶¨¿ª·¢ÒªÇó¡£Ä¿Ç°ÎÒÃDzÉÓõľÍÊÇÕâÖÖ·½°¸£¬Í¨¹ýÒ»¸öÄ£¿éʵÏÖÁË
consistent hash£¬È»ºó°ÑÈÕÖ¾Á÷Á¿´òµ½Ô¶¶ËÊÕ¼¯·þÎñÆ÷ÉÏ¡£Õâ¸ö·½°¸Ö»ÐèÒªÈÃÒµÎñ°ÑÈÕÖ¾Êä³öµ½ stdout/stderr
Öм´¿É£¬²¢²»»áÔö¼Ó¿ª·¢³É±¾¡£Í¬Ê±Docker 1.6ÖпÉÒÔÖ¸¶¨ÈÕÖ¾Çý¶¯Îª none£¬±ÜÃâÁË logs ÎļþµÄ²úÉú¡£ÁíÍâÒ»·½Ãæ¿ÉÒÔ°ÑÈÝÆ÷×Ô¼ºµÄ
meta info ¸½¼Óµ½ÈÕÖ¾Á÷ÀïÃæ£¬´Ó¶øÊµÏÖÔ¶¶ËµÄÈÕÖ¾¼ìË÷·ÖÀà¾ÛºÏµÈ²Ù×÷¡£µ«Õâ¸ö·½°¸×î´óµÄÎÊÌâÊÇ¿ª·¢Á¦Á¿µÄͶÈ룬²»Í¬µÄ
dockeclient ʵÏÖÖÊÁ¿Ò²²»Ò»Ñù£¬µ±È»ºÃ´¦Ò²ÊǺÜÃ÷ÏԵģ¬Áé»î¿É¿Ø£¬ÈÕÖ¾Á÷ÏòºÍ·ÖÅä¶¼ÔÚ×Ô¼ºÊÜÉË¡£
ËùÒÔÈÕÖ¾·½Ã棬´ÓĿǰ Docker ʵÏÖÀ´¿´£¬Èç¹û¿ª·¢Á¦Á¿¸úµÃÉÏ£¬agent
+ attach ·½°¸ÊÇÁé»îÐԺͿɿØÐÔÊÇ×î¸ßµÄ¡£Ä¿Ç° log-driver ¶ÔÓÚÉϹæÄ£µÄ¼¯ÈºÀ´Ëµ»¹ÊDz»Ì«ºÃÓã¬ÀíÏë״̬ÏÂÎÒÏ£ÍûÊÇ¿ÉÒÔÖ¸¶¨¶à¸ö
log-drivers£¬Í¨¹ý hash ·½°¸´òµ½Ô¶¶Ë¡£µ±È»¾ßÌå·½°¸µÄѡȡ¾ÍµÃ¿´¸÷×Ô¹«Ë¾±¾ÉíµÄ»ù´¡ÉèÊ©ºÍÉè¼ÆÄ¿±êÁË¡£
˵ÍêÈÕÖ¾À´ËµÏÂÍøÂ磬Ŀǰ Docker µÄÍøÂç·½°¸Ö÷ÒªÓÐÕâô¼¸¸ö£¬µ±È»ÏÖÔÚ´ó¼Ò¶¼ÔÚµÈ
1.7£¬²»¹ýÎÒÈÏΪ¶ÔÓÚÉú²úϵͳ¶øÑÔ£¬ÒÑÓÐ SDN ·½°¸µÄ²»»áÌ«¹ýÓÚÔÚºõ Libnetwork£¬¿ÉÄÜ»áÑо¿ÏÂÆäºÍ
Docker ÊÇÔõÑùͨ¹ý plugin ·½Ê½½áºÏµÄ¡£ÒòΪÆäËûËü°¸Ä¿Ç°¶¼ÊÇ Hook ·½Ê½È¥×öµÄ¡£
1¡¢Ä¬ÈÏ NAT/BR/HOST£¬NAT ÓÐÐÔÄÜËðʧ£¬BR ÓÐÍøÂçÉÁ¶Ï£¬HOST
Á÷¿Ø²»ºÃ×ö£¬¶Ë¿Ú³åÍ»¿¿ÒµÎñ±£Ö¤Ã»·¨×öµ½Í¸Ã÷¡£
2¡¢ÍøÂç²ã·½°¸
a. ËíµÀ·½°¸
I. OVS£¬Ö÷ÒªÊÇÓÐÐÔÄÜ·½ÃæµÄËðʧ£¬»ùÓÚ VxLAN ºÍ GRE ÐÒ飬ÀàËÆµÄ·½°¸»¹ÓÐ
Kubernetes/Socketplane µÄʵÏÖ¡£
II. Weave£¬UDP ¹ã²¥£¬±¾»ú½¨Á¢Ð嵀 BR£¬Í¨¹ý PCAP »¥Í¨¡£
III. Flannel£¬UDP ¹ã²¥£¬VxLan¡£
ËíµÀ·½°¸·Ç³£Áé»î£¬µ«ÊÇÒòΪ̫¹ýÓÚÁé»î£¬³öÁËÍøÂçÎÊÌ⣨A-B Á´Â·¶¶¶¯£©¸ú×ÙÆðÀ´±È½ÏÂé·³£¬´ó¹æÄ£¼¯ÈºÇé¿öÏÂÕâÊÇÐèÒª¿¼ÂǵÄÒ»¸öµã£¬±Ï¾¹¼´±ãÊÇÄÚÍøÒ²²»Ò»¶¨·çƽÀ˾²¡£
b. ·ÓÉ·½°¸
I. Pipework£¬¶ÔÓÚ Docker BR ±¾ÉíµÄÀ©Õ¹£¬µ±È»Ò²Ö§³Ö
OVS macvlan µÈ·½°¸µÄ½áºÏ¡£ÏÖÔÚ libnetwork ³öÀ´±äÏàµÄÊÇ·ÏÁËÕâ¸öÏîÄ¿ÁË£¬³¤Ô¶À´¿´ºó¼ÌÎÞÈË£¬Òò´ËËü²»ÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ¡£
II. Calico£¬»ùÓÚ BGP ÐÒéµÄ·ÓÉ·½°¸£¬Ö§³ÖºÜϸÖ嵀 ACL
¿ØÖÆ£¬¶ÔÓÚ¸ôÀëÒªÇó±È½ÏÑϸñµÄ³¡¾°±È½ÏÊʺϣ¬¶Ô»ìºÏÔÆÇ׺ͶȱȽϸߣ¬ÒòΪËü²»Éæ¼°µ½¶þ²ãµÄÖ§³Ö¡£
III. Macvlan£¬´ÓÂß¼ºÍ Kernel ²ãÀ´¿´¸ôÀëÐÔºÍÐÔÄÜ×îÓŵķ½°¸£¬»ùÓÚ¶þ²ã¸ôÀ룬ËùÒÔÐèÒª¶þ²ã·ÓÉÆ÷Ö§³Ö£¬´ó¶àÊýÔÆ·þÎñÉ̲»Ö§³Ö£¬ËùÒÔ»ìºÏÔÆÉϱȽÏÄÑÒÔʵÏÖ¡£
·ÓÉ·½°¸Ã»ÄÇôÁé»î£¬´ó¶àÊýÇé¿öÏÂÐèÒªÓÐÒ»¸ö agent ÔÚÈÝÆ÷Ö÷»úÉÏÈ¥²Ù×÷£¬Ò»°ãÊÇ´Ó
3 ²ã»òÕß 2 ²ãʵÏÖ¸ôÀëºÍ¿çÖ÷»úÈÝÆ÷»¥Í¨µÄ£¬³öÁËÎÊÌâÒ²ºÜÈÝÒ×ÅŲ顣µ«ÊÇ·ÓÉ·½°¸¶Ô±¾ÉíÎïÀíÍøÂçÒÀÀµ»á±ÈËíµÀ·½°¸ÒªÖØ¡£ÁíÍâ
hook µÄ»°±Ï¾¹»¹ÊDz»Ì«ÓÅÃÀ£¬ËùÒԵÿ´¿´ libnetwork ÊÇÔõÑùºÍ Docker ½áºÏµÄ¡£
ĿǰÎÒÃÇѡȡµÄÊÇ macvlan µÄ·½°¸ÊµÏֵĶþ²ã¸ôÀ룬˵ÇáµãÖ÷ÒªÊǶÔÈÝÆ÷¶øÑÔ£¬¿ÉÒÔÍêÈ«µ±ÈÝÆ÷Ϊһ̨ÐéÄâ»ú¡£ËµÖص㣬ÊÇÒòΪÆä¶ÔÎïÀíÍøÂç»ù´¡ÉèÊ©ÒÀÀµ³Ì¶È×î¸ß¡£
DockOne¼¼Êõ·ÖÏí£¨Èý£©£ºDocker RegistryµÄ¶¨ÖƺÍÐÔÄÜ·ÖÎö
±¾ÎĽéÉÜÁËDocker Registry·þÎñ¼¸¸ö×é¼þµÄ¹¹³É£¬ÒÔ¼°Ôõô¹æ»®¶¨ÖÆÒ»¸ö˽ÓоµÏñ¿â£¬ÒÔ¼°¾µÏñ·þÎñpull/push²Ù×÷ÐÔÄÜ·ÖÎö¡¢²¢·¢ÐÔÄÜ·ÖÎö£¬°ïÖú´ó¼Ò°´ÕÕÐèÇó´î½¨×Ô¼ºÐèÒªµÄ¾µÏñ·þÎñ¡£
Docker Index
Web UI
Meta-data ÔªÊý¾Ý´æ´¢£¨¸½×¢¡¢ÐǼ¶¡¢¹«¹²¿âÇåµ¥£©
·ÃÎÊÈÏÖ¤
token¹ÜÀí
Docker Registry
´æ´¢¾µÏñ¡¢ÒÔ¼°¾µÏñ²ãµÄ¼Ò×åÆ×ϵ
ûÓÐÓû§ÕË»§Êý¾Ý
²»ÖªµÀÓû§µÄÕË»§ºÍ°²È«ÐÔ
°Ñ°²È«ºÍÈÏ֤ίÍиødocker-hubÀ´×ö£¬ÓÃtokenÀ´±£Ö¤´«µÝ°²È«
²»ÐèÒªÖØÐ·¢Ã÷ÂÖ×Ó£¬Ö§³Ö¶àÖÖ´æ´¢ºó¶Ë
ûÓб¾µØÊý¾Ý¿â
ºó¶Ë´æ´¢
ÒòΪ¾µÏñ×îÖÕÊÇÒÔtar.gzµÄ·½Ê½¾²Ì¬´æ´¢ÔÚ·þÎñ¶Ë
ÊÊÓÃÓÚ¶ÔÏó´æ´¢¶ø²»ÊÇ¿é´æ´¢
registry´æ´¢Çý¶¯
¹Ù·½Ö§³ÖµÄÇý¶¯ÓÐÎļþ¡¢ÑÇÂíÑ·AWS S3¡¢ceph-s3¡¢Google gcs¡¢OpenStack swift£¬glance
Ò»´ÎDocker Pull·¢ÉúµÄ½»»¥

1. ClientÏòIndexÇëÇó£¬ÖªµÀ´ÓÄÄÀïÏÂÔØsamlba/busybox
2. Index»Ø¸´£º
3. samalba/busyboxÔÚRegistryA
4. samalba/busyboxµÄchecksum£¬ËùÓвãµÄtoken
5. ClientÏòRegistry AÇëÇó£¬samalba/busyboxµÄËùÓв㡣Registry
A¸ºÔð´æ´¢samalba/busybox£¬ÒÔ¼°ËüËùÒÀÀµµÄ²ã
6. Regsitry AÏòIndex·¢ÆðÇëÇó£¬ÑéÖ¤Óû§/tokenµÄºÏ·¨ÐÔ
7. Index·µ»ØÕâ´ÎÇëÇóÊÇ·ñºÏ·¨
8. Client´ÓregistryÏÂÔØËùÓеIJã
9. Registry´Óºó¶Ë´æ´¢Öлñȡʵ¼ÊµÄÎļþÊý¾Ý£¬·µ¸øClient
´î½¨Ë½ÓоµÏñ¿âµÄ·½°¸

ÉÏÃæµÄindex¡¢nginx¡¢ºó¶Ë´æ´¢3Õß¶¼ÊÇ¿ÉÑ¡µÄ¡£registry·Ö0.9µÄpython°æÊµÏÖºÍ2.0°æµÄgoʵÏÖ¡£
ÈÏÖ¤ºÍȨÏÞ
Èç¹û¾µÏñ¿â²»Ö±½ÓÌṩ¸øÓû§Ê¹Ó㬽ö½öÊÇ˽ÓÐPaaSµÄÒ»²¿·Ö£¬¿ÉÒÔ²»ÓÃindex×é¼þ£¬Ö±½ÓÉÏRegistry¾ÍÐС£IndexµÄ¿ªÔ´ÊµÏÖ°üÀ¨docker-registry-web£¬docker-registry-frontend¡£Ö§³Ö½ÏºÃµÄÊÇÂíµÀ³¤µÄwharf¡£
ºó¶Ë´æ´¢
ÎÒÃÇ»·¾³Ê¹ÓõÄÊÇÍøÒ×µÄÄÚ²¿µÄ¶ÔÏó´æ´¢NOS£¬ÀàËÆÓÚS3¡£ÆäËûµÄ·½°¸Ã»Óùý£¬Èç¹ûÒª×Ô¼º´î£¬¿ÉÄÜ¿¿Æ×µÄÊÇceph-s3¡£Èç¹ûÔÚ¹«Íø»·¾³»òÕßÒѾ¹ºÂòÁ˹«ÓÐÔÆ·þÎñ£¬¿ÉÒÔ¿¼ÂÇ×Ô¼ºÊµÏÖÒ»¸öregistry-¶ÔÏó´æ´¢µÄÇý¶¯¡£
¼¯ÈººÍ·Ö²¼Ê½
Registry±¾ÉíÊÇÎÞ״̬µÄ£¬¿ÉÒÔˮƽÀ©Õ¹£¬È»ºóÔÚÇ°Ãæ×öngixµÄ¸ºÔؾùºâ¡£
ÐÔÄܲâÊÔ
v1ÐÒé vs v2ÐÒé

×öÁËÐÔÄܶԱȲâÊÔ£¬Í¬ÑùΪdocker1.6£¬v2ÐÒé±Èv1ÐÒé¿ì5-6%×óÓÒ£¬»ù±¾¿ÉÒÔºöÂÔ²»¼Æ¡£
µ¥´ÎPullºÍPushµÄÐÔÄÜ·ÖÎö


¾¹ý¶Ô±È²âÊÔ£¬µ¥´Îdocker pullºÍpushµÄ×î´óºÄʱÔÚ¿Í»§¶Ë£¬Ò²¿ÉÒԹ۲쵽ÿ´Î×ödocker
pullºÍpushµÄʱºòϵͳCPUÕ¼ÓÃÂʶ¼ÔÚ100%¡£Ò²¾ÍÊÇ˵50%ÒÔÉϵÄʱ¼ä»¨ÔÚ±¾µØ×öµÄѹËõ¡¢¼ÆËãmd5µÈ²Ù×÷¡£
²¢·¢·ÖÎö

²¢·¢²âÊԵĽá¹ûÊÇÔÚÒ»¸ö2ºË2GÄÚ´æµÄregistry-0.9·þÎñÆ÷£¬Ö±½ÓÓÃÎļþ´æ´¢£¬´óÔ¼ÄܸºÔØ50¸ödocker
clientµÄ²¢·¢¡£Èç¹û»»ÓöÔÏó´æ´¢µÄºó¶Ë£¬¹À¼Æ10¸ödocker clientµÄ²¢·¢¾ÍÊǼ«ÏÞÁË¡£
registry-2.0µÄ²¢·¢ÐÔÄÜºÜÆæÌØ£¬Ò»·½Ã棬ͬÑùµÄ¾µÏñÏÂÔØµÄ±Èregistry-1.0ÒªÂý£¬ÁíÒ»·½Ã棬ֻÓÐÒ»¸ö½ø³Ì£¬Õ¼ÁË20%×óÓÒµÄCPUºÍÄڴ棬¶Ôϵͳ×ÊÔ´ÏûºÄºÜÉÙ£¬²»Ïñpython°æµÄÕ¼ÓÃÁËËùÓеÄCPUºËºÍÄÚ´æ¡£
DockOne¼¼Êõ·ÖÏí£¨ËÄ£©£ºAppCºÍDockerµÄ¶Ô±È
ÏÖÔÚһ˵µ½¡°ÈÝÆ÷¡±£¬¼¸ºõËùÓÐÈËÊ×ÏÈÏëµ½µÄ¾ÍÊÇDocker¡£Docker×÷ΪĿǰ×îÖ÷Á÷µÄÈÝÆ÷±ê×¼£¬ÑÚ¸ÇÁËÐí¶àǰ±²ºÍºóÐøÕߵĹâ»Ô¡£ÊÂʵÉÏ£¬Docker¼È²»ÊǵÚÒ»¸öÈÝÆ÷Àà²úÆ·£¨OpenVZ¡¢LxcµÈ¶¼Ô¶Ô¶ÔçÓÚËü£©£¬Ò²²»»áÊÇ×îºóÒ»¸ö¡£½ñÌìÎÒÃÇÀ´ÁÄÒ»¸ö×î½üÓеã»ðµÄÐÂÈÝÆ÷±ê×¼£ºAppC¡£
AppCÊÇ CoreOS ¹«Ë¾ÔÚ2014Äê12Ô·¢ÆðµÄÉçÇøÏîÄ¿£¬Ö¼ÔÚÉè¼ÆÒ»ÖÖÐÂʽµÄ¿çƽ̨ÈÝÆ÷ÔÚ¾µÏñ¸ñʽ¡¢ÔËÐз½Ê½ºÍ·þÎñ·¢ÏÖ»úÖÆµÈ·½ÃæµÄ±ê×¼¡£
´Ó¹Ù·½µÄ±í̬˵£¬Õâ¸öÏîÄ¿×î³õµ®ÉúµÄÔÒòÊÇ£¬Ö÷Á÷ÈÝÆ÷¹¤¾ß Docker ÕýÔÚ´ÓÒ»¸öµ¥´¿µÄÈÝÆ÷¹¤¾ß³ÉΪ×Ô³ÉÒ»ÌåµÄÉú̬Ȧ¡£¶ø
Docker µÄÖÐÐÄʽ¹ÜÀí·½Ê½£¨ÓÉÿ¸öÖ÷»úÉ쵀 Docker -d ºǫ́½ø³Ìͳһ¿ØÖÆ£©¶ÔÓÚ Systemd
ÒÔ¼°µÚÈý·½µÄÈÎÎñ±àÅŹ¤¾ß²¢²»ÓѺ㨾ßÌåÔÒòÉÔºó·ÖÎö£©¡£
Òò´Ë CoreOS Ï£ÍûÉè¼ÆÒ»ÖÖÈ¥ÖÐÐÄ»¯µÄ¡¢¹¦Äܸü´¿´â¡¢Í¬Ê±¸ü¹Ø×¢ÐÔÄܺͰ²È«µÄÓ¦ÓÃÈÝÆ÷£¬½«ÖîÈçÈÕÖ¾¹ÜÀí¡¢ÈÝÆ÷µ÷¶È¡¢¼¯Èº±àÅŵȹ¤×÷¶¼½»¸øÍⲿ¹¤¾ßÈ¥Íê³É¡£
Docker µÄ·¢ÆðÕßÊÇ DotCloud ¹«Ë¾£¬Õâ¸ö¹«Ë¾Ô±¾µÄÒµÎñ¾ÍÊÇ×ö
PaaS ƽ̨£¬ÕâÒ²¾ö¶¨ÁË Docker µÄ·¢Õ¹·½Ïò¾ÍÊdzÉΪһ¸ö¡°´ó¶øÈ«¡±µÄƽ̨ÐÔÖʵIJúÆ·¡£ÕâÖÖ×ö·¨±¾ÉíÒ²·ûºÏÕ¼Êг¡¾ø´ó¶àÊýµÄ¡°´óÖÚÓû§¡±Ï£Íû¡°Ò»Õ¾Ê½½â¾ö·½°¸¡±µÄËßÇó¡£
¿ÉÒÔÕâÑù˵£¬Á½Õß±¾Öʵijö·¢µãºÍÏë½â¾öµÄÎÊÌâ²¢²»Ïàͬ¡£Òò´Ë£¬Ï£Íû´ó¼Ò±ü×Å¿ª·ÅºÍ°üÈݵÄÐÄ̬À´¿´´ý
Docker ºÍ AppC µÄ±È½Ï¡£¶ø²»ÊDZ§×ÅÑ¡Ôñ¡°ÄÄÒ»¸öÊÇ×îºÃµÄÈÝÆ÷±ê×¼¡±µÄÄ¿µÄ£¬ÒòΪÕâ¸öÎÊÌâ¿ÉÄܺ͡°Äĸö±à³ÌÓïÑÔÊÇ×îºÃµÄÓïÑÔ¡±Ò»Ñù£¬Ö»Äܽ»¸øÊ±¼äÈ¥¶¨ÂÛ¡£
ÏÖÔÚ·ûºÏ AppC ±ê×¼µÄÈÝÆ÷ÒѾÓм¸¿îÁË£¨¶¼Ê®·ÖµÄСÖÚ£©£¬²»¿ÉÄܰ¤¸ö¶Ô±È¡£ÏÂÃæ¾ÍÖ»ÒÔ
CoreOS ¹Ù·½ÍƳöµÄ Rkt ÈÝÆ÷×÷ΪÓë Docker µÄ±È½Ï¶ÔÏó¡£ÒÔÏÂÄÚÈݶ¼Êô¸öÈ˲âÊԵĽá¹û£¬²»´ú±í
Docker »ò CoreOS ÈκÎÒ»·½µÄ¹Ù·½¹Ûµã¡£
ÓÉdzÈëÉîµÄ˵¡£Ê×ÏÈÊÇ×îÈÝÒ׸оõµ½µÄһЩ²îÒì¡£
²Ù×÷ÃüÁîµÄ·½Ê½

¿ÉÒÔ¿´µ½£¬DockerµÄËùÓÐÃüÁî¶¼°üº¬ÔÚÁË Docker ÕâÒ»¸öÃüÁîÐй¤¾ßÖС£
¶ø Rkt ÖÐÓë¾µÏñÏà¹ØµÄÃüÁîÊÇÓÉ AppC ͳһµÄÃüÁîÐй¤¾ß actool
ÌṩµÄ£¬¶øÈÝÆ÷±¾ÉíµÄ²Ù×÷Óɸ÷¸öÈÝÆ÷×Ô¼ºÌṩ£¬ÀýÈç rkt¡£
Docker µÄÈÝÆ÷Í£Ö¹ÒԺ󻹻ᱻºǫ́µÄ Docker -d ½ø³Ì¼Ç¼£¬»¹Äܹ»ÔÙ´Î
restart£¬¶ø Rkt µÄÈÝÆ÷ÀïÔËÐеÄÓ¦ÓÃÔò¸üÏñÊÇÒ»¸öÆÕͨµÄÓ¦Ó㬽áÊøÁ˾ÍÕæµÄ½áÊøÁË¡£
ÁíÍâÒ²ÄÜ¿´³ö£¬Rkt ÌṩµÄ¹¦ÄÜÖ»ÊÇ Docker µÄ×Ó¼¯£¬ºóÕßÔÚÈÕÖ¾¡¢¾µÏñ¡¢¹ÜÀí·½ÃæÌṩµÄÖ§³ÖÍêÕûºÜ¶à¡£
È»ºó£¬À´¿´Ò»Ï Docker ºÍ Rkt µÄÒ»¸öÊ®·ÖÖØÒªµÄ²îÒì¡£
ÈÝÆ÷½ø³ÌÔËÐз½Ê½
Rkt µÄÿ¸öÈÝÆ÷½ø³ÌÓÉ rkt ÃüÁîÖ±½Ó fork ³öÀ´¡£¶ø Docker
µÄÈÝÆ÷½ø³ÌÊÇÓÉÓû§Ö´ÐÐµÄ Docker ÃüÁîÐй¤¾ß·¢ËÍÏûÏ¢¸øºǫ́µÄ Docker -d ½ø³Ì£¬ÓÉ Docker
-d ½ø³Ì¼ä½Ó fork µÄ¡£ÕâÕ¦¿´ÆðÀ´Ã»Ê²Ã´Çø±ð£¬µ«ÊÇ Docker µÄÕâÖÖ·½Ê½¾Í¸øµÚÈý·½µÄÈÎÎñ±àÅŹ¤¾ß´øÀ´ÁËһЩÀ§ÈÅ¡£


ÓÐЩ½ø³Ì¹ÜÀí¹¤¾ß£¬±ÈÈç systemd ÊÇͨ¹ý cgroup À´¿ØÖƺ͸ú×Ù½ø³ÌµÄÉúÃüÖÜÆÚµÄ£¬¶ø
SysV ÔòÊÇͨ¹ý½ø³ÌºÅºÍ¼Ì³Ð¹ØÏµÀ´¸ú×Ù½ø³ÌÉúÃüÖÜÆÚ¡£±ÈÈç˵µ±ÐèÒª½áÊøÒ»¸ö½ø³ÌµÄʱºò£¬½ø³Ì¹ÜÀí¹¤¾ß¾Í»áÕÒµ½ÏàÓ¦½ø³ÌµÄËùÓÐ×Ó½ø³ÌÒ»Æð½áÊø¡£
µ« Docker µÄÕâÖÖ½ø³ÌÔËÐÐÄ£ÐÍ£¬Ê¹µÃ²»ÂÛÊÇͨ¹ý½ø³ÌÊ÷»¹ÊÇ cgroup
Ê÷¶¼ÎÞ·¨¿´³ö´´½¨ÈÝÆ÷µÄ Docker ÃüÁîÐÐÓëÈÝÆ÷±¾ÉíÓÐÈκιØÏµ¡£Òò´ËÐí¶àÈÎÎñ¹ÜÀí¹¤¾ßÈç¹û²»¶Ô Docker
½ø³Ì½øÐÐÌØ±ð¶Ô´ý£¬¾ÍÎÞ·¨Õý³£µÄ¹ÜÀíͨ¹ý Docker Æô¶¯µÄÈÝÆ÷ÀïµÄ½ø³Ì¡£
¿´¾µÏñµÄ½á¹¹
Docker µ¼³öµÄ¾µÏñÊÇÒ»¸ö tar Îļþ£¬ÀïÃæµÄÄÚÈÝÊÇ·Ö²ãµÄ¡£


½âѹÒÔºóµÄÿһ¸öĿ¼Æäʵ¾ÍÊǾµÏñµÄÒ»²ã¡£

Rkt µÄ¾µÏñÊÇÒ»¸ö gzip Îļþ£¬ÀïÃæÃ»Óзֲ㣬ֱ½Ó¾ÍÊÇËùÓÐÈÝÆ÷ÖеÄÎļþµÄ´ò°ü¡£
¸öÈ˾õµÃ·Ö²ãÒÔºóËäÈ»¸´ÔÓÁËÒ»µã£¬µ«Äܹ»¸´Óÿռ䣬ÆäʵÊDZȽÏÓÐÓõġ£
×îºóÀ´¿´Ò»Ï AppC ±È½ÏÇ¿µ÷µÄ°²È«ÐÔºÍÐÔÄÜ·½Ãæ¡£
°²È«ÐÔ
Docker ÏÂÔØÒ»¸ö¾µÏñ£¬Ö±½Ó Docker pull ÁËÊ£¬´«Êä¹ý³Ì¿É¼ÓÃܿɲ»¼ÓÃÜ£¬Docker
Ò²²»»áÎÊÄãÊÇ·ñÁ˽âÕâ¸ö¾µÏñµÄÀ´Ô´¡£

¶ø Rkt ĬÈÏÒªÇóËùÓд«Êä¹ý³Ì¼ÓÃÜ£¬²¢ÇÒÏÂÔØ¾µÏñǰÓû§±ØÐëÊ×ÏÈÌí¼Ó¶Ô¾µÏñÀ´Ô´Ç©ÃûµÄÐÅÈΣ¬³ý·ÇÓû§Ã÷È·Ö¸¶¨È¡ÏûÑéÖ¤£¬·ñÔò¾µÏñ¼´Ê¹ÏÂÔØÁË
Rkt Ò²»á¾Ü¾øÔËÐÐËü¡£


ÈÝÆ÷ÐÔÄÜ
ÐÔÄÜ·½Ã棬¿ÉÒÔ´ÓÒ»¸ö²àÃæÀ´ËµÃ÷£º¹¹½¨Ò»¸ö×îСµÄ¿ÉÔËÐоµÏñÐèÒªÄÄЩ¶«Î÷¡£
ÏÂÃæµÄ hello Õâ¸öÎļþÊÇÒ»¸ö¾²Ì¬±àÒ루ÎÞÈκηÇϵͳ¿âÒÀÀµ£©µÄ³ÌÐò£¬ÔËÐеÄʱºò»á´òÓ¡Ò»¸ö¡°Hello
World¡±¡£
°ÑËü·Åµ½Ò»¸ö¿Õ°×µÄ Docker ¾µÏñÀïÃæ¡£

ÔËÐÐÈÝÆ÷»á·¢ÏÖ Docker ÌáʾÕÒ²»µ½ Bash¡£

½«Í¬ÑùµÄ³ÌÐò·Åµ½Ò»¸ö¿Õ°×µÄ AppC ¾µÏñÀïÃæ¡£

ÔËÐÐÈÝÆ÷¾ÍÄܹ»Õý³£¹¤×÷¡£

ÕâÒ»µã¿´³ö Docker ÔÚÔËÐÐÈÝÆ÷ÀïµÄÈκγÌÐòµÄʱºò£¬Êµ¼ÊÉ϶¼»áÏÈÔÚÈÝÆ÷ÀïÃæÆô¶¯Ò»¸ö
Shell£¬ÔÙÓÉÕâ¸ö Shell È¥ÈÝÆ÷Ö´ÐÐÖ¸¶¨µÄÃüÁî¡£¶ø Rkt ÔòÊÇ´¿´¿µÄÖ±½ÓÔËÐÐÁËÖ¸¶¨µÄ³ÌÐò£¬Ïà±ÈÖ®ÏÂÔÚÐÔÄܺ;µÏñÄÚÈݵġ°ÐÅÔë±È¡±ÉÏÂÔÕ¼ÓÅ¡£
DockOne¼¼Êõ·ÖÏí£¨Î壩£ºDockerÍøÂçÏê½â¼°Libnetworkǰհ
ÍøÂç»ù´¡
DockerÏÖÓеÄÍøÂçÄ£ÐÍÖ÷ÒªÊÇͨ¹ýʹÓÃNetwork namespace¡¢Linux
Bridge¡¢Iptables¡¢veth pairµÈ¼¼ÊõʵÏֵġ£
Network namespace£ºNetwork namespaceÖ÷ÒªÌṩÁ˹ØÓÚÍøÂç×ÊÔ´µÄ¸ôÀ룬°üÀ¨ÍøÂçÉ豸¡¢IPv4ºÍIPv6ÐÒéÕ»¡¢IP·ÓÉ±í¡¢·À»ðǽ¡¢/proc/netĿ¼¡¢/sys/class/netĿ¼¡¢¶Ë¿Ú£¨socket£©µÈ¡£
Linux Bridge£º¹¦ÄÜÏ൱ÓÚÎïÀí½»»»»ú£¬ÎªÁ¬ÔÚÆäÉϵÄÉ豸£¨ÈÝÆ÷£©×ª·¢Êý¾ÝÖ¡¡£Èçdocker0ÍøÇÅ¡£
Iptables£ºÖ÷ҪΪÈÝÆ÷ÌṩNATÒÔ¼°ÈÝÆ÷ÍøÂ簲ȫ¡£
veth pair£ºÁ½¸öÐéÄâÍø¿¨×é³ÉµÄÊý¾ÝͨµÀ¡£ÔÚDockerÖУ¬ÓÃÓÚÁ¬½ÓDockerÈÝÆ÷ºÍLinux
Bridge¡£Ò»¶ËÔÚÈÝÆ÷ÖÐ×÷Ϊeth0Íø¿¨£¬ÁíÒ»¶ËÔÚLinux BridgeÖÐ×÷ÎªÍøÇŵÄÒ»¸ö¶Ë¿Ú¡£
ÈÝÆ÷µÄÍøÂçģʽ
hostģʽ£º ÈÝÆ÷ºÍËÞÖ÷»ú¹²ÏíNetwork namespace¡£
containerģʽ£º ÈÝÆ÷ºÍÁíÍâÒ»¸öÈÝÆ÷¹²ÏíNetwork namespace¡£
kubernetesÖеÄpod¾ÍÊǶà¸öÈÝÆ÷¹²ÏíÒ»¸öNetwork namespace¡£
noneģʽ£º ÈÝÆ÷ÓжÀÁ¢µÄNetwork namespace£¬µ«²¢Ã»ÓÐ¶ÔÆä½øÐÐÈκÎÍøÂçÉèÖã¬Èç·ÖÅäveth
pair ºÍÍøÇÅÁ¬½Ó£¬ÅäÖÃIPµÈ¡£
bridgeģʽ£º BridgeģʽÊÇDockerµÄĬÈÏģʽ£¬ÏÂÃæÕâÕÅͼ¼´ÎªBridgeģʽÏÂDockerÈÝÆ÷µÄÍøÂçÁ¬½Óͼ¡£

ÈÝÆ÷eth0Íø¿¨´Ódocker0ÍøÇÅËùÔÚµÄIPÍø¶ÎÖÐѡȡһ¸öδʹÓõÄIP£¬ÈÝÆ÷µÄIPÔÚÈÝÆ÷ÖØÆôµÄʱºò»á¸Ä±ä¡£docker0µÄIPΪËùÓÐÈÝÆ÷µÄĬÈÏÍø¹Ø¡£ÈÝÆ÷ÓëÍâ½çͨÐÅΪNAT¡£
Link ²Ù×÷
link ²Ù×÷¿ÉÒÔÔÚÁ½¸öÈÝÆ÷¼ä½¨Á¢Ò»ÌõÊý¾ÝͨµÀ£¬Ê¹µÃ½ÓÊÕÈÝÆ÷¿ÉÒÔ¿´µ½Ô´ÈÝÆ÷µÄÖ¸¶¨ÐÅÏ¢¡£Í¨¹ýÉèÖýÓÊÕÈÝÆ÷µÄ»·¾³±äÁ¿ºÍ/etc/hostsÎļþÀ´µÃµ½Ô´ÈÝÆ÷µÄ»·¾³ÅäÖÃÐÅÏ¢ÒÔ¼°¾ßÌåµÄIPµØÖ·£¬Ò»¸ö·Ç³£¼òµ¥µÄ·þÎñ·¢ÏÖ»úÖÆ¡£ÓÉÓÚlink¹¦ÄÜÓÐÏÞ£¬¸öÈ˾õµÃÓô¦²»ÊÇÌ«´ó¡£
Docker×ÔÉíµÄÍøÂ繦ÄܱȽϼòµ¥£¬²»ÄÜÂú×ãºÜ¶à¸´ÔÓµÄÓ¦Óó¡¾°¡£Òò´Ë£¬Óкܶ࿪ԴÏîÄ¿ÓÃÀ´¸ÄÉÆDockerµÄÍøÂ繦ÄÜ£¬Èçpipework¡¢weave¡¢flannel¡¢socketplaneµÈ¡£
ÍøÂçÅäÖù¤¾ßpipework
pipeorkÊÇÒ»¸ö¼òµ¥Ò×ÓõÄDockerÈÝÆ÷ÍøÂçÅäÖù¤¾ß¡£ÓÉ200¶àÐÐshell½Å±¾ÊµÏÖ¡£Í¨¹ýʹÓÃip¡¢brctl¡¢ovs-vsctlµÈÃüÁîÀ´ÎªDockerÈÝÆ÷ÅäÖÃ×Ô¶¨ÒåµÄÍøÇÅ¡¢Íø¿¨¡¢Â·Óɵȡ£ÓÐÈçϹ¦ÄÜ£º
Ö§³ÖʹÓÃ×Ô¶¨ÒåµÄ Libux Bridge¡¢veth pairΪÈÝÆ÷ÌṩͨÐÅ¡£
Ö§³ÖʹÓÃmacvlanÉ豸½«ÈÝÆ÷Á¬½Óµ½±¾µØÍøÂç¡£
Ö§³ÖDHCP»ñÈ¡ÈÝÆ÷µÄIP¡£
Ö§³ÖOpen vSwitch¡£
Ö§³ÖVLAN»®·Ö¡£
ÎÒ֮ǰд¹ýһƪ½éÉÜpipeworkµÄÎÄÕ£¬ÀïÃæÍ¨¹ý3¸öÀý×Ó½éÉÜÁËpipworkµÄʹÓÃ
£¨½«DockerÈÝÆ÷ÅäÖõ½±¾µØÍøÂç»·¾³ÖС¢µ¥Ö÷»úDockerÈÝÆ÷VLAN»®·Ö¡¢¶àÖ÷»úDockerÈÝÆ÷µÄVLAN»®·Ö£©£¬
ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔÈ¥¿´Ï£¬ÔÚÕâÀï http://www.sel.zju.edu.cn/?p=444 £¨ÊµÑéÊÒ²©¿Í£¬ÀïÃæÓкܶàDockerÏà¹ØµÄÎÄÕ£©
»ò http://www.infoq.com/cn/articl ... ctice
DockerÈÝÆ÷¿çÖ÷»úͨÐÅ
ÔÚĿǰDockerĬÈϵÄÍøÂç»·¾³Ï£¬µ¥Ì¨Ö÷»úÉϵÄDockerÈÝÆ÷¿ÉÒÔͨ¹ýdocker0ÍøÇÅÖ±½ÓͨÐÅ£¬¶ø²»Í¬Ö÷»úÉϵÄDockerÈÝÆ÷Ö®¼äÖ»ÄÜͨ¹ýÔÚÖ÷»úÉÏ×ö¶Ë¿ÚÓ³Éä½øÐÐͨÐÅ¡£ÕâÖÖ¶Ë¿ÚÓ³É䷽ʽ¶ÔºÜ¶à¼¯ÈºÓ¦ÓÃÀ´Ëµ¼«²»·½±ã¡£Èç¹ûÄÜÈÃDockerÈÝÆ÷Ö®¼äÖ±½ÓʹÓÃ×Ô¼ºµÄIPµØÖ·½øÐÐͨÐÅ£¬»á½â¾öºÜ¶àÎÊÌ⡣ĿǰʹDockerÈÝÆ÷¿çÖ÷»úͨÐÅÖ÷ÒªÓÐһϼ¸ÖÖ·½·¨£º
ÇŽӷ½·¨£º ͨ¹ý½«²»Í¬DockerÖ÷»úÉϵÄdocker0ÍøÇÅÇŽÓÔÚͬһ¸ö¶þ²ãÍøÂçÖУ¨Ê¹ÓÃÖ÷»úµÄÍø¿¨ÇŽӣ©£¬Ê¹µÃDockerÈÝÆ÷¿ÉÒÔ¿çÖ÷»úͨÐÅ¡£
ÈçÏÂͼ£º

Ö±½Ó·ÓÉ£º ͨ¹ýÔÚDockerÖ÷»úÉÏÌí¼Ó¾²Ì¬Â·ÓÉʵÏÖ¿çËÞÖ÷»úͨÐÅ¡£ÈçÏÂͼ£º

ËíµÀ·½·¨£ºÊ¹ÓÃGRE¡¢ VxLanËíµÀʵÏÖ¿çÖ÷»úͨÐÅ¡£
ǰÁ½ÖÖ·½·¨ÒªÇóÖ÷»úÔÚͬһ¸ö×ÓÍøÖУ¬²»³£Ê¹Óá£ËùÒÔÎÒÖ÷Òª½éÉÜËíµÀµÄ·½·¨¡£
OverlayËíµÀÄ£ÐÍ
OverlayÍøÂçÆäʵ¾ÍÊÇËíµÀ¼¼Êõ£¬¼´½«Ò»ÖÖÍøÂçÐÒé°ü×°ÔÚÁíÒ»ÖÖÐÒéÖд«ÊäµÄ¼¼Êõ¡£ËíµÀ±»¹ã·ºÓÃÓÚÁ¬½ÓÄÇЩÒòʹÓÃÆäËûÍøÂç¶ø±»¸ôÀëµÄÖ÷»úºÍÍøÂ磬½á¹ûÉú³ÉµÄÍøÂç¾ÍÊÇËùνµÄOverlayÍøÂç¡£ÒòΪËüÓÐЧµØ¸²¸ÇÔÚ»ù´¡ÍøÂçÖ®ÉÏ£¬Õâ¸öÄ£Ð;ͿÉÒԺܺõؽâ¾ö¿çÍøÂçʹDockerÈÝÆ÷ʵÏÖ¶þ²ã»òÈý²ãͨÐŵÄÐèÇó¡£Èçͬһ¹«Ë¾²»Í¬°ì¹«µØµã¼äÄÚÍøÁ¬½ÓµÄVPN¼¼Êõ£¬¾ÍÊǽ«Èý²ãIPÊý¾Ý°ü·â×°ÔÚËíµÀÐÒéÖнøÐд«Êä¡£
ʹÓÃgreËíµÀÁ¬½ÓµÄ¶àÖ÷»úÈÝÆ÷¼äͨÐÅ£¬ÈçÏÂͼËùʾ¡££¨OVS + gre£©

ÀàNeutronµÄ¶à×â»§µÄGREÍøÂç
ËíµÀ·½°¸µÄÁíÒ»¸öºÃ´¦¾ÍÊÇ¿ÉÒÔ½â¾öVLAN ID ²»×ãµÄÎÊÌâ¡£²»Í¬µÄ×⻧ʹÓò»Í¬µÄ
GRE IDÔÚËíµÀÖд«Êä¡£ÕâÑùµÄ·½°¸ÀàËÆÓÚOpenStackµÄneutronÍøÂ硣ʾÒâͼÈçÏ£º

Libnetwork ǰհ
LibnetworkÊÇDocker¹Ù·½½üÒ»¸öÔÂÀ´ÍƳöµÄÐÂÏîÄ¿£¬ÓÉÕâ¸öissue¶øÀ´¡£Ö¼ÔÚ½«DockerµÄÍøÂ繦ÄÜ´ÓDockerºËÐÄ´úÂëÖзÖÀë³öÈ¥£¬ÐγÉÒ»¸öµ¥¶ÀµÄ¿â¡£
Libnetworkͨ¹ý²å¼þµÄÐÎʽΪDockerÌá¹©ÍøÂ繦ÄÜ¡£ ʹµÃÓû§¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÇóʵÏÖ×Ô¼ºµÄDriverÀ´Ìṩ²»Í¬µÄÍøÂ繦ÄÜ¡£
ĿǰÖ÷ÒªÓÉsocketplaneµÄÄǰïÈËÔÚ¿ª·¢¡£
¹Ù·½Ä¿Ç°¼Æ»®ÊµÏÖÒÔÏÂDriver£º
Bridge £º Õâ¸öDriver¾ÍÊÇDockerÏÖÓÐÍøÂçBridgeģʽµÄʵÏÖ¡£
£¨»ù±¾Íê³É£¬Ö÷Òª´Ó֮ǰµÄDockerÍøÂç´úÂëÖÐÇ¨ÒÆ¹ýÀ´£©
Null £º DriverµÄ¿ÕʵÏÖ£¬ÀàËÆÓÚDocker ÈÝÆ÷µÄNoneģʽ¡£
Overlay £º ËíµÀģʽʵÏÖ¶àÖ÷»úͨÐŵķ½°¸¡£ £¨»¹Ö»ÊǸö¼Æ»®£¬¾ßÌåʵÏÖϸ½Ú»¹Ã»¶¨£©
LibnetworkËùҪʵÏÖµÄÍøÂçÄ£ÐÍ»ù±¾ÊÇÕâÑùµÄ£º Óû§¿ÉÒÔ´´½¨Ò»¸ö»ò¶à¸öÍøÂ磨һ¸öÍøÂç¾ÍÊÇÒ»¸öÍøÇÅ»òÕßÒ»¸öVLAN
£©£¬Ò»¸öÈÝÆ÷¿ÉÒÔ¼ÓÈëÒ»¸ö»ò¶à¸öÍøÂç¡£ ͬһ¸öÍøÂçÖÐÈÝÆ÷¿ÉÒÔͨÐÅ£¬²»Í¬ÍøÂçÖеÄÈÝÆ÷¸ôÀë¡£
1.7 °æ±¾µÄDocker½«»á°ÑLibnetworkÕûºÏ½øÀ´£¨Ä¿Ç°ÒѾÕûºÏ½øÈ¥ÁË£©£¬µ«¹¦Äܲ¢Ã»ÓÐÌ«´ó±ä»¯£¬ÒòΪĿǰ½öÍê³ÉÁËBridge
Driver¡£ Ö®ºó»á¼ÌÐøÍêÉÆ¡£
DockerÍøÂçµÄ·¢Õ¹ÒÔºó¾Í¶¼ÔÚÕâ¸öÏîÄ¿ÉÏÁË£¬Ä¿Ç°Õâ¸öÏîÄ¿²Å¸Õ¸Õ¿ªÊ¼£¬»¹ÓкܶණÎ÷ûÓÐÈ·¶¨¡£´ó¼ÒÓÐÐËȤ¿ÉÒÔ¶à¶à¹Ø×¢Ò»Ï¡£
|