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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Dockerʵս¡ª¡ªÏîÄ¿ÈÝÆ÷»¯¸ÄÔìʵս
 
×÷ÕߣºDK_ing
  2610  次浏览      31
 2020-11-24 
 
±à¼­ÍƼö:
Ö÷ÒªÊǽéÉÜÁËʲôÊÇÈÝÆ÷¡¢ ΪʲôÐèÒªÈÝÆ÷£¿How - ÈÝÆ÷ÊÇÈçºÎ¹¤×÷µÄ£¿Docker¼Ü¹¹Ïê½â¡¢docker˽ÓоµÏñÖÐÐĴ¡¢Dockerfile¡¢docker×Ô¶¨ÒåÍøÂçÅäÖá¢Jenkins+DockerµÈµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

What-ʲôÊÇÈÝÆ÷

ÈÝÆ÷ÊÇÒ»ÖÖÇáÁ¿¼¶¡¢¿ÉÒÆÖ²¡¢×Ô°üº¬µÄÈí¼þ´ò°ü¼¼Êõ£¬Ê¹Ó¦ÓóÌÐò¿ÉÒÔÔÚ¼¸ºõÈκεط½ÒÔÏàͬµÄ·½Ê½ÔËÐС£¿ª·¢ÈËÔ±ÔÚ×Ô¼º±Ê¼Ç±¾ÉÏ´´½¨²¢²âÊԺõÄÈÝÆ÷£¬ÎÞÐèÈκÎÐ޸ľÍÄܹ»ÔÚÉú²úϵͳµÄÐéÄâ»ú¡¢ÎïÀí·þÎñÆ÷»ò¹«ÓÐÔÆÖ÷»úÉÏÔËÐС£

ÈÝÆ÷ÓëÐéÄâ»ú

̸µ½ÈÝÆ÷£¬¾Í²»µÃ²»½«ËüÓëÐéÄâ»ú½øÐжԱȣ¬ÒòΪÁ½Õß¶¼ÊÇΪӦÓÃÌṩ·â×°ºÍ¸ôÀë¡£

ÈÝÆ÷ÓÉÁ½²¿·Ö×é³É£º

Ó¦ÓóÌÐò±¾Éí

ÒÀÀµ£º±ÈÈçÓ¦ÓóÌÐòÐèÒªµÄ¿â»òÆäËûÈí¼þ

ÈÝÆ÷ÔÚ Host ²Ù×÷ϵͳµÄÓû§¿Õ¼äÖÐÔËÐУ¬Óë²Ù×÷ϵͳµÄÆäËû½ø³Ì¸ôÀë¡£ÕâÒ»µãÏÔÖøÇø±ðÓÚµÄÐéÄâ»ú¡£

´«Í³µÄÐéÄ⻯¼¼Êõ£¬±ÈÈç VMWare, KVM, Xen£¬Ä¿±êÊÇ´´½¨ÍêÕûµÄÐéÄâ»ú¡£ÎªÁËÔËÐÐÓ¦Ó㬳ýÁ˲¿ÊðÓ¦Óñ¾Éí¼°ÆäÒÀÀµ£¨Í¨³£¼¸Ê® MB£©£¬»¹µÃ°²×°Õû¸ö²Ù×÷ϵͳ£¨¼¸Ê® GB£©¡£

ÏÂͼչʾÁ˶þÕßµÄÇø±ð¡£

ÈçͼËùʾ£¬ÓÉÓÚËùÓеÄÈÝÆ÷¹²Ïíͬһ¸ö Host OS£¬ÕâʹµÃÈÝÆ÷ÔÚÌå»ýÉÏÒª±ÈÐéÄâ»úСºÜ¶à¡£ÁíÍ⣬Æô¶¯ÈÝÆ÷²»ÐèÒªÆô¶¯Õû¸ö²Ù×÷ϵͳ£¬ËùÒÔÈÝÆ÷²¿ÊðºÍÆô¶¯Ëٶȸü¿ì£¬¿ªÏú¸üС£¬Ò²¸üÈÝÒ×Ç¨ÒÆ¡£

Why - ΪʲôÐèÒªÈÝÆ÷£¿

ΪʲôÐèÒªÈÝÆ÷£¿ÈÝÆ÷µ½µ×½â¾öµÄÊÇʲôÎÊÌ⣿

¼òÒªµÄ´ð°¸ÊÇ£ºÈÝÆ÷ʹÈí¼þ¾ß±¸Á˳¬Ç¿µÄ¿ÉÒÆÖ²ÄÜÁ¦¡£

ÈÝÆ÷½â¾öµÄÎÊÌâ

ÎÒÃÇÀ´¿´¿´½ñÌìµÄÈí¼þ¿ª·¢ÃæÁÙ×ÅÔõÑùµÄÌôÕ½£¿

Èç½ñµÄϵͳÔڼܹ¹ÉϽÏÊ®ÄêǰÒѾ­±äµÃ·Ç³£¸´ÔÓÁË¡£ÒÔǰ¼¸ºõËùÓеÄÓ¦Óö¼²ÉÓÃÈý²ã¼Ü¹¹£¨Presentation/Application/Data£©£¬ÏµÍ³²¿Êðµ½ÓÐÏ޵ļ¸Ì¨ÎïÀí·þÎñÆ÷ÉÏ£¨Web Server/Application Server/Database Server£©¡£

¶ø½ñÌ죬¿ª·¢ÈËԱͨ³£Ê¹ÓöàÖÖ·þÎñ£¨±ÈÈç MQ£¬Cache£¬DB£©¹¹½¨ºÍ×é×°Ó¦Ó㬶øÇÒÓ¦ÓúܿÉÄܻᲿÊðµ½²»Í¬µÄ»·¾³£¬±ÈÈçÐéÄâ·þÎñÆ÷£¬Ë½ÓÐÔÆºÍ¹«ÓÐÔÆ¡£

Ò»·½ÃæÓ¦Óðüº¬¶àÖÖ·þÎñ£¬ÕâЩ·þÎñÓÐ×Ô¼ºËùÒÀÀµµÄ¿âºÍÈí¼þ°ü£»ÁíÒ»·½Ãæ´æÔÚ¶àÖÖ²¿Êð»·¾³£¬·þÎñÔÚÔËÐÐʱ¿ÉÄÜÐèÒª¶¯Ì¬Ç¨ÒƵ½²»Í¬µÄ»·¾³ÖС£Õâ¾Í²úÉúÁËÒ»¸öÎÊÌ⣺

ÈçºÎÈÃÿÖÖ·þÎñÄܹ»ÔÚËùÓеIJ¿Êð»·¾³ÖÐ˳ÀûÔËÐУ¿

ÓÚÊÇÎÒÃǵõ½ÁËÏÂÃæÕâ¸ö¾ØÕó£º

¸÷ÖÖ·þÎñºÍ»·¾³Í¨¹ýÅÅÁÐ×éºÏ²úÉúÁËÒ»¸ö´ó¾ØÕ󡣿ª·¢ÈËÔ±ÔÚ±àд´úÂëʱÐèÒª¿¼ÂDz»Í¬µÄÔËÐл·¾³£¬ÔËάÈËÔ±ÔòÐèҪΪ²»Í¬µÄ·þÎñºÍƽ̨ÅäÖû·¾³¡£¶ÔËûÃÇË«·½À´Ëµ£¬Õâ¶¼ÊÇÒ»ÏîÀ§ÄѶø¼è¾ÞµÄÈÎÎñ¡£

ÈçºÎ½â¾öÕâ¸öÎÊÌâÄØ£¿

´ÏÃ÷µÄ¼¼ÊõÈËÔ±´Ó´«Í³µÄÔËÊäÐÐÒµÕÒµ½Á˴𰸡£

¼¸Ê®Äêǰ£¬ÔËÊäÒµÃæÁÙ×ÅÀàËÆµÄÎÊÌâ¡£

ÿһ´ÎÔËÊ䣬»õÖ÷Óë³ÐÔË·½¶¼»áµ£ÐÄÒò»õÎïÀàÐ͵IJ»Í¬¶øµ¼ÖÂËðʧ£¬±ÈÈ缸¸öÌúͰ´íÎóµØÑ¹ÔÚÁËÒ»¶ÑÏã½¶ÉÏ¡£ÁíÒ»·½Ã棬ÔËÊä¹ý³ÌÖÐÐèҪʹÓò»Í¬µÄ½»Í¨¹¤¾ßÒ²ÈÃÕû¸ö¹ý³ÌÍ´¿à²»¿°£º»õÎïÏÈ×°ÉϳµÔ˵½ÂëÍ·£¬Ð¶»õ£¬È»ºó×°ÉÏ´¬£¬µ½°¶ºóÓÖжÏ´¬£¬ÔÙ×°Éϻ𳵣¬µ½´ïÄ¿µÄµØ£¬×îºóж»õ¡£Ò»°ëÒÔÉϵÄʱ¼ä»¨·ÑÔÚ×°¡¢Ð¶»õÉÏ£¬¶øÇÒ°áÉϰáÏ»¹ÈÝÒ×Ë𻵻õÎï¡£

ÕâͬÑùÒ²ÊÇÒ»¸ö NxM µÄ¾ØÕó¡£

ÐÒÔ˵ÄÊÇ£¬¼¯×°ÏäµÄ·¢Ã÷½â¾öÕâ¸öÄÑÌâ¡£

ÈκλõÎÎÞÂÛ¸ÖÇÙ»¹ÊDZ£Ê±½Ý£¬¶¼±»·Åµ½¸÷×Եļ¯×°ÏäÖС£¼¯×°ÏäÔÚÕû¸öÔËÊä¹ý³ÌÖж¼ÊÇÃÜ·âµÄ£¬Ö»Óе½´ï×îÖÕÄ¿µÄµØ²Å±»´ò¿ª¡£±ê×¼¼¯×°Ïä¿ÉÒÔ±»¸ßЧµØ×°Ð¶¡¢ÖصþºÍ³¤Í¾ÔËÊä¡£ÏÖ´ú»¯µÄÆðÖØ»ú¿ÉÒÔ×Ô¶¯ÔÚ¿¨³µ¡¢ÂÖ´¬ºÍ»ð³µÖ®¼äÒÆ¶¯¼¯×°Ïä¡£¼¯×°Ïä±»ÓþΪÔËÊäÒµÓëÊÀ½çóÒ××îÖØÒªµÄ·¢Ã÷¡£

Docker ½«¼¯×°Ïä˼ÏëÔËÓõ½Èí¼þ´ò°üÉÏ£¬Îª´úÂëÌṩÁËÒ»¸ö»ùÓÚÈÝÆ÷µÄ±ê×¼»¯ÔËÊäϵͳ¡£Docker ¿ÉÒÔ½«ÈκÎÓ¦Óü°ÆäÒÀÀµ´ò°ü³ÉÒ»¸öÇáÁ¿¼¶¡¢¿ÉÒÆÖ²¡¢×Ô°üº¬µÄÈÝÆ÷¡£ÈÝÆ÷¿ÉÒÔÔËÐÐÔÚ¼¸ºõËùÓеIJÙ×÷ϵͳÉÏ¡£

Æäʵ£¬¡°¼¯×°Ï䡱 ºÍ ¡°ÈÝÆ÷¡± ¶ÔÓ¦µÄÓ¢Îĵ¥´Ê¶¼ÊÇ ¡°Container¡±¡£

¡°ÈÝÆ÷¡± ÊǹúÄÚÔ¼¶¨Ë׳ɵĽз¨£¬¿ÉÄÜÊÇÒòΪÈÝÆ÷±È¼¯×°Ïä¸ü³éÏ󣬸üÊʺÏÈí¼þÁìÓòµÄÔ­¹Ê°É¡£

ÎÒ¸öÈËÈÏΪ£ºÔÚÀÏÍâµÄ˼άÖУ¬¡°Container¡± Ö»Óõ½Á˼¯×°ÏäÕâÒ»¸öÒâ˼£¬Docker µÄ Logo ²»¾ÍÊÇÒ»¶Ñ¼¯×°ÏäÂð£¿

Docker µÄÌØÐÔ

ÎÒÃÇ¿ÉÒÔ¿´¿´¼¯×°Ïä˼ÏëÊÇÈçºÎÓë Docker ¸÷ÖÖÌØÐÔÏà¶ÔÓ¦µÄ¡£

ÌØÐÔ

ÈÝÆ÷µÄÓÅÊÆ

¶ÔÓÚ¿ª·¢ÈËÔ± - Build Once, Run Anywhere

ÈÝÆ÷Òâζ×Å»·¾³¸ôÀëºÍ¿ÉÖØ¸´ÐÔ¡£¿ª·¢ÈËÔ±Ö»ÐèΪӦÓô´½¨Ò»´ÎÔËÐл·¾³£¬È»ºó´ò°ü³ÉÈÝÆ÷±ã¿ÉÔÚÆäËû»úÆ÷ÉÏÔËÐС£ÁíÍ⣬ÈÝÆ÷»·¾³ÓëËùÔÚµÄ Host »·¾³ÊǸôÀëµÄ£¬¾ÍÏñÐéÄâ»úÒ»Ñù£¬µ«¸ü¿ì¸ü¼òµ¥¡£

¶ÔÓÚÔËάÈËÔ± - Configure Once, Run Anything

Ö»ÐèÒªÅäÖúñê×¼µÄ runtime »·¾³£¬·þÎñÆ÷¾Í¿ÉÒÔÔËÐÐÈκÎÈÝÆ÷¡£ÕâʹµÃÔËάÈËÔ±µÄ¹¤×÷±äµÃ¸ü¸ßЧ£¬Ò»ÖºͿÉÖØ¸´¡£ÈÝÆ÷Ïû³ýÁË¿ª·¢¡¢²âÊÔ¡¢Éú²ú»·¾³µÄ²»Ò»ÖÂÐÔ¡£

How - ÈÝÆ÷ÊÇÈçºÎ¹¤×÷µÄ£¿

´ÓϽڿªÊ¼ÎÒÃǽ«Ñ§Ï°ÈÝÆ÷ºËÐÄ֪ʶµÄ×îÖ÷Òª²¿·Ö¡£Ê×ÏÈ»á½éÉÜ Docker µÄ¼Ü¹¹£¬È»ºó·ÖÕ½ÚÏêϸÌÖÂÛ Docker µÄ¾µÏñ¡¢ÈÝÆ÷¡¢ÍøÂçºÍ´æ´¢¡£

Docker¼Ü¹¹Ïê½â

Docker µÄºËÐÄ×é¼þ°üÀ¨£º

Docker ¿Í»§¶Ë - Client

Docker ·þÎñÆ÷ - Docker daemon

Docker ¾µÏñ - Image

Registry

Docker ÈÝÆ÷ - Container

Docker ¼Ü¹¹ÈçÏÂͼËùʾ£º

Docker ²ÉÓõÄÊÇ Client/Server ¼Ü¹¹¡£¿Í»§¶ËÏò·þÎñÆ÷·¢ËÍÇëÇ󣬷þÎñÆ÷¸ºÔð¹¹½¨¡¢ÔËÐкͷַ¢ÈÝÆ÷¡£¿Í»§¶ËºÍ·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚͬһ¸ö Host ÉÏ£¬¿Í»§¶ËÒ²¿ÉÒÔͨ¹ý socket »ò REST API ÓëÔ¶³ÌµÄ·þÎñÆ÷ͨÐÅ¡£

Docker ¿Í»§¶Ë

×î³£ÓÃµÄ Docker ¿Í»§¶ËÊÇ docker ÃüÁͨ¹ý docker ÎÒÃÇ¿ÉÒÔ·½±ãµØÔÚ Host ÉϹ¹½¨ºÍÔËÐÐÈÝÆ÷¡£

docker Ö§³ÖºÜ¶à²Ù×÷£¨×ÓÃüÁ£¬ºóÃæ»áÖð²½Óõ½¡£

³ýÁË docker ÃüÁîÐй¤¾ß£¬Óû§Ò²¿ÉÒÔͨ¹ý REST API Óë·þÎñÆ÷ͨÐÅ¡£

Docker ·þÎñÆ÷

Docker daemon ÊÇ·þÎñÆ÷×é¼þ£¬ÒÔ Linux ºǫ́·þÎñµÄ·½Ê½ÔËÐС£

Docker daemon ÔËÐÐÔÚ Docker host ÉÏ£¬¸ºÔð´´½¨¡¢ÔËÐС¢¼à¿ØÈÝÆ÷£¬¹¹½¨¡¢´æ´¢¾µÏñ¡£

ĬÈÏÅäÖÃÏ£¬Docker daemon Ö»ÄÜÏìÓ¦À´×Ô±¾µØ Host µÄ¿Í»§¶ËÇëÇó¡£Èç¹ûÒªÔÊÐíÔ¶³Ì¿Í»§¶ËÇëÇó£¬ÐèÒªÔÚÅäÖÃÎļþÖдò¿ª TCP ¼àÌý£¬²½ÖèÈçÏ£º

1. ±à¼­ÅäÖÃÎļþ /etc/systemd/system/multi -user.target.wants/docker.service£¬ÔÚ»·¾³±äÁ¿ ExecStart ºóÃæÌí¼Ó -H tcp://0.0.0.0£¬ÔÊÐíÀ´×ÔÈÎÒâ IP µÄ¿Í»§¶ËÁ¬½Ó¡£

Èç¹ûʹÓõÄÊÇÆäËû²Ù×÷ϵͳ£¬ÅäÖÃÎļþµÄλÖÿÉÄܻ᲻һÑù¡£

2.ÖØÆô Docker daemon¡£

3.·þÎñÆ÷ IP Ϊ 192.168.56.102£¬¿Í»§¶ËÔÚÃüÁîÐÐÀï¼ÓÉÏ -H ²ÎÊý£¬¼´¿ÉÓëÔ¶³Ì·þÎñÆ÷ͨÐÅ¡£

info ×ÓÃüÁîÓÃÓڲ鿴 Docker ·þÎñÆ÷µÄÐÅÏ¢¡£

Docker ¾µÏñ

¿É½« Docker ¾µÏñ¿´×ÅÖ»¶ÁÄ£°å£¬Í¨¹ýËü¿ÉÒÔ´´½¨ Docker ÈÝÆ÷¡£

ÀýÈçij¸ö¾µÏñ¿ÉÄܰüº¬Ò»¸ö Ubuntu ²Ù×÷ϵͳ¡¢Ò»¸ö Apache HTTP Server ÒÔ¼°Óû§¿ª·¢µÄ Web Ó¦Óá£

¾µÏñÓжàÖÖÉú³É·½·¨£º

¿ÉÒÔ´ÓÎÞµ½ÓпªÊ¼´´½¨¾µÏñ

Ò²¿ÉÒÔÏÂÔØ²¢Ê¹ÓñðÈË´´½¨ºÃµÄÏֳɵľµÏñ

»¹¿ÉÒÔÔÚÏÖÓоµÏñÉÏ´´½¨ÐµľµÏñ

ÎÒÃÇ¿ÉÒÔ½«¾µÏñµÄÄÚÈݺʹ´½¨²½ÖèÃèÊöÔÚÒ»¸öÎı¾ÎļþÖУ¬Õâ¸öÎļþ±»³Æ×÷ Dockerfile£¬Í¨¹ýÖ´ÐÐ docker build <docker-file> ÃüÁî¿ÉÒÔ¹¹½¨³ö Docker ¾µÏñ£¬ºóÃæÎÒÃÇ»áÌÖÂÛ¡£

Docker ÈÝÆ÷

Docker ÈÝÆ÷¾ÍÊÇ Docker ¾µÏñµÄÔËÐÐʵÀý¡£

Óû§¿ÉÒÔͨ¹ý CLI£¨docker£©»òÊÇ API Æô¶¯¡¢Í£Ö¹¡¢Òƶ¯»òɾ³ýÈÝÆ÷¡£¿ÉÒÔÕâôÈÏΪ£¬¶ÔÓÚÓ¦ÓÃÈí¼þ£¬¾µÏñÊÇÈí¼þÉúÃüÖÜÆÚµÄ¹¹½¨ºÍ´ò°ü½×¶Î£¬¶øÈÝÆ÷ÔòÊÇÆô¶¯ºÍÔËÐн׶Ρ£

Registry

Registry ÊÇ´æ·Å Docker ¾µÏñµÄ²Ö¿â£¬Registry ·Ö˽Óк͹«ÓÐÁ½ÖÖ¡£

Docker Hub£¨https://hub.docker.com/£© ÊÇĬÈ쵀 Registry£¬ÓÉ Docker ¹«Ë¾Î¬»¤£¬ÉÏÃæÓÐÊýÒÔÍò¼ÆµÄ¾µÏñ£¬Óû§¿ÉÒÔ×ÔÓÉÏÂÔØºÍʹÓá£

³öÓÚ¶ÔËÙ¶È»ò°²È«µÄ¿¼ÂÇ£¬Óû§Ò²¿ÉÒÔ´´½¨×Ô¼ºµÄ˽ÓÐ Registry¡£ºóÃæÎÒÃÇ»áѧϰÈçºÎ´î½¨Ë½ÓÐ Registry¡£

docker pull ÃüÁî¿ÉÒÔ´Ó Registry ÏÂÔØ¾µÏñ¡£

docker run ÃüÁîÔòÊÇÏÈÏÂÔØ¾µÏñ£¨Èç¹û±¾µØÃ»ÓУ©£¬È»ºóÔÙÆô¶¯ÈÝÆ÷¡£

docker˽ÓоµÏñÖÐÐĴ

À­È¡registry2°æ±¾µÄ¾µÏñ²¢Æô¶¯¾µÏñÈÝÆ÷£¬-vÉèÖÃÓ³É䵨ַ(±¾»ú£ºÈÝÆ÷)£¬Ó³Éä¶Ë¿ÚºÅ

docker run -d -v /opt/registry: /var/lib/registry -p 5000:5000 registry:2

ÐÞ¸ÄÐèÒªÉÏ´«ÖÁ˽ÓоµÏñÖÐÐÄµÄ ¾µÏñÃû³Æ

docker tag task-web-server: 2.20.1 192.168.5.206:5000/dmp/task -web-server:2.20.1

ºìÉ«£ºÎª¾µÏñÖÐÐĵÄinsecure-registriesµÄÖµ

{

"registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"],

"insecure-registries": ["192.168.5.206:5000"]

}

ÐÞ¸ÄÍêºóÐèÒªÖØÆôdocker

systemctl daemon-reload

systemctl restart docker

²é¿´¾µÏñÖÐÐĵľµÏñ

http://192.168.5.206:5000/v2/_catalog

»òÕßÓÃcurlÃüÁî

curl -I -X DELETE http://192.168.5.206: 5000/v2/_catalog/dmp/task-web-server

Ïò¾µÏñÖÐÐÄÍÆË;µÏñ

docker push 192.168.5.206: 5000/dmp/task-web-server:2.20.1

¾µÏñÖÐÐÄɾ³ý¾µÏñ

Dockerfile

DockerfileÃüÁîÏê½â

Dockerfile Îļþ³£ÓÃÃüÁî˵Ã÷

FROM

Ö¸¶¨base¾µÏñ

MAINTAINER

ÉèÖþµÏñµÄ×÷Õߣ¬¿ÉÒÔÊÇÈÎÒâ×Ö·û´®

COPY

½«Îļþ´Óbuild context¸´ÖƵ½¾µÏñ

COPYÖ§³ÖÁ½ÖÖÐÎʽ£º

COPY src dest

COPY ["src","dest"]

×¢Ò⣺srcÖ»ÄÜÖ¸¶¨build contextÖеÄÎļþ»òĿ¼

ADD

ÓëCOPYÀàËÆ£¬´Óbuild context¸´ÖÆÎļþµ½¾µÏñ¡£²»Í¬µÄÊÇÈç¹ûsrcÊǹ鵵Îļþ(tar£¬zip£¬tgz£¬xzµÈ)£¬Îļþ»á±»×Ô¶¯½âѹµ½dest¡£

ENV

ÉèÖû·¾³±äÁ¿£¬»·¾³±äÁ¿¿É±»ºóÃæµÄÖ¸ÁîʹÓá£ÀýÈ磺

¡­

ENV MY_VERSION 1.3

RUN apt-get install -y mypackage=$MY_VERSION

¡­

EXPOSE

Ö¸¶¨ÈÝÆ÷ÖеĽø³Ì»á¼àÌýij¸ö¶Ë¿Ú£¬Docker¿ÉÒÔ½«¸Ã¶Ë¿Ú±©Â¶³öÀ´¡£ÎÒÃÇ»áÕ¦ÈÝÆ÷ÍøÂ粿·ÖÏêϸÌÖÂÛ¡£

VOLUME

½«Îļþ»òĿ¼ÉúÃüΪvolume¡£

WORKDIR

ΪºóÃæµÄRUN£¬CMD£¬ENTRYPOINT£¬ADD»òCOPYÖ¸¶¨ÉèÖþµÏñÖеĵ±Ç°¹¤×÷Ŀ¼

RUN

ÔÚÈÝÆ÷ÖÐÔËÐÐÖ¸¶¨µÄÃüÁî

CMD

ÈÝÆ÷Æô¶¯Ê±ÔËÐÐÖ¸¶¨µÄÃüÁî¡£

DockerfileÖпÉÒÔÓжà¸öCMDÖ¸Áµ«Ö»ÓÐ×îºóÒ»¸öÉúЧ¡£CMD¿ÉÒÔ±»docker runÖ®ºóµÄ²ÎÊýÌæ»»¡£

ENTRYPOINT

ÉèÖÃÈÝÆ÷Æô¶¯Ê±ÔËÐеÄÃüÁî¡£

DockerfileÖпÉÒÔÓжà¸öENTRYPOINTÖ¸Áµ«Ö»ÓÐ×îºóÒ»¸öÉúЧ¡£CMD»òdocker runÖ®ºóµÄ²ÎÊý»á±»µ±×ö²ÎÊý´«µÝ¸øENTRYPOINT

ÉÏΪһ¸ö¼òµ¥µÄDockerfile ´´½¨ÁËÒ»¸ötmpfile1Îļþ£¬²¢½«tmpfile2¸´ÖƽøµÄ¾µÏñµ±Ç°Ä¿Â¼/testdir£¬²¢½«bunch.tar.gz½âѹ¸´ÖƽøÁË/testdirĿ¼¡£

¹¹½¨¾µÏñ

¢Ù¹¹½¨Ç°È·±£build contextÖдæÔÚÐèÒªµÄÎļþ¡£

¢ÚÒÀ´ÎÖ´ÐÐDockerfileÖ¸ÁÍê³É¹¹½¨¡£

ÔËÐÐÈÝÆ÷£¬ÑéÖ¤¾µÏñÄÚÈÝ£º

¢Ù½øÈëÈÝÆ÷£¬µ±Ç°Ä¿Â¼ÎªWORKDIR£¬Èç¹û²»´æÔÚ£¬Docker»á×Ô¶¯ÎªÎÒÃÇ´´½¨¡£

¢ÚWORKDIRÖб£´æÁËÎÒÃÇÏ£Íû´æÔÚµÄĿ¼

¢ÛENVÖ¸ÁÒåµÄ»·¾³±äÁ¿ÒѾ­ÉúЧ¡£

ͨ¹ýDockerfile¹¹½¨¾µÏñ²¢Æô¶¯ÈÝÆ÷

#¹¹½¨task-web-server

docker build -t 192.168.5.206:5000/dmp/task-web-server:2.20.2 .

#ÈÝÆ÷Æô¶¯ÃüÁî

docker run -it -p 8077:8022 192.168.5.206:5000/dmp/task-web-server:2.20.2

docker×Ô¶¨ÒåÍøÂçÅäÖÃ

docker network create --driver bridge my_net

brctl show

docker network inspect my_net

´´½¨ÍøÇÅʱ¼ÓÈë Íø¶Îsubnet Íø¹Øgateway

docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net

ÈÝÆ÷Æô¶¯Ê±£¬Í¨¹ý--networkÖ¸¶¨ÍøÇÅ

docker run -it --network=my_net task-web-server:1.0.0

¿ÉÒÔÊÖ¶¯Ö¸¶¨Íø¶Î·ÖÅäip

docker run -it --network=my_net --ip 172.22.16.8 task-web-server:1.0.0

ÏîÄ¿Docker¼Ü¹¹²ÂÏë

DockerµÄCI²ÂÏë

ÒýÈëDocker-ComposeÈÝÆ÷¹ÜÀí¹¤¾ß

ComposeÊÇÒ»¸öÓÃÓÚ¶¨ÒåºÍÔËÐжàÈÝÆ÷DockerÓ¦ÓóÌÐòµÄ¹¤¾ß¡£Ê¹ÓÃCompose£¬Äú¿ÉÒÔʹÓÃYAMLÎļþÀ´ÅäÖÃÓ¦ÓóÌÐòµÄ·þÎñ¡£È»ºó£¬Ê¹Óõ¥¸öÃüÁÄú¿ÉÒÔ´ÓÅäÖÃÖд´½¨²¢Æô¶¯ËùÓзþÎñ¡£

ʹÓÃdocker Compose»ù±¾ÉÏÊÇÈý²½Ö裺

¶¨ÒåÓ¦ÓóÌÐòµÄDockerfileÎļþ

¶¨Òå¹¹³ÉÓ¦ÓóÌÐòµÄ·þÎñ£¬docker-compose.ymlÒÔ±ãÓÚ¿ÉÒÔÔÚ¸ôÀë»·¾³ÖÐÒ»ÆðÔËÐÐ

run docker-compose upºÍcomposeÆô¶¯²¢ÔËÐÐÕû¸öÓ¦ÓóÌÐò¡£

Compose¾ßÓйÜÀíÓ¦ÓóÌÐòÕû¸öÉúÃüÖÜÆÚµÄÃüÁ

Æô¶¯¡¢Í£Ö¹ºÍÖØ½¨·þÎñ

²é¿´ÕýÔÚÔËÐеķþÎñµÄ״̬

Á÷ʽ´«ÊäÔËÐзþÎñµÄÈÕÖ¾Êä³ö

ÔÚ·þÎñÉÏÔËÐÐÒ»´ÎÐÐÃüÁî

ÔÚLinuxϵͳÖÐComposeµÄ²¿Êð

°²×°Compose

ÔËÐÐÏÂÃüÁîÒÔÏÂÔØDocker ComposeµÄµ±Ç°Îȶ¨°æ±¾£º

ÎÒ¶Ô¹ÙÍø·½·¨ºÇºÇÁË£¬curlÁ¬½ÓÓÐÎÊÌâ¡£ÕâÀïÌṩÎÞ¿Ó·½·¨

¹ÙÍøÕÒµ½×îÐÂÎȶ¨°æ±¾£ºhttps://github.com/docker/compose/releases/ £¬ ÏÂÔØ¶ÔÓ¦¶þ½øÖÆÎļþ£¬ftpµ½·þÎñÆ÷µÄ/usr/local/bin/Ŀ¼Ï£¬²¢½«ÎļþÃû¸ÄΪdocker-compose¡£

¶Ô¶þ½øÖÆÎļþÓ¦Óø³ÓèrootȨÏÞ£º

sudo chmod +x /usr/local/bin/docker-compose

Ð¶ÔØ

Ð¶ÔØdocker Compose£º

sudo rm /usr/local/bin/docker-compose

YAML ÅäÖÃÃüÁî

Docker Compose ³£ÓÃÃüÁî

Docker-Compose¹¤×÷Ô­Àí

docker-compose.ymlʾÀý

#ͨ¹ý¹¹½¨µ±Ç°Ä¿Â¼µÄDockerFileÎļþ½øÐоµÏñµÄ¹¹½¨£¬²¢Æô¶¯ÈÝÆ÷¡£

version: "3.7"
services:
dmp-web-server:
build: .
ports:
- "8077:8022"
- "8078:8023"

Jenkins+Docker

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

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

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

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ