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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÉîÈëdz³öDocker£¨Ò»£©£ºDockerºËÐļ¼ÊõÔ¤ÀÀ
 
×÷Õß Ð¤µÂʱ £¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-08-28
  3248  次浏览      31
 

1. ±³¾°

1.1. ÓÉPaaSµ½Container

2013Äê2Ô£¬Ç°GlusterµÄCEO Ben GolubºÍdotCloudµÄCEO Solomon Hykes×øÔÚÒ»ÆðÁÄÌìʱ£¬Solomon̸µ½Ïë°ÑdotCloudÄÚ²¿Ê¹ÓõÄContainerÈÝÆ÷¼¼Êõµ¥¶ÀÄóöÀ´¿ªÔ´£¬È»ºóÎ§ÈÆÕâ¸ö¼¼Êõ¿ªÒ»¼Òй«Ë¾Ìṩ¼¼ÊõÖ§³Ö¡£28ËêµÄSolomonÔÚʹÓÃpython¿ª·¢dotCloudµÄPaaSÔÆÊ±·¢ÏÖ£¬Ê¹Óà LXC(Linux Container) ¼¼Êõ¿ÉÒÔ´òÆÆ²úÆ··¢²¼¹ý³ÌÖÐÓ¦Óÿª·¢¹¤³ÌʦºÍϵͳ¹¤³ÌʦÁ½ÕßÖ®¼äÎÞ·¨ÇáËÉЭ×÷·¢²¼²úÆ·µÄÄÑÌâ¡£Õâ¸öContainerÈÝÆ÷¼¼Êõ¿ÉÒÔ°Ñ¿ª·¢Õß´ÓÈÕ³£²¿ÊðÓ¦Óõķ±ÔÓ¹¤×÷ÖнâÍѳöÀ´£¬Èÿª·¢ÕßÄÜרÐÄдºÃ³ÌÐò£»´Óϵͳ¹¤³ÌʦµÄ½Ç¶ÈÀ´¿´Ò²ÊÇÒ»Ñù£¬ËûÃÇÆÈÇÐÐèÒª´Ó¸÷ÖÖ»ìÂҵIJ¿ÊðÎĵµÖнâÍѳöÀ´£¬ÈÃϵͳ¹¤³ÌʦרעÔÚÓ¦ÓõÄˮƽÀ©Õ¹¡¢Îȶ¨·¢²¼µÄ½â¾ö·½°¸ÉÏ¡£ËûÃÇÔ½ÉîÈ뽻̸£¬Ô½¾õµÃÕâÊÇÒ»´ÎÔÆ¼¼ÊõµÄ±ä¸ï£¬½ô½Ó×ÅÔÚ2013Äê3ÔÂDocker 0.1·¢²¼£¬À­¿ªÁË»ùÓÚÔÆ¼ÆËãÆ½Ì¨·¢²¼²úÆ··½Ê½µÄ±ä¸ïÐòÄ»¡£

1.2 Docker¼ò½é

Docker ÊÇ Docker.Inc ¹«Ë¾¿ªÔ´µÄÒ»¸ö»ùÓÚ LXC¼¼ÊõÖ®ÉϹ¹½¨µÄContainerÈÝÆ÷ÒýÇæ£¬ Ô´´úÂëÍйÜÔÚ GitHub ÉÏ, »ùÓÚGoÓïÑÔ²¢×ñ´ÓApache2.0ЭÒ鿪Դ¡£ DockerÔÚ2014Äê6ÔÂÕÙ¿ªDockerConf 2014¼¼Êõ´ó»áÎüÒýÁËIBM¡¢Google¡¢RedHatµÈÒµ½çÖªÃû¹«Ë¾µÄ¹Ø×¢ºÍ¼¼ÊõÖ§³Ö£¬ÎÞÂÛÊÇ´Ó GitHub ÉϵĴúÂë»îÔ¾¶È£¬»¹ÊÇRedhatÐû²¼ÔÚRHEL7ÖÐÕýʽ֧³ÖDocker, ¶¼¸øÒµ½çÒ»¸öÐźţ¬ÕâÊÇÒ»Ïî´´ÐÂÐ͵ļ¼Êõ½â¾ö·½°¸¡£ ¾ÍÁ¬ Google ¹«Ë¾µÄ Compute Engine Ò²Ö§³Ö docker ÔÚÆäÖ®ÉÏÔËÐÐ, ¹úÄÚ¡°BAT¡±ÏÈ·æÆóÒµ°Ù¶ÈBaidu App Engine(BAE)ƽ̨ҲÊÇÒÔDocker×÷ΪÆäPaaSÔÆ»ù´¡¡£

Docker²úÉúµÄÄ¿µÄ¾ÍÊÇΪÁ˽â¾öÒÔÏÂÎÊÌâ:

1) »·¾³¹ÜÀí¸´ÔÓ: ´Ó¸÷ÖÖOSµ½¸÷ÖÖÖмä¼þÔÙµ½¸÷ÖÖApp£¬Ò»¿î²úÆ·Äܹ»³É¹¦·¢²¼£¬×÷Ϊ¿ª·¢ÕßÐèÒª¹ØÐĵĶ«Î÷Ì«¶à£¬ÇÒÄÑÓÚ¹ÜÀí£¬Õâ¸öÎÊÌâÔÚÈí¼þÐÐÒµÖÐÆÕ±é´æÔÚ²¢ÐèÒªÖ±½ÓÃæ¶Ô¡£Docker¿ÉÒÔ¼ò»¯²¿Êð¶àÖÖÓ¦ÓÃʵÀý¹¤×÷£¬±ÈÈçWebÓ¦Óᢺǫ́ӦÓá¢Êý¾Ý¿âÓ¦ÓᢴóÊý¾ÝÓ¦ÓñÈÈçHadoop¼¯Èº¡¢ÏûÏ¢¶ÓÁеȵȶ¼¿ÉÒÔ´ò°ü³ÉÒ»¸öImage²¿Êð¡£ÈçͼËùʾ£º

2) ÔÆ¼ÆËãʱ´úµÄµ½À´: AWSµÄ³É¹¦, Òýµ¼¿ª·¢Õß½«Ó¦ÓÃ×ªÒÆµ½ÔÆÉÏ, ½â¾öÁËÓ²¼þ¹ÜÀíµÄÎÊÌ⣬Ȼ¶øÈí¼þÅäÖú͹ÜÀíÏà¹ØµÄÎÊÌâÒÀÈ»´æÔÚ (AWS cloudformationÊÇÕâ¸ö·½ÏòµÄÒµ½ç±ê×¼, ÑùÀýÄ£°å¿É²Î¿¼ÕâÀï)¡£DockerµÄ³öÏÖÕýºÃÄܰïÖúÈí¼þ¿ª·¢Õß¿ªÀ«Ë¼Â·£¬³¢ÊÔеÄÈí¼þ¹ÜÀí·½·¨À´½â¾öÕâ¸öÎÊÌâ¡£

3) ÐéÄ⻯Êֶεı仯: ÔÆÊ±´ú²ÉÓñêÅäÓ²¼þÀ´½µµÍ³É±¾£¬²ÉÓÃÐéÄ⻯ÊÖ¶ÎÀ´Âú×ãÓû§°´Ðè·ÖÅäµÄ×ÊÔ´ÐèÇóÒÔ¼°±£Ö¤¿ÉÓÃÐԺ͸ôÀëÐÔ¡£È»¶øÎÞÂÛÊÇKVM»¹ÊÇXen£¬ÔÚ Docker ¿´À´¶¼ÔÚÀË·Ñ×ÊÔ´£¬ÒòΪÓû§ÐèÒªµÄÊǸßЧÔËÐл·¾³¶ø·ÇOS, GuestOS¼ÈÀË·Ñ×ÊÔ´ÓÖÄÑÓÚ¹ÜÀí, ¸ü¼ÓÇáÁ¿¼¶µÄLXC¸ü¼ÓÁé»îºÍ¿ìËÙ¡£ÈçͼËùʾ£º

4) LXCµÄ±ãЯÐÔ: LXCÔÚ Linux 2.6 µÄ Kernel Àï¾ÍÒѾ­´æÔÚÁË£¬µ«ÊÇÆäÉè¼ÆÖ®³õ²¢·ÇÎªÔÆ¼ÆË㿼Âǵģ¬È±ÉÙ±ê×¼»¯µÄÃèÊöÊֶκÍÈÝÆ÷µÄ¿É±ãЯÐÔ£¬¾ö¶¨Æä¹¹½¨³öµÄ»·¾³ÄÑÓÚ·Ö·¢ºÍ±ê×¼»¯¹ÜÀí(Ïà¶ÔÓÚKVMÖ®ÀàimageºÍsnapshotµÄ¸ÅÄî)¡£Docker¾ÍÔÚÕâ¸öÎÊÌâÉÏ×ö³öÁËʵÖÊÐԵĴ´Ð·½·¨¡£

1.3 DockerµÄHello World

ÒÔFedora 20×÷ΪÖ÷»úΪÀý£¬Ö±½Ó°²×°docker-io£º

$ sudo yum -y install docker-io

Æô¶¯dockerºǫ́Daemon:

$ sudo systemctl start docker

ÅÜÎÒÃǵÚÒ»¸öHello WorldÈÝÆ÷£º

$ sudo docker run -i -t fedora /bin/echo hello world
Hello world

¿ÉÒÔ¿´µ½ÔÚÔËÐÐÃüÁîÐкóµÄÏÂÒ»Ðлá´òÓ¡³ö¾­µäµÄHello World×Ö·û´®¡£

2. ºËÐļ¼ÊõÔ¤ÀÀ

DockerºËÐÄÊÇÒ»¸ö²Ù×÷ϵͳ¼¶ÐéÄ⻯·½·¨, Àí½âÆðÀ´¿ÉÄܲ¢²»ÏñVMÄÇÑùÖ±¹Û¡£ÎÒÃÇ´ÓÐéÄ⻯·½·¨µÄËĸö·½Ã棺¸ôÀëÐÔ¡¢¿ÉÅä¶î/¿É¶ÈÁ¿¡¢±ãЯÐÔ¡¢°²È«ÐÔÀ´Ïêϸ½éÉÜDockerµÄ¼¼Êõϸ½Ú¡£

2.1. ¸ôÀëÐÔ: Linux Namespace(ns)

ÿ¸öÓû§ÊµÀýÖ®¼äÏ໥¸ôÀë, »¥²»Ó°Ïì¡£ Ò»°ãµÄÓ²¼þÐéÄ⻯·½·¨¸ø³öµÄ·½·¨ÊÇVM£¬¶øLXC¸ø³öµÄ·½·¨ÊÇcontainer£¬¸üϸһµã½²¾ÍÊÇkernel namespace¡£ÆäÖÐpid¡¢net¡¢ipc¡¢mnt¡¢uts¡¢userµÈnamespace½«containerµÄ½ø³Ì¡¢ÍøÂç¡¢ÏûÏ¢¡¢Îļþϵͳ¡¢UTS("UNIX Time-sharing System")ºÍÓû§¿Õ¼ä¸ôÀ뿪¡£

1) pid namespace

²»Í¬Óû§µÄ½ø³Ì¾ÍÊÇͨ¹ýpid namespace¸ôÀ뿪µÄ£¬ÇÒ²»Í¬ namespace ÖпÉÒÔÓÐÏàͬpid¡£ËùÓеÄLXC½ø³ÌÔÚdockerÖеĸ¸½ø³ÌΪdocker½ø³Ì£¬Ã¿¸ölxc½ø³Ì¾ßÓв»Í¬µÄnamespace¡£Í¬Ê±ÓÉÓÚÔÊÐíǶÌ×£¬Òò´Ë¿ÉÒԺܷ½±ãµÄʵÏÖ Docker in Docker¡£

2) net namespace

ÓÐÁË pid namespace, ÿ¸önamespaceÖеÄpidÄܹ»Ï໥¸ôÀ룬µ«ÊÇÍøÂç¶Ë¿Ú»¹Êǹ²ÏíhostµÄ¶Ë¿Ú¡£ÍøÂç¸ôÀëÊÇͨ¹ýnet namespaceʵÏֵģ¬ ÿ¸önet namespaceÓжÀÁ¢µÄ network devices, IP addresses, IP routing tables, /proc/net Ŀ¼¡£ÕâÑùÿ¸öcontainerµÄÍøÂç¾ÍÄܸôÀ뿪À´¡£dockerĬÈϲÉÓÃvethµÄ·½Ê½½«containerÖеÄÐéÄâÍø¿¨Í¬hostÉϵÄÒ»¸ödocker bridge: docker0Á¬½ÓÔÚÒ»Æð¡£

3) ipc namespace

containerÖнø³Ì½»»¥»¹ÊDzÉÓÃlinux³£¼ûµÄ½ø³Ì¼ä½»»¥·½·¨(interprocess communication - IPC), °üÀ¨³£¼ûµÄÐźÅÁ¿¡¢ÏûÏ¢¶ÓÁк͹²ÏíÄڴ档Ȼ¶øÍ¬ VM ²»Í¬µÄÊÇ£¬container µÄ½ø³Ì¼ä½»»¥Êµ¼ÊÉÏ»¹ÊÇhostÉϾßÓÐÏàͬpid namespaceÖеĽø³Ì¼ä½»»¥£¬Òò´ËÐèÒªÔÚIPC×ÊÔ´ÉêÇëʱ¼ÓÈënamespaceÐÅÏ¢ - ÿ¸öIPC×ÊÔ´ÓÐÒ»¸öΨһµÄ 32 λ ID¡£

4) mnt namespace

ÀàËÆchroot£¬½«Ò»¸ö½ø³Ì·Åµ½Ò»¸öÌØ¶¨µÄĿ¼ִÐС£mnt namespaceÔÊÐí²»Í¬namespaceµÄ½ø³Ì¿´µ½µÄÎļþ½á¹¹²»Í¬£¬ÕâÑùÿ¸ö namespace ÖеĽø³ÌËù¿´µ½µÄÎļþĿ¼¾Í±»¸ôÀ뿪ÁË¡£Í¬chroot²»Í¬£¬Ã¿¸önamespaceÖеÄcontainerÔÚ/proc/mountsµÄÐÅÏ¢Ö»°üº¬ËùÔÚnamespaceµÄmount point¡£

5) uts namespace

UTS("UNIX Time-sharing System") namespaceÔÊÐíÿ¸öcontainerÓµÓжÀÁ¢µÄhostnameºÍdomain name, ʹÆäÔÚÍøÂçÉÏ¿ÉÒÔ±»ÊÓ×÷Ò»¸ö¶ÀÁ¢µÄ½Úµã¶ø·ÇHostÉϵÄÒ»¸ö½ø³Ì¡£

6) user namespace

ÿ¸öcontainer¿ÉÒÔÓв»Í¬µÄ user ºÍ group id, Ò²¾ÍÊÇ˵¿ÉÒÔÔÚcontainerÄÚ²¿ÓÃcontainerÄÚ²¿µÄÓû§Ö´ÐгÌÐò¶ø·ÇHostÉϵÄÓû§¡£

2.2 ¿ÉÅä¶î/¿É¶ÈÁ¿ - Control Groups (cgroups)

cgroups ʵÏÖÁ˶Ô×ÊÔ´µÄÅä¶îºÍ¶ÈÁ¿¡£ cgroups µÄʹÓ÷dz£¼òµ¥£¬ÌṩÀàËÆÎļþµÄ½Ó¿Ú£¬ÔÚ /cgroupĿ¼ÏÂн¨Ò»¸öÎļþ¼Ð¼´¿Éн¨Ò»¸ögroup£¬ÔÚ´ËÎļþ¼ÐÖÐн¨taskÎļþ£¬²¢½«pidдÈë¸ÃÎļþ£¬¼´¿ÉʵÏֶԸýø³ÌµÄ×ÊÔ´¿ØÖÆ¡£groups¿ÉÒÔÏÞÖÆblkio¡¢cpu¡¢cpuacct¡¢cpuset¡¢devices¡¢freezer¡¢memory¡¢net_cls¡¢ns¾Å´ó×ÓϵͳµÄ×ÊÔ´£¬ÒÔÏÂÊÇÿ¸ö×ÓϵͳµÄÏêϸ˵Ã÷£º

blkio Õâ¸ö×ÓϵͳÉèÖÃÏÞÖÆÃ¿¸ö¿éÉ豸µÄÊäÈëÊä³ö¿ØÖÆ¡£ÀýÈç:´ÅÅÌ£¬¹âÅÌÒÔ¼°usbµÈµÈ¡£

cpu Õâ¸ö×ÓϵͳʹÓõ÷¶È³ÌÐòΪcgroupÈÎÎñÌṩcpuµÄ·ÃÎÊ¡£

cpuacct ²úÉúcgroupÈÎÎñµÄcpu×ÊÔ´±¨¸æ¡£

cpuset Èç¹ûÊǶàºËÐĵÄcpu£¬Õâ¸ö×Óϵͳ»áΪcgroupÈÎÎñ·ÖÅäµ¥¶ÀµÄcpuºÍÄÚ´æ¡£

devices ÔÊÐí»ò¾Ü¾øcgroupÈÎÎñ¶ÔÉ豸µÄ·ÃÎÊ¡£

freezer ÔÝÍ£ºÍ»Ö¸´cgroupÈÎÎñ¡£

memory ÉèÖÃÿ¸öcgroupµÄÄÚ´æÏÞÖÆÒÔ¼°²úÉúÄÚ´æ×ÊÔ´±¨¸æ¡£

net_cls ±ê¼Çÿ¸öÍøÂç°üÒÔ¹©cgroup·½±ãʹÓá£

ns Ãû³Æ¿Õ¼ä×Óϵͳ¡£

ÒÔÉϾŸö×Óϵͳ֮¼äÒ²´æÔÚ×ÅÒ»¶¨µÄ¹ØÏµ.ÏêÇéÇë²ÎÔĹٷ½Îĵµ¡£

2.3 ±ãЯÐÔ: AUFS

AUFS (AnotherUnionFS) ÊÇÒ»ÖÖ Union FS, ¼òµ¥À´Ëµ¾ÍÊÇÖ§³Ö½«²»Í¬Ä¿Â¼¹ÒÔØµ½Í¬Ò»¸öÐéÄâÎļþϵͳÏÂ(unite several directories into a single virtual filesystem)µÄÎļþϵͳ, ¸ü½øÒ»²½µÄÀí½â, AUFSÖ§³ÖΪÿһ¸ö³ÉԱĿ¼(ÀàËÆGit Branch)É趨readonly¡¢readwrite ºÍ whiteout-able ȨÏÞ, ͬʱ AUFS ÀïÓÐÒ»¸öÀàËÆ·Ö²ãµÄ¸ÅÄî, ¶Ô readonly ȨÏÞµÄ branch ¿ÉÒÔÂß¼­ÉϽøÐÐÐÞ¸Ä(ÔöÁ¿µØ, ²»Ó°Ïì readonly ²¿·ÖµÄ)¡£Í¨³£ Union FS ÓÐÁ½¸öÓÃ;, Ò»·½Ãæ¿ÉÒÔʵÏÖ²»½èÖú LVM¡¢RAID ½«¶à¸ödisk¹Òµ½Í¬Ò»¸öĿ¼ÏÂ, ÁíÒ»¸ö¸ü³£ÓõľÍÊǽ«Ò»¸ö readonly µÄ branch ºÍÒ»¸ö writeable µÄ branch ÁªºÏÔÚÒ»Æð£¬Live CDÕýÊÇ»ùÓÚ´Ë·½·¨¿ÉÒÔÔÊÐíÔÚ OS image ²»±äµÄ»ù´¡ÉÏÔÊÐíÓû§ÔÚÆäÉϽøÐÐһЩд²Ù×÷¡£Docker ÔÚ AUFS ÉϹ¹½¨µÄ container image Ò²ÕýÊÇÈç´Ë£¬½ÓÏÂÀ´ÎÒÃÇ´ÓÆô¶¯ container ÖÐµÄ linux ΪÀýÀ´½éÉÜ docker ¶ÔAUFSÌØÐÔµÄÔËÓá£

µäÐÍµÄÆô¶¯LinuxÔËÐÐÐèÒªÁ½¸öFS: bootfs + rootfs:

bootfs (boot file system) Ö÷Òª°üº¬ bootloader ºÍ kernel, bootloaderÖ÷ÒªÊÇÒýµ¼¼ÓÔØkernel, µ±boot³É¹¦ºó kernel ±»¼ÓÔØµ½ÄÚ´æÖкó bootfs¾Í±»umountÁË. rootfs (root file system) °üº¬µÄ¾ÍÊǵäÐÍ Linux ϵͳÖÐµÄ /dev, /proc,/bin, /etc µÈ±ê׼Ŀ¼ºÍÎļþ¡£

¶ÔÓÚ²»Í¬µÄlinux·¢Ðаæ, bootfs»ù±¾ÊÇÒ»ÖµÄ, µ«rootfs»áÓвî±ð, Òò´Ë²»Í¬µÄ·¢Ðаæ¿ÉÒÔ¹«ÓÃbootfs ÈçÏÂͼ:

µäÐ͵ÄLinuxÔÚÆô¶¯ºó£¬Ê×ÏȽ« rootfs ÉèÖÃΪ readonly, ½øÐÐһϵÁмì²é, È»ºó½«ÆäÇл»Îª "readwrite" ¹©Óû§Ê¹Óá£ÔÚDockerÖУ¬³õʼ»¯Ê±Ò²Êǽ« rootfs ÒÔreadonly·½Ê½¼ÓÔØ²¢¼ì²é£¬È»¶ø½ÓÏÂÀ´ÀûÓà union mount µÄ·½Ê½½«Ò»¸ö readwrite Îļþϵͳ¹ÒÔØÔÚ readonly µÄrootfsÖ®ÉÏ£¬²¢ÇÒÔÊÐíÔٴν«Ï²ãµÄ FS(file system) É趨Ϊreadonly ²¢ÇÒÏòÉϵþ¼Ó, ÕâÑùÒ»×éreadonlyºÍÒ»¸öwriteableµÄ½á¹¹¹¹³ÉÒ»¸öcontainerµÄÔËÐÐʱ̬, ÿһ¸öFS±»³Æ×÷Ò»¸öFS²ã¡£ÈçÏÂͼ:

µÃÒæÓÚAUFSµÄÌØÐÔ, ÿһ¸ö¶Ôreadonly²ãÎļþ/Ŀ¼µÄÐ޸ͼֻ»á´æÔÚÓÚÉϲãµÄwriteable²ãÖС£ÕâÑùÓÉÓÚ²»´æÔÚ¾ºÕù, ¶à¸öcontainer¿ÉÒÔ¹²ÏíreadonlyµÄFS²ã¡£ ËùÒÔDocker½«readonlyµÄFS²ã³Æ×÷ "image" - ¶ÔÓÚcontainer¶øÑÔÕû¸örootfs¶¼ÊÇread-writeµÄ£¬µ«ÊÂʵÉÏËùÓеÄÐ޸Ķ¼Ð´Èë×îÉϲãµÄwriteable²ãÖÐ, image²»±£´æÓû§×´Ì¬£¬Ö»ÓÃÓÚÄ£°å¡¢Ð½¨ºÍ¸´ÖÆÊ¹Óá£

ÉϲãµÄimageÒÀÀµÏ²ãµÄimage£¬Òò´ËDockerÖаÑϲãµÄimage³Æ×÷¸¸image£¬Ã»Óи¸imageµÄimage³Æ×÷base image¡£Òò´ËÏëÒª´ÓÒ»¸öimageÆô¶¯Ò»¸öcontainer£¬Docker»áÏȼÓÔØÕâ¸öimageºÍÒÀÀµµÄ¸¸imagesÒÔ¼°base image£¬Óû§µÄ½ø³ÌÔËÐÐÔÚwriteableµÄlayerÖС£ËùÓÐparent imageÖеÄÊý¾ÝÐÅÏ¢ÒÔ¼° ID¡¢ÍøÂçºÍlxc¹ÜÀíµÄ×ÊÔ´ÏÞÖÆµÈ¾ßÌåcontainerµÄÅäÖ㬹¹³ÉÒ»¸öDocker¸ÅÄîÉϵÄcontainer¡£ÈçÏÂͼ:

2.4 °²È«ÐÔ: AppArmor, SELinux, GRSEC

°²È«ÓÀÔ¶ÊÇÏà¶ÔµÄ£¬ÕâÀïÓÐÈý¸ö·½Ãæ¿ÉÒÔ¿¼ÂÇDockerµÄ°²È«ÌØÐÔ:

ÓÉkernel namespacesºÍcgroupsʵÏÖµÄLinuxϵͳ¹ÌÓеݲȫ±ê×¼;

Docker DeamonµÄ°²È«½Ó¿Ú;

Linux±¾ÉíµÄ°²È«¼Ó¹Ì½â¾ö·½°¸,ÀàÈçAppArmor, SELinux;

ÓÉÓÚ°²È«ÊôÓڷdz£¾ßÌåµÄ¼¼Êõ£¬ÕâÀï²»ÔÚ׸Êö£¬ÇëÖ±½Ó²ÎÔÄDocker¹Ù·½Îĵµ¡£

3. ×îÐÂ×ÓÏîÄ¿½éÉÜ

ÎÒÃÇÔÙÀ´¿´¿´DockerÉçÇø»¹ÓÐÄÄЩ×ÓÏîĿֵµÃÎÒÃÇÈ¥ºÃºÃÑо¿ºÍѧϰ¡£»ùÓÚÕâ¸öÄ¿µÄ£¬ÎÒ°ÑÓÐȤµÄºËÐÄÏîÄ¿¸ø´ó¼ÒÂÞÁгöÀ´£¬ÈÃÈÈÐĵĶÁÕßÄÜ¿ìËÙ¸ú½ø×Ô¼º¸ÐÐËȤµÄÏîÄ¿:

Libswarm£¬ÊÇSolomon Hykes (DockerµÄCTO) ÔÚDockerCon 2014·å»áÉÏÏòÉçÇø½éÉܵÄС°Àָ߻ýľ¡±¹¤¾ß: ËüÊÇÓÃÀ´Í³Ò»·Ö²¼Ê½ÏµÍ³µÄÍøÂç½Ó¿ÚµÄAPI¡£LibswarmÒª½â¾öµÄÎÊÌâÊÇ£¬»ùÓÚDocker¹¹½¨µÄ·Ö²¼Ê½Ó¦ÓÃÒѾ­´ßÉúÁ˶à¸ö»ùÓÚDockerµÄ·þÎñ·¢ÏÖ(Serivce Discovery)ÏîÄ¿£¬ÀýÈçetcd, fleet, geard, mesos, shipyard, serfµÈµÈ£¬Ã¿Ò»Ì×½â¾ö·½°¸¶¼ÓÐ×Ô¼ºµÄͨѶЭÒéºÍʹÓ÷½·¨£¬Ê¹ÓÃÆäÖеÄÈÎÒâÒ»¿î¶¼»á¾ÖÏÞÔÚijһ¸öÌØ¶¨µÄ¼¼Êõ·¶Î§ƒÈ¡£ËùÒÔDockerµÄCTO¾ÍÏëÓÃlibswarm±©Â¶³öͨÓõÄAPI½Ó¿Ú¸ø·Ö²¼Ê½ÏµÍ³Ê¹Ó㬴òÆÆ¼È¶¨µÄЭÒéÏÞÖÆ¡£Ä¿Ç°ÏîÄ¿»¹ÔÚÔçÆÚ·¢Õ¹½×¶Î£¬ÖµµÃ²ÎÓë¡£

Libchan£¬ÊÇÒ»¸öµ×²ãµÄÍøÂç¿â£¬ÎªÉϲã Libswarm Ìṩ֧³Ö¡£Ï൱ÓÚ¸øDocker¼ÓÉÏÁËZeroMQ»òRabbitMQ£¬ÕâÀï×Ô¼ºÊµÏÖÍøÂç¿âµÄºÃ´¦ÊǶÔDocker×öÁËÌØ±ðÓÅ»¯£¬¸ü¼ÓÇáÁ¿¼¶¡£Ò»°ã¿ª·¢Õß²»»áÖ±½ÓÓõ½Ëü£¬´ó¼Ò¸ü¶àµÄ»¹ÊÇʹÓÃLibswarmÀ´ºÍÈÝÆ÷½»»¥¡£Ï²»¶µ×²ãʵÏÖµÄÍøÂ繤³Ìʦ¿ÉÄܶԴ˸ÐÐËȤ£¬²»·ÁÒ»¿´¡£

Libcontainer£¬Docker¼¼ÊõµÄºËÐIJ¿·Ö£¬µ¥¶ÀÁгöÀ´Ò²ÊÇÒòΪÕâÒ»¿éµÄ¹¦ÄÜÏà¶Ô¶ÀÁ¢£¬¹¦ÄÜ´úÂëµÄµü´úÉý¼¶·Ç³£¿ì¡£ÏëÁ˽âDocker×îеÄÖ§³ÖÌØÐÔÓ¦¸Ã¶à¹Ø×¢Õâ¸öÄ£¿é¡£

4. ×ܽá

DockerÉçÇøÒ»Ö±ÔÚÃæ¶Ô¼¼ÊõÌôÕ½£¬´ÓÈݵظø³ö×Ô¼ºµÄ½â¾ö·½°¸¡£ÔƼÆËã·¢Õ¹ÖÁ½ñ£¬ÓкܶàÖØÒªµÄÎÊÌâûÓеõ½Í×ÉÆ½â¾ö£¬DockerÕýÔÚ³¢ÊÔÈÃÖ÷Á÷³§É̽ÓÊܲ¢Ó¦ÓÃËü¡£ÖÁ´Ë£¬ÒÔÉÏDocker¼¼ÊõµÄÔ¤ÀÀµ½´Ë¸æÒ»¶ÎÂ䣬±ÊÕßҲϣÍû¶ÁÕßÄܽáºÏ×Ô¼ºµÄʵ¼ÊÇé¿ö£¬³¢ÊÔʹÓÃDocker¼¼Êõ¡£ÒòΪֻÓÐÔÚÇ××ÔÌå»áµÄ»ù´¡Ö®ÉÏ£¬ÏñDockerÕâÑùµÄÔÆ¼¼Êõ²Å»á²úÉú¸ü´óµÄ¼ÛÖµ¡£

   
3248 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

ÿÈÕ¹¹½¨½â¾ö·½°¸
ÈçºÎÖÆ¶¨ÓÐЧµÄÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀíÖ÷Òª»î¶¯¼°ÊµÏÖ·½·¨
¹¹½¨¹ÜÀíÈëÃÅ
Ïà¹ØÎĵµ

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
CM09_CÅäÖùÜÀí±ê×¼
ʹÓÃSVN½øÐа汾¿ØÖÆ
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Èí¼þÅäÖùÜÀíµÄÎÊÌ⡢ĿµÄ
Èí¼þÅäÖùÜÀí¹æ·¶
CQWeb 7.1ÐÔÄܲâÊÔÓëµ÷ÓÅÖ¸ÄÏ
ΪʲôÐèҪʹÓÃClearCase
ClearCaseÓëRTCµÄ¼¯³É
ÀûÓÃClearQuest ½øÐвâÊÔ¹ÜÀí


²úÆ··¢²¼¹ÜÀí
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ß
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
ʹÓÃCCÓëCQ½øÐÐÏîĿʵ¼ù
CVSÓëÅäÖùÜÀí
Subversion¹ÜÀíÔ±


ÅäÖùÜÀíʵ¼ù£¨´Ó×éÖ¯¼¶µ½ÏîÄ¿¼¶£©
ͨºÅÔº ÅäÖùÜÀí¹æ·¶ÓëÓ¦ÓÃ
ÅäÖùÜÀíÈÕ¹¹½¨¼°³ÖÐø¼¯³É
µ¤·ð˹ ClearCaseÓëÅäÖùÜÀí
ÖйúÒÆ¶¯ Èí¼þÅäÖùÜÀí
ÖйúÒøÐÐ Èí¼þÅäÖùÜÀí
Ìì½ò»ªÒíÀ¶Ìì¿Æ¼¼ ÅäÖùÜÀíÓëPvcs