Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Docker Éú̬¸ÅÀÀ
 
  2158  次浏览      28
 2018-5-16 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcnblogs£¬Ö÷Òª½éÉÜÁË docker ÈÝÆ÷¼¼ÊõµÄÓ¦Óã¬docker Ïà¹ØµÄÖØÒª¸ÅÄMoby ProjectµÈ¡£

Docker ºÍÈÝÆ÷¼¼ÊõµÄ·¢Õ¹¿ÉνÊÇÈÕÐÂÔÂÒ죬±¾ÎÄÊÔͼÒÔÈ«¾ÖµÄÊÓ½ÇÀ´ÊáÀíһϠdocker ĿǰµÄÉú̬Ȧ¡£¼ÈÈ»ÊǸÅÀÀ£¬ËùÒÔ²»»áÉæ¼°¾ßÌåµÄ¼¼Êõϸ½Ú¡£

Docker ×Ô´Ó·¢²¼ÒÔÀ´·¢ÉúÁ˺ܶàµÄ±ä»¯£¬²¢ÇÒÓÐЩ·½ÃæµÄ±ä»¯»¹·Ç³£´ó¡£¶ÔÓÚ¼¼Êõ°®ºÃÕßÀ´Ëµ£¬ÎÒÃÇϲ»¶¿á±ÐÐµĹ¦ÄÜ£¬Ï²»¶¾É¹¦ÄܵĸÄÉÆ¡£µ«¶ÔÓÚÉú²ú»·¾³ÖеÄʹÓÃÕßÀ´Ëµ£¬Æäʵ²»Ì«Ï²»¶ÕâÖÖÆµ·±µÄ±ä»¯£¡²»¹ÜÔõÑù£¬ÎÒÃǶ¼ÓбØÒªÀíÇå docker Éú̬ϵͳÖеÄÖÚ¶à¸ÅÄî¼°ËüÃÇÖ®¼äµÄ¹ØÏµ£¬ÒÔ¼° docker ×Ôµ®ÉúÖÁ½ñ(2018 Äê)µÄÀï³Ì±®ÐÔʼþ¡£

°Ù»¨Æë·ÅµÄÈÝÆ÷¼¼Êõ

ËäÈ» docker °ÑÈÝÆ÷¼¼ÊõÍÆÏòÁËá۷壬µ«ÈÝÆ÷¼¼ÊõÈ´²»ÊÇ´Ó docker µ®ÉúµÄ¡£Êµ¼ÊÉÏ£¬ÈÝÆ÷¼¼ÊõÁ¬Ð¼¼Êõ¶¼Ëã²»ÉÏ£¬ÒòΪËüµÄµ®ÉúºÍʹÓÃȷʵÓÐЩÄêÍ·ÁË¡£ÏÂÃæµÄÒ»´®Ãû³Æ¿ÏÄÜÓеÄÄ㶼ûÓÐÌý˵¹ý£¬µ«ËüÃǵÄÈ·¶¼ÊÇÈÝÆ÷¼¼ÊõµÄÓ¦Óãº

Chroot Jail

FreeBSD Jails

Linux VServer

Solaris Containers

OpenVZ

Process Containers

LXC

Warden

LMCTFY

Docker

RKT

Chroot Jail

¾ÍÊÇÎÒÃdz£¼ûµÄ chroot ÃüÁîµÄÓ÷¨¡£ËüÔÚ 1979 ÄêµÄʱºò¾Í³öÏÖÁË£¬±»ÈÏΪÊÇ×îÔçµÄÈÝÆ÷»¯¼¼ÊõÖ®Ò»¡£Ëü¿ÉÒÔ°ÑÒ»¸ö½ø³ÌµÄÎļþϵͳ¸ôÀëÆðÀ´¡£

The FreeBSD Jail

Freebsd Jail ʵÏÖÁ˲Ù×÷ϵͳ¼¶±ðµÄÐéÄ⻯£¬ËüÊDzÙ×÷ϵͳ¼¶±ðÐéÄ⻯¼¼ÊõµÄÏÈÇýÖ®Ò»¡£

Linux VServer

ʹÓÃÌí¼Óµ½ Linux Äں˵Äϵͳ¼¶±ðµÄÐéÄ⻯¹¦ÄÜʵÏÖµÄרÓÃÐéÄâ·þÎñÆ÷¡£

Solaris Containers

ËüÒ²ÊDzÙ×÷ϵͳ¼¶±ðµÄÐéÄ⻯¼¼Êõ£¬×¨Îª X86 ºÍ SPARC ϵͳÉè¼Æ¡£Solaris ÈÝÆ÷ÊÇϵͳ×ÊÔ´¿ØÖƺÍͨ¹ý "ÇøÓò" Ìṩ±ß½ç¸ôÀëµÄ×éºÏ¡£

OpenVZ

OpenVZ ÊÇÒ»ÖÖ Linux ÖвÙ×÷ϵͳ¼¶±ðµÄÐéÄ⻯¼¼Êõ¡£ ËüÔÊÐí´´½¨¶à¸ö°²È«¸ôÀëµÄ Linux ÈÝÆ÷£¬¼´ VPS¡£

Process Containers

Process ÈÝÆ÷ÓÉ Google µÄ¹¤³Ìʦ¿ª·¢£¬Ò»°ã±»³ÆÎª cgroups¡£

LXC

LXC ÓֽРLinux ÈÝÆ÷£¬ÕâÒ²ÊÇÒ»ÖÖ²Ù×÷ϵͳ¼¶±ðµÄÐéÄ⻯¼¼Êõ£¬ÔÊÐíʹÓõ¥¸ö Linux ÄÚºËÔÚËÞÖ÷»úÉÏÔËÐжà¸ö¶ÀÁ¢µÄϵͳ¡£

Warden

ÔÚ×î³õ½×¶Î£¬Warden ʹÓà LXC ×÷ΪÈÝÆ÷ÔËÐÐʱ¡£ Èç½ñÒѱ» CloudFoundy È¡´ú¡£

LMCTFY

LMCTY ÊÇ Let me contain that for you µÄËõд¡£ËüÊÇ Google µÄÈÝÆ÷¼¼ÊõÕ»µÄ¿ªÔ´°æ±¾¡£

Google µÄ¹¤³ÌʦһֱÔÚÓë docker µÄ libertainer ÍŶӺÏ×÷£¬²¢½« libertainer µÄºËÐĸÅÄî½øÐгéÏó²¢ÒÆÖ²µ½´ËÏîÄ¿ÖС£¸ÃÏîÄ¿µÄ½øÕ¹²»Ã÷£¬¹À¼Æ»á±» libcontainer È¡´ú¡£

Docker

Docker ÊÇÒ»¸ö¿ÉÒÔ½«Ó¦ÓóÌÐò¼°ÆäÒÀÀµ´ò°üµ½¼¸ºõ¿ÉÒÔÔÚÈκηþÎñÆ÷ÉÏÔËÐеÄÈÝÆ÷µÄ¹¤¾ß¡£

RKT

RKT ÊÇ Rocket µÄËõд£¬ËüÊÇÒ»¸öרעÓÚ°²È«ºÍ¿ª·Å±ê×¼µÄÓ¦ÓóÌÐòÈÝÆ÷ÒýÇæ¡£

ÕýÈçÎÒÃÇËù¿´µ½µÄ£¬docker ²¢²»ÊǵÚÒ»¸öÈÝÆ÷»¯¼¼Êõ£¬µ«ËüµÄÈ·ÊÇ×îÖªÃûµÄÒ»¸ö¡£Docker µ®ÉúÓÚ 2013 Ä꣬²¢»ñµÃÁË¿ìËٵķ¢Õ¹£¬ÏÂͼչʾÁ˵±Ç° docker ƽ̨ÖеÄ×é³É²¿·Ö(´ËͼÀ´×Ô»¥ÁªÍø)£º

Docker Á¢ÓÚϵͳ»ù´¡¼Ü¹¹Ö®Éϲ¢ÎªÓ¦ÓóÌÐòÌṩ֧³Å¡£ËüÓɳÆÎª containerd µÄÐÐÒµ±ê×¼ÈÝÆ÷ÔËÐÐʱ×é¼þ£¬³ÆÎª docker swarm µÄ±¾µØ±àÅŹ¤¾ß£¬ÒÔ¼°¿ªÔ´µÄ docker community °æ±¾ºÍÌṩÉÌÒµ¹ÜÀí·þÎñµÄ docker enterprise °æ×é³É¡£

Óë docker Ïà¹ØµÄÖØÒª¸ÅÄî

Docker & LXC

Docker µÄµÚÒ»¸öÖ´Ðл·¾³ÊÇ LXC£¬µ«´Ó°æ±¾ 0.9 ¿ªÊ¼ LXC ±» libcontainer È¡´ú¡£

Docker & libcontainer

Libcontainer Ϊ docker ·â×°ÁË Linux ÌṩµÄ»ù´¡¹¦ÄÜ£¬Èç cgroups£¬namespaces£¬netlink ºÍ netfilter µÈ£¬ÈçÏÂͼËùʾ(´ËͼÀ´×Ô»¥ÁªÍø)£º

2015 - Docker £¦ runC

2015 Ä꣬docker ·¢²¼ÁË runC£¬Ò»¸öÇáÁ¿¼¶µÄ¿çƽ̨µÄÈÝÆ÷ÔËÐÐʱ¡£ Õâ»ù±¾ÉϾÍÊÇÒ»¸öÃüÁîÐÐС¹¤¾ß£¬¿ÉÒÔÖ±½ÓÀûÓà libcontainer ÔËÐÐÈÝÆ÷£¬¶øÎÞÐèͨ¹ý docker engine¡£runC µÄÄ¿±êÊÇʹ±ê×¼ÈÝÆ÷ÔÚÈκεط½¶¼¿ÉÓá£

Docker & The Open Containers Initiative(OCI)

OCI ÊÇÒ»¸öÇáÁ¿¼¶µÄ¿ª·Åʽ¹ÜÀí¼Ü¹¹£¬ÓÉ docker£¬CoreOS ºÍÈÝÆ÷ÐÐÒµµÄÆäËûÁìµ¼³§ÉÌÓÚ 2015 Ä꽨Á¢¡£Ëüά»¤Ò»Ð©ÏîÄ¿£¬Èç runC £¬»¹ÓÐÈÝÆ÷ÔËÐÐʱ¹æ·¶ºÍ¾µÏñ¹æ·¶¡£OCI µÄÄ¿µÄÊÇÎ§ÈÆÈÝÆ÷ÐÐÒµÖÆ¶¨±ê×¼£¬±ÈÈçʹÓà docker ´´½¨µÄÈÝÆ÷¿ÉÒÔÔÚÈÎºÎÆäËûÈÝÆ÷ÒýÇæÉÏÔËÐС£

2016 - Docker & containerd

2016Ä꣬Docker ·Ö²ðÁË containerd£¬²¢½«Æä¾èÔù¸øÁËÉçÇø¡£½«Õâ¸ö×é¼þ·Ö½âΪһ¸öµ¥¶ÀµÄÏîÄ¿£¬Ê¹µÃ docker ½«ÈÝÆ÷µÄ¹ÜÀí¹¦ÄÜÒÆ³ö docker µÄºËÐÄÒýÇæ²¢ÒÆÈëÒ»¸öµ¥¶ÀµÄÊØ»¤½ø³Ì(¼´ containerd)¡£

Docker Components

·Ö²ðÍê containerd ºó£¬docker ¸÷×é¼þµÄ¹ØÏµÈçÏÂͼËùʾ(´ËͼÀ´×Ô»¥ÁªÍø)£º

ÖÁ´Ë£¬docker ´ÓÒ»¸öµ¥Ò»µÄÈí¼þÑݱä³ÉÁËÒ»Ì×Ï໥¶ÀÁ¢µÄ×é¼þºÍÏîÄ¿¡£

Docker ÈçºÎÔËÐÐÒ»¸öÈÝÆ÷£¿

1.Docker ÒýÇæ´´½¨ÈÝÆ÷Ó³Ïñ

2.½«ÈÝÆ÷Ó³Ïñ´«µÝ¸ø containerd

3.containerd µ÷ÓÃ containerd-shim

4.containerd-shim ʹÓà runC À´ÔËÐÐÈÝÆ÷

5.containerd-shim ÔÊÐíÔËÐÐʱ(±¾ÀýÖÐΪ runC)ÔÚÆô¶¯ÈÝÆ÷ºóÍ˳ö

¸ÃÄ£ÐÍ´øÀ´µÄ×î´óºÃ´¦ÊÇÔÚÉý¼¶ docker ÒýÇæÊ±²»»áÖжÏÈÝÆ÷µÄÔËÐС£

2017 - ÈÝÆ÷³ÉΪÖ÷Á÷

2017 ÄêÊÇÈÝÆ÷³ÉΪÖ÷Á÷¼¼ÊõµÄÒ»Ä꣬Õâ¾ÍÊÇΪʲô docker ÔÚ Linux Ö®ÍâÖ§³ÖÖÚ¶àÆ½Ì¨µÄÔ­Òò£¨Docker for Mac£¬Docker for Windows£¬Docker for AWS£¬GCP µÈ£©¡£

µ±ÈÝÆ÷¼¼Êõ±»´óÖÚ½ÓÊܺó£¬Docker ¹«Ë¾Òâʶµ½ÐèҪеÄÉú²úÄ£ÐÍ£¬Õâ¾ÍÊÇΪʲôËü¿ªÊ¼ Moby ÏîÄ¿¡£

Moby Project

Moby ÏîÄ¿¿ªÆôÁËʵÏÖЭ×÷ºÍÉú²úµÄÐÂÆªÕ¡£ËüÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬Ö¼ÔÚÍÆ½øÈí¼þµÄÈÝÆ÷»¯¡£Moby ÏîÄ¿ÌṩÁËÊýÊ®¸öÀָ߻ýľһÑùµÄ×é¼þÒÔ¼°½«ËüÃÇ×é×°³É¶¨ÖƵĻùÓÚÈÝÆ÷µÄϵͳµÄ¿ò¼Ü¡£

Docker Éú²úÄ£ÐÍÏñÈÎºÎÆäËû³£¼ûµÄµ¥¸ö¿ªÔ´ÏîĿһÑù¿ªÊ¼(´ËͼÀ´×Ô»¥ÁªÍø)£º

½ø¶ø½«µ¥¸öÏîÄ¿²ð·ÖΪ²»Í¬µÄ¿ª·Å×é¼þ(´ËͼÀ´×Ô»¥ÁªÍø)£º

È»ºó½ø»¯µ½¿ÉÒÔ¹²ÏíÕâЩ×é¼þÒÔ¼°×é¼þ¼¯ºÏ(assembly)µÄÄ£ÐÍ(´ËͼÀ´×Ô»¥ÁªÍø)£º

×îÖÕ´ïµ½Äܹ»Ìṩ¸ü¶à¹ØÓÚ×é¼þºÍͨÓÃ×é¼þ¼¯ºÏµÄЭ×÷µÄÄ£ÐÍ(´ËͼÀ´×Ô»¥ÁªÍø)£º

ÏÂÃæÎÒÃǾÍÀ´½éÉÜһЩ Moby ÏîÄ¿ÖеÄ×é¼þ¡£

Containerd

Containerd ÊÇ docker »ùÓÚÐÐÒµ±ê×¼´´½¨µÄºËÐÄÈÝÆ÷ÔËÐÐʱ¡£Ëü¿ÉÒÔÓÃ×÷ Linux ºÍ Windows µÄÊØ»¤½ø³Ì£¬²¢¹ÜÀíÕû¸öÈÝÆ÷ÉúÃüÖÜÆÚ¡£

Linuxkit

Linuxkit ÊÇ Moby ÏîÄ¿ÖеÄÁíÒ»¸ö×é¼þ£¬ËüÊÇΪÈÝÆ÷¹¹½¨°²È«¡¢¿çƽ̨¡¢¾«¼òϵͳµÄ¹¤¾ß¡£Ä¿Ç°ÒѾ­Ö§³ÖµÄ±¾µØ hypervisor ÓÐ hyper-v ºÍ vmware¡£Ö§³ÖµÄÔÆÆ½Ì¨ÓÐ AWS¡¢Azure µÈ¡£

Infrakit

Infrakit Ò²ÊÇ Moby ÏîÄ¿µÄÒ»²¿·Ö¡£ËüÊÇ´´½¨ºÍ¹ÜÀíÉùÃ÷ʽ¡¢²»¿É±äºÍ×ÔÎÒÐÞ¸´»ù´¡¼Ü¹¹µÄ¹¤¾ß°ü¡£

Infrakit Ö¼ÔÚ×Ô¶¯»¯»ù´¡¼Ü¹¹µÄÉèÖú͹ÜÀí£¬ÒÔÖ§³Ö·Ö²¼Ê½ÏµÍ³ºÍ¸ü¸ß¼¶±ðµÄÈÝÆ÷±àÅÅϵͳ¡£Infrakit ¶ÔÓÚÏñ Docker Swarm ºÍ Kubernetes ÕâÑùµÄ±àÅŹ¤¾ß»ò¿çÔ½ AWS µÈ¹«¹²ÔÆ´´½¨×Ô¶¯Ëõ·ÅȺ¼¯µÄÓÃÀýºÜÓÐÓá£

Libnetwork

Libnetwork ÊÇÓà Go ÓïÑÔʵÏÖµÄÈÝÆ÷ÍøÂç¹ÜÀíÏîÄ¿¡£ËüµÄÄ¿±êÊǶ¨ÒåÒ»¸öÈÝÆ÷ÍøÂçÄ£ÐÍ(CNM)£¬

²¢ÎªÓ¦ÓóÌÐòÌṩһÖµıà³Ì½Ó¿ÚÒÔ¼°ÍøÂç³éÏó¡£ÕâÑù¾Í¿ÉÒÔÂú×ãÈÝÆ÷ÍøÂçµÄ "¿É×éºÏ" ÐèÇó¡£

Docker & Docker Swarm

Docker Swarm ÊÇÒ»¸öÔÚ docker ÒýÇæÖй¹½¨µÄ±àÅŹ¤¾ß¡£´Ó docker 1.12 ¿ªÊ¼Ëü¾Í×÷Ϊһ¸ö¶ÀÁ¢µÄ¹¤¾ß±»Ô­Éú°üº¬ÔÚ docker engine ÖС£ÎÒÃÇ¿ÉÒÔʹÓà docker cli ͨ¹ý docker swarm ´´½¨Èº¼¯£¬²¢²¿ÊðºÍ¹ÜÀíÓ¦ÓóÌÐòºÍ·þÎñ¡£ÏÂͼÃèÊöÁË docker swarm ÔÚ docker ÌåϵÖеÄ×÷ÓÃ(´ËͼÀ´×Ô»¥ÁªÍø)£º

Docker£¦Kubernetes

ÔÚ docker swarm Óë kubernetes µÄ¾ºÕùÖУ¬ÏÔÈ»ÊÇ kubernetes Õ¼¾ÝÁËÓÅÊÆ¡£ËùÒÔ docker ½ô¼±µôÍ·£¬¿ªÊ¼Ô­ÉúµÄÖ§³ÖÓë kubernetes µÄ¼¯³É¡£Õâ¿ÉÊÇ 2017 ÄêÈÝÆ÷½çµÄÒ»´óÐÂÎŰ¡£¡ÖÁ´Ë£¬docker Óû§ºÍ¿ª·¢ÈËÔ±¿ÉÒÔ×ÔÓɵØÑ¡ÔñʹÓà kubernetes »òÊÇ swarm Ö´ÐÐÈÝÆ÷µÄ±àÅŹ¤×÷¡£ÎÒÃÇ¿ÉÒÔÈÏΪ docker Óë kubernetes ÁªÒöÁË(´ËͼÀ´×Ô»¥ÁªÍø)£º

еÄÖ§³Ö kubernetes ¼¯³ÉµÄ docker °æ±¾½«ÔÊÐíÓû§°ÑËûÃÇµÄ docker compose Ó¦ÓóÌÐò²¿ÊðΪ kubernetes ±¾µØ pod ºÍ·þÎñ¡£Kubernetes ÊÇÒ»¿î·Ç³£Ç¿´óÇÒÖð½¥±»´óÖÚÈϿɵı¾µØ±àÅŹ¤¾ß(´ËͼÀ´×Ô»¥ÁªÍø)£º

Ï£Íû´ó¼ÒûÓб»ÎÄÖÐÖÚ¶àµÄÃû³ÆºÍ¸ÅÄî¸ãºýÍ¿£¬ÈÃÎÒÃÇÒÔÏÂͼÀ´½áÊø±¾ÎÄ£¬ËüչʾÁË´Ó 2013 Äêµ½ 2017 Äê´Ó docker hub À­È¡¾µÏñ´ÎÊýµÄÇ÷ÊÆ£º

   
2158 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤