±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÍøÂ磬docker
µÄ¾µÏñÊÇλÓÚ×îµ×²ã£¬µ«Ê¹ÓÃËÞÖ÷Ö÷»úµÄ²Ù×÷ϵͳÄںˣ¬ÎÒÃÇ¿ÉÒÔ¿´µ½dockerµÄ¾µÏñÊ®·ÖµÄС£¬ÔÒòÊÇdocker¾µÏñÖ»ÊÇһЩ»·¾³µÄÅäÖã¬ËùÒÔÊ®·ÖµÄС£¬ËûÊÇÖ»ÄܶÁ²»ÄÜдµÄ¡£ |
|
Docker ¼Ü¹¹
Docker ʹÓÿͻ§¶Ë-·þÎñÆ÷ (C/S) ¼Ü¹¹Ä£Ê½£¬Ê¹ÓÃÔ¶³ÌAPIÀ´¹ÜÀíºÍ´´½¨DockerÈÝÆ÷¡£
Docker ÈÝÆ÷ͨ¹ý Docker ¾µÏñÀ´´´½¨¡£
ÈÝÆ÷Óë¾µÏñµÄ¹ØÏµÀàËÆÓÚÃæÏò¶ÔÏó±à³ÌÖеĶÔÏóÓëÀà¡£
Docker |
ÃæÏò¶ÔÏó |
ÈÝÆ÷ |
¶ÔÏó |
¾µÏñ |
Àà |

Docker ¾µÏñ(Images) |
Docker ¾µÏñÊÇÓÃÓÚ´´½¨ Docker ÈÝÆ÷µÄÄ£°å¡£ |
Docker ÈÝÆ÷(Container) |
ÈÝÆ÷ÊǶÀÁ¢ÔËÐеÄÒ»¸ö»òÒ»×éÓ¦Óᣠ|
Docker ¿Í»§¶Ë(Client) |
Docker ¿Í»§¶Ëͨ¹ýÃüÁîÐлòÕ߯äËû¹¤¾ßʹÓà Docker
API Óë Docker µÄÊØ»¤½ø³ÌͨÐÅ¡£ |
Docker Ö÷»ú(Host) |
Ò»¸öÎïÀí»òÕßÐéÄâµÄ»úÆ÷ÓÃÓÚÖ´ÐÐ Docker ÊØ»¤½ø³ÌºÍÈÝÆ÷¡£ |
Docker ²Ö¿â(Registry) |
Docker ²Ö¿âÓÃÀ´±£´æ¾µÏñ£¬¿ÉÒÔÀí½âΪ´úÂë¿ØÖÆÖеĴúÂë²Ö¿â¡£
Docker HubÌṩÁËÅÓ´óµÄ¾µÏñ¼¯ºÏ¹©Ê¹Óᣠ|
Docker Machine |
Docker MachineÊÇÒ»¸ö¼ò»¯Docker°²×°µÄÃüÁîÐй¤¾ß£¬Í¨¹ýÒ»¸ö¼òµ¥µÄÃüÁîÐм´¿ÉÔÚÏàÓ¦µÄƽ̨Éϰ²×°Docker£¬±ÈÈçVirtualBox¡¢
Digital Ocean¡¢Microsoft Azure¡£ |
ÔÀí
µÚÒ»²¿·Ö£ºDocker¾µÏñµÄ»ù±¾ÖªÊ¶
1.1 ʲôÊÇDocker¾µÏñ
´ÓÕûÌåµÄ½Ç¶ÈÀ´½²£¬Ò»¸öÍêÕûµÄDocker¾µÏñ¿ÉÒÔÖ§³ÅÒ»¸öDockerÈÝÆ÷µÄÔËÐУ¬ÔÚDockerÈÝÆ÷ÔËÐйý³ÌÖÐÖ÷ÒªÌṩÎļþϵͳÊӽǡ£ÀýÈçÒ»¸öubuntu:14.04µÄ¾µÏñ£¬ÌṩÁËÒ»¸ö»ù±¾µÄubuntu:14.04µÄ·¢Ðа棬µ±È»´Ë¾µÏñÊDz»°üº¬²Ù×÷ϵͳLinuxÄں˵ġ£
˵µ½´Ë£¬¿ÉÄܾÍÐèҪעÒâһϣ¬linuxÄں˺Íubuntu:14.04Docker¾µÏñµÄÇø±ðÁË¡£´«Í³ÐéÄâ»ú°²×°ubuntu:14.04»á°üº¬Á½²¿·Ö£¬µÚÒ»£¬Ä³Ò»¸öLinuxÄں˵ķ¢Ðа汾£¬±ÈÈçLinux
3.8°æ±¾µÄÄںˣ»µÚ¶þ£¬µÚÒ»¸öÌØ¶¨µÄUbuntu·¢Ðа棬Õⲿ·ÖÄÚÈݲ»°üº¬LinuxÄںˣ¬µ«Êǰüº¬LinuxÖ®ÍâµÄÈí¼þ¹ÜÀí·½Ê½£¬Èí¼þÇý¶¯£¬Èçapt-getÈí¼þ¹ÜÀí°üµÈ¡£
Àí½âÒÔÉÏÄÚÈÝÖ®ºó£¬¾Í¿ÉÒÔÀí½â£¬ÎªÊ²Ã´ÔÚÒ»¸öLinuxÄں˰汾Ϊ3.8µÄubuntu:14.04»ù´¡ÉÏ£¬¿ÉÒÔ°ÑLinuxÄں˰汾Éý¼¶µ½3.18£¬¶øubuntuµÄ°æ±¾ÒÀÈ»ÊÇ14.04¡£×îÖ÷ÒªµÄ¾ÍÊÇ£ºLinuxÄں˰汾Óëubuntu²Ù×÷ϵͳ·¢ÐаæÖ®¼äµÄÇø±ð¡£
LinuxÄںˣ«ubuntu²Ù×÷ϵͳ·¢Ðа棬×é³Éһ̨¹¤×÷µÄ»úÆ÷ÈÃÓû§ÌåÑé¡£ÄÇôÁé»îÌæ»»ubuntu²Ù×÷ϵͳ·¢Ðа棬ÄÇÊDz»ÊÇÒ²¿ÉÒÔʵÏÖÄØ¡£ÄÇôDockerºÜ·½±ãµÄÀûÓÃÁËÕâÒ»µã£¬¼¼ÊõÊֶξÍÊÇDocker¾µÏñ¡£
DockerµÄ¼Ü¹¹ÖУ¬Docker¾µÏñ¾ÍÊÇÀàËÆÓÚ¡°ubuntu²Ù×÷ϵͳ·¢Ðа桱£¬¿ÉÒÔÔÚÈκÎÂú×ãÒªÇóµÄLinuxÄÚºËÖ®ÉÏÔËÐС£¼òµ¥Ò»µãÓС°Debian²Ù×÷ϵͳ·¢Ðа桱Docker¾µÏñ¡¢¡°Ubuntu²Ù×÷ϵͳ·¢Ðа桱Docker¾µÏñ£»Èç¹ûÔÚDebian¾µÏñÖа²×°MySQL
5.6£¬ÄÇÎÒÃÇ¿ÉÒÔ½«ÆäÃüÃûΪMysql:5.6¾µÏñ£»Èç¹ûÔÚDebian¾µÏñÖа²×°ÓÐGolang 1.3,ÄÇÎÒÃÇ¿ÉÒÔ½«ÆäÃüÃûΪgolang:1.3¾µÏñ£»ÒÔ´ËÀàÍÆ£¬´ó¼Ò¿ÉÒÔ¸ù¾Ý×Ô¼º°²×°µÄÈí¼þ£¬µÃµ½ÈκÎ×Ô¼ºÏëÒªµÄ¾µÏñ¡£
ÄÇô¾µÏñ×îºóµÄ×÷ÓÃÊÇÊ²Ã´ÄØ£¿ºÜºÃÀí½â£¬»Øµ½LinuxÄÚºËÉÏÀ´ÔËÐУ¬Í¨¹ý¾µÏñÀ´ÔËÐÐʱÎÒÃdz£³£½«ÌṩµÄ»·¾³³ÆÎªÈÝÆ÷¡£
ÒÔÉÏÄÚÈÝÊÇ´Óºê¹ÛµÄ½Ç¶È¿´¿´Docker¾µÏñÊÇʲô£¬ÎÒÃÇÔÙ´Ó΢¹ÛµÄ½Ç¶È½øÒ»²½ÉîÈëDocker¾µÏñ¡£¸Õ²ÅÌáµ½ÁË¡°Debian¾µÏñÖа²×°MySQL
5.6£¬¾Í³ÉÁËmysql:5.6¾µÏñ¡±£¬ÆäʵÔÚ´ËʱDocker¾µÏñµÄ²ã¼¶¸ÅÄî¾ÍÌåÏÖ³öÀ´ÁË¡£µ×²ãÒ»¸öDebian²Ù×÷ϵͳ¾µÏñ£¬ÉÏÃæµþ¼ÓÒ»¸ömysql²ã£¬¾ÍÍê³ÉÁËÒ»¸ömysql¾µÏñµÄ¹¹½¨¡£²ã¼¶¸ÅÄî¾Í²»ÄÑÀí½â£¬´ËʱÎÒÃÇÒ»°ãdebian²Ù×÷ϵͳ¾µÏñ³ÆÎªmysql¾µÏñ²ãµÄ¸¸¾µÏñ¡£
²ã¼¶¹ÜÀíµÄ·½Ê½´ó´ó±ã½ÝÁËDocker¾µÏñµÄ·Ö·¢Óë´æ´¢¡£Ëµµ½·Ö·¢£¬´ó¼Ò×ÔÈ»»áÁªÏëµ½Docker¾µÏñµÄÁé»îÐÔ£¬´«ÊäµÄ±ã½ÝÐÔ£¬ÒÔ¼°¸ß³¬µÄÒÆÖ²ÐÔ¡£Docker
Hub£¬×÷ΪȫÇòµÄ¾µÏñ²Ö¿â£¬×÷ΪDockerÉú̬ÖеÄÊý¾Ý²Ö¿â£¬½«È«ÊÀ½çµÄDockerÊý¾Ý»ã¾ÛÔÚÒ»Æð£¬ÊÇDockerÉú̬µÄÃüÂö¡£
DockerÓÐÁ½·½ÃæµÄ¼¼Êõ·Ç³£ÖØÒª£¬µÚÒ»ÊÇLinux ÈÝÆ÷·½ÃæµÄ¼¼Êõ£¬µÚ¶þÊÇDocker¾µÏñµÄ¼¼Êõ¡£´Ó¼¼Êõ±¾ÉíÀ´½²£¬Á½ÕߵĿɸ´ÖÆÐÔºÜÇ¿£¬²»´æÔÚ¾ø¶ÔµÄ¼¼ÊõÄѵ㣬Ȼ¶øDocker
HubÓÉÓÚ´æÔÚ´óÁ¿µÄÊý¾ÝµÄÔÒò£¬µ¼ÖÂDocker HubµÄ¿É¸´ÖÆÐÔ¼¸ºõ²»´æÔÚ£¬ÕâÐèÒªÒ»¸öÉú̬µÄÓªÔì¡£
1.2 Docker¾µÏñµÄÄÚÈÝ
´óÖ½éÉÜÁËDocker¾µÏñÊÇʲô£¬ÎÒÃÇÀ´¿´¿´Docker¾µÏñÖÐÓÐÄÄЩÄÚÈÝ£¿
½éÉÜ֮ǰ£¬ÎÒÏÈ·ÖÏíһϣ¬ÎÒ¸öÈËÔÚ½Ó´¥DockerµÄÁ½Äêʱ¼äÖУ¬¶ÔDocker¾µÏñÄÚÈÝÈÏʶµÄ±ä»¯¡£
µÚÒ»½×¶Î£º³õ²½½Ó´¥Docker¡£ÏàÐźܶమºÃÕß¶¼»áºÍÎÒÒ»Ñù£¬ÓÐÕâÑùÒ»¸öÈÏʶ£ºDocker ¾µÏñ´ú±íÒ»¸öÈÝÆ÷µÄÎļþϵͳÄÚÈÝ£»
µÚ¶þ½×¶Î£º³õ²½½Ó´¥ÁªºÏÎļþϵͳ¡£ÁªºÏÎļþϵͳµÄ¸ÅÄÈÃÎÒÒâʶµ½¾µÏñ²ã¼¶¹ÜÀíµÄ¼¼Êõ£¬Ã¿Ò»²ã¾µÏñ¶¼ÊÇÈÝÆ÷ÎļþϵͳÄÚÈݵÄÒ»²¿·Ö¡£
µÚÈý½×¶Î£ºÑо¿¾µÏñÓëÈÝÆ÷µÄ¹ØÏµ£ºÈÝÆ÷ÊÇÒ»¸ö¶¯Ì¬µÄ»·¾³£¬Ã¿Ò»²ã¾µÏñÖеÄÎļþÊôÓÚ¾²Ì¬ÄÚÈÝ£¬È»¶ø Dockerfile
ÖÐµÄ ENV¡¢VOLUME¡¢CMD µÈÄÚÈÝ×îÖÕ¶¼ÐèÒªÂäʵµ½ÈÝÆ÷µÄÔËÐл·¾³ÖУ¬¶øÕâЩÄÚÈݾù²»¿ÉÄÜÖ±½Ó×øÂ䵽ÿһ²ã¾µÏñËù°üº¬µÄÎļþϵͳÄÚÈÝÖУ¬ÄÇ´Ëʱÿһ¸öDocker¾µÏñ»¹»á°üº¬jsonÎļþ¼Ç¼ÓëÈÝÆ÷Ö®¼äµÄ¹ØÏµ¡£
Òò´Ë£¬Docker¾µÏñµÄÄÚÈÝÖ÷Òª°üº¬Á½¸ö²¿·Ö£ºµÚÒ»£¬¾µÏñ²ãÎļþÄÚÈÝ£»µÚ¶þ£¬¾µÏñjsonÎļþ¡£
1.3 Docker¾µÏñ´æ´¢Î»ÖÃ
¼ÈÈ»ÊÇ˵¾µÏñ´æ´¢µÄλÖã¬ÄÇôӦ¸Ã°üº¬£º¾µÏñ²ãÎļþºÍ¾µÏñjsonÎļþ¡£ÈçÒ»¸öubuntu:14.04¾µÏñ£¬°üº¬4¸ö¾µÏñ²ã£¬ÔÚaufs´æ´¢Çý¶¯µÄÇé¿öÏ£¬ÔÚ´ÅÅÌÉϵÄÇé¿ö¿ÉÒÔÈçÒÔÏÂͼËùʾ£º
1.3.1 ²é¿´¾µÏñ²ã×é³É£º
ÎÒÃÇ¿ÉÒÔͨ¹ýÃüÁî docker history ubuntu:14.04 ²é¿´ ubuntu:14.04£¬½á¹ûÈçÏ£º

1.3.2 ¾µÏñ²ãÎļþÄÚÈÝ´æ´¢
Docker ¾µÏñ²ãµÄÄÚÈÝÒ»°ãÔÚ Docker ¸ùĿ¼µÄ aufs ·¾¶Ï£¬Îª /var/lib/docker/aufs/diff/£¬¾ßÌåÇé¿öÈçÏ£º

ͼÖÐÏÔʾÁ˾µÏñ ubuntu:14.04 µÄ 4 ¸ö¾µÏñ²ãÄÚÈÝ£¬ÒÔ¼°Ã¿¸ö¾µÏñ²ãÄÚµÄÒ»¼¶Ä¿Â¼Çé¿ö¡£ÐèÒª¶îÍâ×¢ÒâµÄÊÇ£º¾µÏñ²ã
d2a0ecffe6fa ÖÐûÓÐÈκÎÄÚÈÝ£¬Ò²¾ÍÊÇËùνµÄ¿Õ¾µÏñ¡£
1.3.3 ¾µÏñ json Îļþ´æ´¢
¶ÔÓÚÿһ¸ö¾µÏñ²ã£¬Docker ¶¼»á±£´æÒ»·ÝÏàÓ¦µÄ json Îļþ£¬json ÎļþµÄ´æ´¢Â·¾¶Îª /var/lib/docker/graph£¬ubuntu:14.04
ËùÓоµÏñ²ãµÄ json Îļþ´æ´¢Â·¾¶Õ¹Ê¾ÈçÏ£º

³ýÁË json Îļþ£¬´ó¼Ò»¹¿´µ½Ã¿Ò»¸ö¾µÏñ²ã»¹°üº¬Ò»¸ö layersize Îļþ£¬¸ÃÎļþÖ÷Òª¼Ç¼¾µÏñ²ãÄÚ²¿ÎļþÄÚÈݵÄ×Ü´óС¡£¼ÈȻ̸µ½Á˾µÏñ
json Îļþ£¬ÎªÁ˸øÏÂÎÄÆÌµæ£¬ÒÔÏÂÌù³ö ubuntu:14.04 ÖпվµÏñ²ã d2a0ecffe6fa
µÄ json Îļþ£º

Docker¾µÏñ´æ´¢£¬¾ÍºÍ´ó¼ÒÒ»ÆðÏÈ¿´µ½Õ⡣ͬʱ½éÉÜDocker¾µÏñµÄ»ù±¾ÖªÊ¶Ò²¸æÒ»¶ÎÂä¡£ÒÔÏÂÎÒÃǽøÈë´Ë´Î·ÖÏíµÄµÚ¶þ²¿·Ö¡£
µÚ¶þ²¿·Ö Dockerfile¡¢Docker¾µÏñºÍDockerÈÝÆ÷µÄ¹ØÏµ
Dockerfile ÊÇÈí¼þµÄÔ²ÄÁÏ£¬Docker ¾µÏñÊÇÈí¼þµÄ½»¸¶Æ·£¬¶ø Docker ÈÝÆ÷Ôò¿ÉÒÔÈÏΪÊÇÈí¼þµÄÔËÐÐ̬¡£´ÓÓ¦ÓÃÈí¼þµÄ½Ç¶ÈÀ´¿´£¬Dockerfile¡¢Docker
¾µÏñÓë Docker ÈÝÆ÷·Ö±ð´ú±íÈí¼þµÄÈý¸ö²»Í¬½×¶Î£¬Dockerfile ÃæÏò¿ª·¢£¬Docker
¾µÏñ³ÉΪ½»¸¶±ê×¼£¬Docker ÈÝÆ÷ÔòÉæ¼°²¿ÊðÓëÔËά£¬ÈýÕßȱһ²»¿É£¬ºÏÁ¦³äµ± Docker ÌåϵµÄ»ùʯ¡£
¼òµ¥À´½²£¬Dockerfile¹¹½¨³öDocker¾µÏñ£¬Í¨¹ýDocker¾µÏñÔËÐÐDockerÈÝÆ÷¡£
ÎÒÃÇ¿ÉÒÔ´ÓDockerÈÝÆ÷µÄ½Ç¶È£¬À´·´ÍÆÈýÕߵĹØÏµ¡£Ê×ÏÈ¿ÉÒÔÀ´¿´ÏÂͼ£º

ÎÒÃǼÙÉèÕâ¸öÈÝÆ÷µÄ¾µÏñͨ¹ýÒÔÏÂDockerfile¹¹½¨¶øµÃ£º
FROM ubuntu:14.04
ADD run.sh /
VOLUME /data
CMD ["./run.sh"] |
2.1 DockerfileÓëDocker¾µÏñ
Ê×ÏÈ£¬ÎÒÃǽáºÏÉÏͼÀ´¿´¿´DockerfileÓëDocker¾µÏñÖ®¼äµÄ¹ØÏµ¡£
FROM ubuntu:14.04£ºÉèÖûù´¡¾µÏñ£¬´Ëʱ»áʹÓûù´¡¾µÏñ ubuntu:14.04 µÄËùÓоµÏñ²ã£¬Îª¼òµ¥Æð¼û£¬Í¼Öн«Æä×÷Ϊһ¸öÕûÌåչʾ¡£
ADD run.sh /£º½« Dockerfile ËùÔÚĿ¼µÄÎļþ run.sh ¼ÓÖÁ¾µÏñµÄ¸ùĿ¼£¬´ËʱÐÂÒ»²ãµÄ¾µÏñÖ»ÓÐÒ»ÏîÄÚÈÝ£¬¼´¸ùĿ¼ÏµÄ
run.sh¡£
VOLUME /data£ºÉ趨¾µÏñµÄ VOLUME£¬´Ë VOLUME ÔÚÈÝÆ÷ÄÚ²¿µÄ·¾¶Îª /data¡£ÐèҪעÒâµÄÊÇ£¬´Ëʱ²¢Î´ÔÚÐÂÒ»²ãµÄ¾µÏñÖÐÌí¼ÓÈκÎÎļþ£¬¼´¹¹½¨³öµÄ´Å²ã¾µÏñÖÐÎļþΪ¿Õ£¬µ«¸üÐÂÁ˾µÏñµÄ
json Îļþ£¬ÒÔ±ãͨ¹ý´Ë¾µÏñÆô¶¯ÈÝÆ÷ʱ»ñÈ¡Õâ·½ÃæµÄÐÅÏ¢¡£
CMD ["./run.sh"]£ºÉèÖþµÏñµÄĬÈÏÖ´ÐÐÈë¿Ú£¬´ËÃüÁîͬÑù²»»áÔÚн¨¾µÏñÖÐÌí¼ÓÈκÎÎļþ£¬½ö½öÔÚÉÏÒ»²ã¾µÏñ
json ÎļþµÄ»ù´¡ÉϸüÐÂн¨¾µÏñµÄ json Îļþ¡£
Òò´Ë£¬Í¨¹ýÒÔÉÏ·ÖÎö£¬ÒÔÉϵÄDockerfile¿ÉÒÔ¹¹½¨³öÒ»¸öеľµÏñ£¬°üº¬4¸ö¾µÏñ²ã£¬Ã¿Ò»ÌõÃüÁî»áºÍÒ»¸ö¾µÏñ²ã¶ÔÓ¦£¬¾µÏñÖ®¼ä»á´æÔÚ¸¸×Ó¹ØÏµ¡£Í¼ÖкÜÇå³þµÄ±íÃ÷ÁËÕâЩ¹ØÏµ¡£
2.2 Docker¾µÏñÓëDockerÈÝÆ÷µÄ¹ØÏµ
Docker¾µÏñÊÇDockerÈÝÆ÷ÔËÐеĻù´¡£¬Ã»ÓÐDocker¾µÏñ£¬¾Í²»¿ÉÄÜÓÐDockerÈÝÆ÷£¬ÕâÒ²ÊÇDockerµÄÉè¼ÆÔÔòÖ®Ò»¡£
¿ÉÒÔÀí½âµÄÊÇ£ºDocker¾µÏñ±Ï¾¹ÊǾµÏñ£¬ÊôÓÚ¾²Ì¬µÄÄÚÈÝ£»¶øDockerÈÝÆ÷¾Í²»Ò»ÑùÁË£¬ÈÝÆ÷ÊôÓÚ¶¯Ì¬µÄÄÚÈÝ¡£¶¯Ì¬µÄÄÚÈÝ£¬´ó¼ÒºÜÈÝÒ×ÁªÏëµ½½ø³Ì£¬Äڴ棬CPUµÈÖ®ÀàµÄ¶«Î÷¡£µÄÈ·£¬DockerÈÝÆ÷×÷Ϊ¶¯Ì¬µÄÄÚÈÝ£¬¶¼»á°üº¬ÕâЩ¡£
ΪÁ˱ãÓÚÀí½â£¬´ó¼Ò¿ÉÒÔ°ÑDockerÈÝÆ÷£¬Àí½âΪһ¸ö»ò¶à¸öÔËÐнø³Ì£¬¶øÕâЩÔËÐнø³Ì½«Õ¼ÓÐÏàÓ¦µÄÄڴ棬ÏàÓ¦µÄCPU¼ÆËã×ÊÔ´£¬ÏàÓ¦µÄÐéÄâÍøÂçÉ豸ÒÔ¼°ÏàÓ¦µÄÎļþϵͳ×ÊÔ´¡£¶øDockerÈÝÆ÷ËùÕ¼ÓõÄÎļþϵͳ×ÊÔ´£¬Ôòͨ¹ýDocker¾µÏñµÄ¾µÏñ²ãÎļþÀ´Ìṩ¡£
ÄÇô×÷Ϊ¾²Ì¬µÄ¾µÏñ£¬ÈçºÎ²ÅÓÐÄÜÁ¦×ª»¯ÎªÒ»¸ö¶¯Ì¬µÄDockerÈÝÆ÷ÄØ£¿´Ëʱ£¬ÎÒÃÇ¿ÉÒÔÏëÏ󣺵ÚÒ»£¬×ª»¯µÄÒÀ¾ÝÊÇʲô£»µÚ¶þ£¬ÓÉËÀ´Ö´ÐÐÕâ¸öת»¯²Ù×÷¡£
Æäʵ£¬×ª»¯µÄÒÀ¾ÝÊÇÿ¸ö¾µÏñµÄjsonÎļþ£¬Docker¿ÉÒÔͨ¹ý½âÎöDocker¾µÏñµÄjsonµÄÎļþ£¬»ñÖªÓ¦¸ÃÔÚÕâ¸ö¾µÏñÖ®ÉÏÔËÐÐʲôÑùµÄ½ø³Ì£¬Ó¦¸ÃΪ½ø³ÌÅäÖÃÔõôÑùµÄ»·¾³±äÁ¿£¬´ËʱҲ¾ÍʵÏÖÁ˾²Ì¬Ïò¶¯Ì¬µÄת±ä¡£
ËÀ´Ö´ÐÐÕâ¸öת»¯¹¤×÷£¿´ð°¸ÊÇDockerÊØ»¤½ø³Ì¡£Ò²Ðí´ó¼ÒÔç¾ÍÀí½âÕâÑùÒ»¾ä»°£ºDockerÈÝÆ÷ʵÖÊÉϾÍÊÇÒ»¸ö»òÕß¶à¸ö½ø³Ì£¬¶øÈÝÆ÷µÄ¸¸½ø³Ì¾ÍÊÇDockerÊØ»¤½ø³Ì¡£ÕâÑùµÄ£¬×ª»¯¹¤×÷µÄÖ´ÐоͲ»ÄÑÀí½âÁË£ºDockerÊØ»¤½ø³ÌÊÖÎÕDocker¾µÏñµÄjsonÎļþ£¬ÎªÈÝÆ÷ÅäÖÃÏàÓ¦µÄ»·¾³£¬²¢ÕæÕýÔËÐÐDocker¾µÏñËùÖ¸¶¨µÄ½ø³Ì£¬Íê³ÉDockerÈÝÆ÷µÄÕæÕý´´½¨¡£
DockerÈÝÆ÷ÔËÐÐÆðÀ´Ö®ºó£¬Docker¾µÏñjsonÎļþ¾Íʧȥ×÷ÓÃÁË¡£´ËʱDocker¾µÏñµÄ¾ø´ó²¿·Ö×÷ÓþÍÊÇ£ºÎªDockerÈÝÆ÷Ìṩһ¸öÎļþϵͳµÄÊӽǣ¬¹©ÈÝÆ÷ÄÚ²¿µÄ½ø³Ì·ÃÎÊÎļþ×ÊÔ´¡£
Ôٴλص½ÉÏͼ£¬ÎÒÃÇÔÙÀ´¿´¿´ÈÝÆ÷ºÍ¾µÏñÖ®¼äµÄÒ»Ð©ÌØÊâ¹ØÏµ¡£Ê×ÏÈ£¬Ö®Ç°ÒѾÌá¼°Docker¾µÏñÊÇ·Ö²ã¹ÜÀíµÄ£¬¹ÜÀíDockerÈÝÆ÷µÄʱºò£¬Docker¾µÏñÈÔÈ»ÊÇ·Ö²ã¹ÜÀíµÄ¡£ÓÉÓÚ´Ëʱ¶¯Ì¬µÄÈÝÆ÷ÖÐÒѾ´æÔÚ½ø³Ì£¬½ø³Ì¾Í»á¶ÔÎļþϵͳÊÓ½ÇÄÚµÄÎļþ½øÐжÁд²Ù×÷£¬Òò´Ë£¬¾Í»áÉæ¼°Ò»¸öÎÊÌ⣺ÈÝÆ÷ÊÇ·ñ»á´Û¸ÄDocker¾µÏñµÄÄÚÈÝ£¿
´ð°¸×ÔÈ»ÊDz»»áµÄ¡£Í³Ò»À´½²£¬ÕýÈçÉÏͼ£¬ËùÓеÄDocker¾µÏñ²ã¶ÔÓÚÈÝÆ÷À´Ëµ£¬¶¼ÊÇÖ»¶ÁµÄ£¬ÈÝÆ÷¶ÔÓÚÎļþµÄд²Ù×÷¾ø¶Ô²»»á×÷ÓÃÔÚ¾µÏñÖС£
¼ÈÈ»Èç´Ë£¬ÊµÏÖµÄÔÀí¾ÍºÜÖØÒª£¬¾¿Æä¸ù±¾£ºDockerÊØ»¤½ø³Ì»áÔÚDocker¾µÏñµÄ×îÉϲãÖ®ÉÏ£¬ÔÙÌí¼ÓÒ»¸ö¿É¶Áд²ã£¬ÈÝÆ÷ËùÓеÄд²Ù×÷¶¼»á×÷Óõ½ÕâÒ»²ãÖС£¶øÈç¹ûDockerÈÝÆ÷ÐèҪдµ×²ãDocker¾µÏñÖеÄÎļþ£¬ÄÇô´Ëʱ¾Í»áÉæ¼°Ò»¸ö½ÐCopy£on£WriteµÄ»úÖÆ£¬¼´aufsµÈÁªºÏÎļþϵͳ±£Ö¤£ºÊ×ÏȽ«´ËÎļþ´ÓDocker¾µÏñ²ãÖп½±´ÖÁ×îÉϲãµÄ¿É¶Áд²ã£¬È»ºóÈÝÆ÷½ø³ÌÔÙ¶Ô¶Áд²ãÖеĸ±±¾½øÐÐд²Ù×Ý¡£¶ÔÓÚÈÝÆ÷½ø³ÌÀ´½²£¬ËüÖ»ÄÜ¿´µ½×îÉϲãµÄÎļþ¡£
ÄÇ×îºóÎÒÃÇÔÙÀ´ËµËµ£ºDockerÈÝÆ÷µÄÎļþϵͳÊÓ½ÇÖУ¬µ½µ×ÊDz»ÊÇ´æÔÚһЩÄÚÈÝ£¬²»ÊÇ´æ´¢ÓÚDocker¾µÏñÖеģ¿
Õâ´ÎµÄ´ð°¸ÒÀ¾ÉÊǿ϶¨µÄ¡£
ÔÙ´ÎÖØÉêÒ»µã£¬Docker¾µÏñÖд洢µÄ¶¼ÊÇһЩ¾²Ì¬Îļþ¡£ÕâЩÎļþÔÔòÉÏÓ¦¸ÃºÍÈÝÆ÷¾ßÌåÐÅÏ¢ÒÔ¼°Ö÷»úÐÅÏ¢ÍêÈ«½âź¡£ÄÇôDockerÈÝÆ÷Öв»´æÔÚDocker¾µÏñÖеÄÄÚÈÝÖ÷ÒªÓÐÒÔϼ¸µã£º
1./procÒÔ¼°/sysµÈÐéÄâÎļþϵͳµÄÄÚÈÝ
2.ÈÝÆ÷µÄhostsÎļþ£¬hostnameÎļþÒÔ¼°resolv.confÎļþ£¬ÕâЩʾßÌå»·¾³µÄÐÅÏ¢£¬ÔÔòÉϵÄÈ·²»Ó¦¸Ã±»´òÈë¾µÏñ¡£
3.ÈÝÆ÷µÄVolume·¾¶£¬Õⲿ·ÖµÄÊÓ½ÇÀ´Ô´ÓÚ´ÓËÞÖ÷»úÉϹÒÔØµ½ÈÝÆ÷ÄÚ²¿µÄ·¾¶
4.²¿·ÖµÄÉ豸Îļþ
QAÑ¡¼¯£º
ÎÊ£ºÎªÊ²Ã´Ò»¸öubuntu:14.04¾µÏñµÄ¾µÏñ²ãµÄÊýÁ¿ÊÇ4¸ö£¬Ç°Èý²ãµÄÄÚÈÝËÆºõÓÐÏàͬµÄ£¬Èçetc£¿
ËÕâÒ»µã£¬Ï¸ÐĵĴó¼Ò¿Ï¶¨·¢ÏÖÁË¡£Ê×ÏÈ£¬ËäÈ»Èý²ã¶¼ÓУ¬µ«ÊÇ»á´æÔÚÁ½ÖÖÇé¿ö£¬etcµÄ×ÓĿ¼ÏÂÓÐÏàͬ·¾¶µÄÎļþ£¬ÄÇôÉϲãµÄ»á¸²¸ÇϲãµÄÎļþ£»Èç¹ûÄÚ²¿µÄÎļþ·¾¶²»Ïàͬ£¬ÄÇô¶¼»á´æÔÚ£¬¶¼»á³ÊÏÖ¸ø×îÉϲ㡣£Û¿É±ð½ÏÕæ£¬ËµÄ¿Â¼Ò²ÊÇÎļþ¹þ£¬Òâ»á£Ý
ÎÊ£º¹ØÓÚdocker°²È«ÐÔÎÊÌ⣬¶ÔÓÚ°²È«ÊÇÔõÑù´¦ÀíµÄ£¬Èç¹ûÎÒ´ÓhubÏÂÔØ¾µÏñ£¬ÄÜÅбðÊÇ·ñ°²È«Ã´2.²ã¼¶Ö®¼äµÄÒÀÀµ»áµ¼ÖÂÒ»¸ö±ÀÁËÕû¸ödocker¶¼±ÀÁËô£¿
Ë´ÓÁ÷³ÌÉÏÀ´½²£¬Èç¹ûÒ»Çпɿصϰ£¬ÎÒÈÏΪÊǰ²È«µÄ¡£µ«ÊÇÒÀÈ»»á´æÔÚһЩÒþ»¼£¬±ÈÈçDockerfileÖлùÓÚµÄbase
imagesÊÇ·ñÍêÈ«ÊÜÐÅ£»¾µÏñµÄ´«Êä¹ý³ÌÊÇ·ñÊÜÐÅ£»×Ô¼ºµÄprivate docker resgitryµÄ°²È«¼¶±ð´ïµ½Ê²Ã´ÑùµÄ²ã´Î£¬ÕâЩ¶¼ÓÐÓ°Ïì¡£
ÎÊ£ºÈçºÎ±£Ö¤½öÓеÄÒ»¸ödeamonµÄÎȶ¨ÐÔ½¡×³ÐÔ£¿
ËÕâ¸öÎÊÌâÊ×ÏÈÐèÒªÖªµÀdocker daemonµÄÎȶ¨ÐÔÔÚÄÄЩ·½Ã棬ÄÇÖÖ³¡¾°Ï±ȽϲµÄÈ·£¬docker
daemon´æÔڱײ¡¡£±ÈÈ磬daemonºÍÈÝÆ÷µÄñîºÏµÈ£¬Ä¿Ç°generalÀ´½²£¬docker daemon±£Ö¤¾ø¶ÔµÄÎȶ¨Ó¦¸Ã»¹×ö²»µ½¡£
ÎÊ£ºÉú²ú»·¾³ÖÐÔõôÓÃdocker±¸·ÝmysqlÊý¾Ý£¿
ËÊý¾Ý´æ´¢ÉÏdocker£¬ÎÒĿǰµÄ½¨ÒéÊÇ£ºÈý˼¡£¾Ù¸ö¼òµ¥µÄÀý×Ó£¬¹Ù·½µÄmysql¾µÏñÔËÐгöÀ´µÄÈÝÆ÷£¬ÃÜÂëÊÇÃ÷Îĵģ¬Ã÷ÎĵÄÃÜÂë´æÔÚÓÚ£ºdocker
inspect container_name, container.jsonÎļþÖУ¬ÈÝÆ÷µÄ»·¾³±äÁ¿ÖУ¬ÉõÖÁÔÚÈÕÖ¾ÎļþÖж¼»á´æÔÚ£¬just
think about it¡£µ±È»Ò²Óа취½â¾ö£¬»º½âÕâÖÖÇé¿ö¡£
ÎÊ£ºÈç¹ûÊǶà²ã¹¹½¨£¬ÖмäµÄÒ»¸ö²ã×öÁËÉý¼¶»òÕßbugfix£¬»áDZÔÚÓ°ÏìÉϲã°É£¿
ËÕâ¸öbugfix»áÔÚÉϲãÓÐÌåÏÖ£¬µ«ÊÇʹÓÃЧ¹ûÊDz»»áÓÐÓ°ÏìµÄ£¬»¹ÓÐ֮ǰµÄbug»áÓÀÔ¶ÁôÔÚϲ㣬µ«ÊÇûÓÐÓ°Ïì¡££¨Ôð±à/κࣩ
|