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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
¿ìËÙÀí½âDocker - ÈÝÆ÷¼¶ÐéÄ⻯½â¾ö·½°¸
 
À´Ô´£º²©¿ÍÔ°  ·¢²¼ÓÚ 2015-1-23
  2789  次浏览      33
 

ÊÇʲô

¼òµ¥µÄ˵DockerÊÇÒ»¸ö¹¹½¨ÔÚLXCÖ®ÉϵÄ,»ùÓÚ½ø³ÌÈÝÆ÷(Processcontainer)µÄÇáÁ¿¼¶VM½â¾ö·½°¸

ÄÃÏÖʵÊÀ½çÖлõÎïµÄÔËÊä×÷Àà±È,ΪÁ˽â¾ö¸÷ÖÖÐͺŹæ¸ñ³ß´çµÄ»õÎïÔÚ¸÷ÖÖÔËÊ乤¾ßÉϽøÐÐÔËÊäµÄÎÊÌâ,ÎÒÃÇ·¢Ã÷Á˼¯×°Ïä

DockerµÄ³õÖÔÒ²¾ÍÊǽ«¸÷ÖÖÓ¦ÓóÌÐòºÍËûÃÇËùÒÀÀµµÄÔËÐл·¾³´ò°ü³É±ê×¼µÄcontainer/image,½ø¶ø·¢²¼µ½²»Í¬µÄƽ̨ÉÏÔËÐÐ

´ÓÀíÂÛÉÏ˵ÕâÒ»¸ÅÄî²¢²»ÐÂÏÊ,¸÷ÖÖÐéÄâ»úImageÒ²Æð×ÅÀàËÆµÄ×÷ÓÃ

Docker containerºÍÆÕͨµÄÐéÄâ»úImageÏà±È,×î´óµÄÇø±ðÊÇËü²¢²»°üº¬²Ù×÷ϵͳÄÚºË.

ÆÕͨÐéÄâ»ú½«Õû¸ö²Ù×÷ϵͳÔËÐÐÔÚÐéÄâµÄÓ²¼þƽ̨ÉÏ,½ø¶øÌṩÍêÕûµÄÔËÐл·¾³¹©Ó¦ÓóÌÐòÔËÐÐ,¶øDockerÔòÖ±½ÓÔÚËÞÖ÷ƽ̨ÉϼÓÔØÔËÐÐÓ¦ÓóÌÐò.±¾ÖÊÉÏËûÔڵײãʹÓÃLXCÆô¶¯Ò»¸öLinux Container,ͨ¹ýcgroupµÈ»úÖÆ¶Ô²»Í¬µÄcontainerÄÚÔËÐеÄÓ¦ÓóÌÐò½øÐиôÀë,ȨÏÞ¹ÜÀíºÍquota·ÖÅäµÈ

ÿ¸öcontainerÓµÓÐ×Ô¼º¶ÀÁ¢µÄ¸÷ÖÖÃüÃû¿Õ¼ä(Ò༴×ÊÔ´)°üÀ¨:

PID ½ø³Ì, MNT Îļþϵͳ, NET ÍøÂç, IPC , UTS Ö÷»úÃû µÈ

ÓëLXCÓÐʲô²»Í¬

»ù±¾ÉÏÄã¿ÉÒÔÈÏΪĿǰµÄDockerÊÇLXCµÄÒ»¸ö¸ß¼¶·â×°,ÌṩÁ˸÷ÖÖ¸¨Öú¹¤¾ßºÍ±ê×¼½Ó¿Ú·½±ãÄãʹÓÃLXC,Äã¿ÉÒÔÒÀ¿¿LXCºÍ¸÷Öֽű¾ÊµÏÖÓëdockerÀàËÆµÄ¹¦ÄÜ£¬¾ÍÏñÄ㲻ʹÓÃAPT/yumµÈ¹¤¾ßÒ²¿ÉÒÔ×Ô¼º¸ã¶¨Èí¼þ°ü°²×°Ò»Ñù£¬ÄãʹÓÃËûÃǵĹؼüÔ­ÒòÊÇ·½±ãÒ×Óã¡

ʵ¼ÊʹÓÃÖУ¬ÄãÒ»°ã²»ÓùØÐĵײãLXCµÄϸ½Ú,ͬʱҲ²»ÅŽ«À´dockerʵÏÖ»ùÓÚ·ÇLXC·½°¸µÄ¿ÉÄÜÐÔ

ÔÚLXCµÄ»ù´¡ÉÏ, Docker¶îÍâÌṩµÄFeature°üÀ¨£º±ê׼ͳһµÄ´ò°ü²¿ÊðÔËÐз½°¸£¬ ÀúÊ·°æ±¾¿ØÖÆ£¬ ImageµÄÖØÓã¬Image¹²Ïí·¢²¼µÈµÈ

Container¹¹½¨·½°¸

³ýÁËLXC£¬DockerµÄºËÐÄ˼Ïë¾ÍÌåÏÖÔÚËüµÄÔËÐÐÈÝÆ÷¹¹½¨·½°¸ÉÏ

ΪÁË×î´ó»¯ÖØÓÃImage£¬¼Ó¿ìÔËÐÐËÙ¶È£¬¼õÉÙÄÚ´æºÍ´ÅÅÌfootprint, Docker containerÔËÐÐʱËù¹¹ÔìµÄÔËÐл·¾³£¬Êµ¼ÊÉÏÊÇÓɾßÓÐÒÀÀµ¹ØÏµµÄ¶à¸öLayer×é³ÉµÄ¡£ÀýÈçÒ»¸öapacheµÄÔËÐл·¾³¿ÉÄÜÊÇÔÚ»ù´¡µÄrootfs imageµÄ»ù´¡ÉÏ£¬µþ¼ÓÁ˰üº¬ÀýÈçEmacsµÈ¸÷ÖÖ¹¤¾ßµÄimage£¬ÔÙµþ¼Ó°üº¬apache¼°ÆäÏà¹ØÒÀÀµlibraryµÄimage£¬ÕâЩimageÓÉAUFSÎļþϵͳ¼ÓÔØºÏ²¢µ½Í³Ò»Â·¾¶ÖУ¬ÒÔÖ»¶ÁµÄ·½Ê½´æÔÚ£¬×îºóÔÙµþ¼Ó¼ÓÔØÒ»²ã¿ÉдµÄ¿Õ°×µÄLayerÓÃ×÷¼Ç¼¶Ôµ±Ç°ÔËÐл·¾³Ëù×÷µÄÐ޸ġ£

ÓÐÁ˲㼶»¯µÄImage×ö»ù´¡£¬ÀíÏëÖУ¬²»Í¬µÄAPP¾Í¿ÉÒԼȿÉÄܵĹ²ÓõײãÎļþϵͳ£¬Ïà¹ØÒÀÀµ¹¤¾ßµÈ£¬Í¬Ò»¸öAPPµÄ²»Í¬ÊµÀýÒ²¿ÉÒÔʵÏÖ¹²Óþø´ó¶àÊýÊý¾Ý£¬½ø¶øÒÔcopy on writeµÄÐÎʽά»¤×Ô¼ºµÄÄÇÒ»·ÝÐ޸ĹýµÄÊý¾ÝµÈ

ÀúÊ·ºÍÉú̬»·¾³

DockerÏîÄ¿´ÓÆô¶¯µ½ÏÖÔÚ²»¹ýÒ»Äê¶àʱ¼ä£¬·¢Õ¹ÊÆÍ·»¹ÊǺÜѸÃ͵Ä

2013.01×öΪdotcloudÄÚ²¿ÏîÄ¿¿ªÊ¼Æô¶¯

2013.03.27Õýʽ×÷ΪpublicÏîÄ¿·¢²¼

2014.1 ±»BLACK DUCKÆÀѡΪ2013Äê10´ó¿ªÔ´ÐÂÏîÄ¿¡°TOP 10 OPEN SOURCE ROOKIE OF THE YEAR¡±

ĿǰµÄ״̬ ( 2014.3 )

Docker 0.8.1

10000+ github stars(top 50)

350+ contributors

1500+ fork

¾ßÌåÓ¦Ó÷½Ã棬¿ÉÒÔ¿´µ½°Ù¶ÈÖÁÉÙÔÚ2013Äê10Ô·ݾÍÒѾ­³É¹¦Ê¹ÓÃDockerÖ§³ÖÆäBAEƽ̨µÄPaas·þÎñ

°²×°ÔËÐкÍʹÓÃ

DockerËäÈ»ÊǺųÆbuild once£¬ runeverywhere¡£µ«ÊÇʵ¼ÊÉÏ»¹ÊÇÊÜÆäÒýÇæÒÀÀµ¹ØÏµµÄÏÞÖÆµÄ£¬Ä¿Ç°µÄ°æ±¾¾ßÌåÀ´Ëµ¶ÔϵͳҪÇó£º

1.Linux Kernel 3.8+

2.LXCsupport

3.64bitOS

4.AUFS

ÒÔÉÏÒªÇó£¬ÒÔubuntuΪÀý£¬ÐèÒª12.04ÅäºÏ 3.8kernelÉý¼¶£¬ »òÕß ubuntu 13.04+

ÔÚubuntu12.04ÉÏ£¬»ù±¾°²×°²½ÖèÈçÏÂ:

sudoapt-get update sudo apt-get install linux-image-generic-lts-raringlinux-headers-generic-lts-raring

sudoapt-key adv --keyserver keyserver.ubuntu.com --recv-keys36A1D7869245C8950F966E92D8576A8BA88D21E9

sudosh -c "echo deb http://get.docker.io/ubuntudocker main\ > /etc/apt/sources.list.d/docker.list"

sudoapt-get update

sudoapt-get install lxc-docker

Èç¹ûÄãÔÚ°²×°Ö®Ç°ÏëÒªÏÈÌåÑéÒ»ÏÂdockerµÄ»ù±¾²Ù×÷ÃüÁîµÈµÄ»°£¬ ¿ÉÒÔ³¢ÊÔÒ»ÏÂÕâ¸öÔÚÏßµÄlive½Ì³Ì https://www.docker.io/gettingstarted/#h_tutorial

³£ÓÃÃüÁî

·ÖÀàÁÐһϳ£ÓõÄCLIÃüÁî

1¡¢²Ö¿âÏà¹Ø

search/ pull / push / login etc.

Àý£ºdocker pull ubuntu ´Ó²Ö¿âÏÂÔØubuntuimage

2¡¢Images ²Ù×÷Ïà¹Ø

images/ rmi / build / export / import / save /load etc.

Àý£ºdocker images -t ÒÔÊ÷ÐνṹÁгöµ±Ç°±¾µØImage

3¡¢ÔËÐÐÏà¹Ø

run / start / stop / restart / attach /kill etc.

docker run -i -t ubuntu /bin/bash Æô¶¯ubuntu image£¬²¢½»»¥Ê½µÄÔËÐÐshell

4¡¢ÔÓÏî

Docker diff / commit

Dockerinfo / ps / inspect / port / logs / top / history etc.

¾ßÌådockerÃüÁîµÄʹÓòμû http://docs.docker.io/en/latest/reference/commandline/

³£¼ûÎÊÌâ

1¡¢Ê¹ÓÃNon rootÓû§

Ŀǰ°æ±¾µÄdockerÓÉÓÚʹÓÃSocket½øÐÐͨѶ£¬Òò´ËÐèÒªrootÓû§È¨ÏÞ sudo xxx£¬»òÕß½«ÐèҪʹÓÃDockerclientµÄÓû§¼ÓÈëdockerÓû§×é

sudogpasswd -a ${USER} docker

2¡¢ÍøÂçÏà¹ØÎÊÌâ

µ±ÄãÔÚÍø¹Ø±³ºóÐèҪͨ¹ý´úÀíÁ¬½ÓdockerµÄindexÊý¾Ý¿âʱ£¬¿ÉÒÔÊÖ¶¯¼ÓÉÏhttp_proxy»·¾³±äÁ¿À´Æô¶¯dockerdaemon

HTTP_PROXY=http://proxy_server:port docker -d &

¸üºÃµÄ×ö·¨ÊÇÐÞ¸Ä/etc/default/docker ( on ubuntu ),Ìí¼Ó exporthttp_proxy=proxy_server:port

ͬÑù£¬docker containerÈç¹ûÎÞ·¨×Ô¶¯ÕýÈ·µÄ´Óhost»·¾³ÖлñµÃDNSµÄÅäÖã¬ÔòÐèÒªÊÖ¶¯Ö¸¶¨DNS·þÎñÆ÷µØÖ·£¬Õâ¿ÉÒÔͨ¹ý docker -run --dns=xxx À´ÊµÏÖ£¬Ò²¿ÉÒÔÐÞ¸Ä/etc/default/dockerÌí¼ÓÀýÈç DOCKER_OPTS="-dns 8.8.8.8"

3¡¢ÌØÈ¨Ä£Ê½

ÔÚÕý³£Çé¿öÏ ÔÚcontainerÄÚ²¿ÄãûÓÐȨÏÞ²Ù×÷deviceÉ豸£¬¶øµ±Ç°°æ±¾ÖУ¬containerÄÚ²¿²¿·ÖÎļþÀýÈç/etc/hosts;/etc/hostname; /etc/resolve.confµÈÎļþÊǶ¯Ì¬Í¨¹ýmount¶¯Ì¬ÒÔÖ»¶ÁµÄÐÎʽ¼ÓÔØÉÏÀ´µÄ£¬ÀíÂÛÉÏ˵ÄãÓ¦¸ÃÕÒµ½ºÏÊʵķ½·¨È¥±£Ö¤ÕâЩ×Ô¶¯Éú³É²¢¼ÓÔØµÄÎļþµÄÕýÈ·ÐÔ (ÀýÈç ͨ¹ý--dnsÉèÖà resolve.conf )£¬µ«ÊÇÈç¹ûÓÉÓÚÌØÊâÔ­ÒòÄãÐèÒªÊÖ¶¯Ð޸ģ¬ÄÇôÄã¿ÉÒÔͨ¹ýÌØÈ¨Ä£Ê½Æô¶¯ docker client £º docker run --privileged£¬È»ºóÄã¿ÉÒÔÐ¶ÔØÕâЩÎļþ£¬×Ô¼ºÔÙ´´½¨Ðµİ汾

4¡¢¹ý¶àµÄ²ã¼¶ÒÀÀµ¹ØÏµ

ÒÔLayerµÄ·½Ê½ÊµÏÖAPPºÍÏà¹ØlibraryµÄcheap reuseºÍfast updateÊÇDockerµÄ¹Ø¼üËùÔÚ£¬²»¹ýÊÜĿǰAUFSÎļþϵͳµÄÏÞÖÆ£¬Ä¬ÈÏLayerµÄ²ã¼¶×î¶àÖ»ÄÜ´ïµ½127£¨Ôø¾­Ö»ÓÐ42£©£¬ÔÚʵ¼ÊʹÓÃÖÐÓжàÖÖÇé¿ö¿ÉÄܵ¼ÖÂÄãµÄcontainerµÄ²ã¼¶¹ØÏµ¿ìËÙÔö³¤µ½Õâ¸ö¼«ÏÞÖµ£¬Æ²¿ªÕâô¶àlayerµþ¼ÓÒÔºóAUFSµÄЧÂʲ»Ì¸£¬¸ü¶àÇé¿öÏÂÊÇÄãÎÞ·¨ÔÙ¸üй¹½¨ÄãµÄimageÁË

1.ʹÓÃDockerfile¹¹½¨Imageʱ£¬Ã¿ÌõÖ¸Áî¶¼»á¸ø×îÖÕµÄImageÔö¼ÓÒ»²ãlayerÒÀÀµ¹ØÏµ.

2.ÒÔÐ޸ģ¬Ìá½»£¬ÔÙÐÞ¸ÄÔÙÌá½»µÄ·½Ê½²»Í£µÄµ÷Õû£¬¸üÐÂÄãµÄImage

3.´Ó²Ö¿âÖÐÏÂÔØµÄ±ðÈ˵ÄImageÒѾ­°üº¬ÖÚ¶àµÄ²ã¼¶ÒÀÀµ¹ØÏµ£¬¶øÄãÐèÒª½øÒ»²½¸üÐÂÒÔ´´½¨Äã×Ô¼ºµÄ°æ±¾

ǰÁ½ÕßÔÚÒ»¶¨³Ì¶ÈÉÏ»¹ÊÇÄã×Ô¼º¿ÉÄܰѿصģ¬×îºóÒ»ÖÖÇé¿ö¾Íû°ì·¨ÁË¡£Õâ¸öÎÊÌâ×îÖձؽ«Ó°ÏìDockerµÄʵ¼Ê¿ÉÓÃÐÔ£¬Ä¿Ç°µÄ½â¾ö·½°¸°üÀ¨£º

1.ʹÓÃDockerfileʱ,¾¡¿ÉÄܺϲ¢¶à¸ö²Ù×÷£ºÀýÈçʹÓà "&&" »ò ";"ºÏ²¢ÔËÐжà¸öshellÃüÁ½«¶à¸öshellÃüÁîд³É½Å±¾£¬ÔÚdockerfileÖÐÌí¼Ó²¢ÔËÐÐÕâ¸ö½Å±¾

2.ͨ¹ýExportÔÙImport Image£¬¶ªÆúËùÓÐÀúÊ·ÐÅÏ¢ºÍÒÀÀµ¹ØÏµ£¬´´½¨Ò»¸öȫеÄimage

½«À´¿ÉÄܵĽâ¾ö·½°¸°üÀ¨£º

1.ÔÚDockerfileÖÐÌí¼Ó¶Ô¶à²½²Ù×÷µÄºÏ²¢Ìá½»µÄÖ§³Ö

2.ÍⲿµÄimage Flat¹¤¾ßµÄÖ§³Ö£¬Ä¿±êÊÇÄܹ»±£ÁôÀúÊ·ÐÅÏ¢µÈ

3.·ÇAUFSµÄÆäËüStorage½â¾ö·½°¸

Future development

ËäÈ»DockerĿǰĬÈÏʹÓÃLXCºÍAUFS£¬µ«ÊÇDockerµÄºËÐÄ˼Ïë±¾Éí£¬²¢²»Ç¿Öưó¶¨ÕâÁ½Õߣ¬0.8°æ±¾ÒѾ­¿ÉÒÔʹÓÃBTRFS£¬¶øÕû¸öDocker¿ò¼ÜÒ²¸Ä³ÉÁ˲å¼þʽµÄ¼Ü¹¹£¬±ãÓÚÌí¼ÓÌæ»»¸÷¸ö¹¦ÄÜÄ£¿é.

ÀýÈç¸ü¶àµÄStorage·½°¸µÄÖ§³Ö£¬¹æ±ÜAUFSµ±Ç°µÄÎÊÌ⣬³ýÁËLXCÒÔÍâ¸ü¶àµÄÐéÄ⻯·½°¸µÈ

   
2789 ´Îä¯ÀÀ       33
 
Ïà¹ØÎÄÕÂ

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

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

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ