±¾ÎĵÄÄ¿µÄÊÇÀí½âÈÝÆ÷¿ª·¢ÔÚÄ¿±ê»·¾³Öв¿ÊðµÄ¶Ëµ½¶ËÁ÷³Ì£¬²¢ÁгöÕâЩ²Ù×÷ËùÐèµÄ Docker ÃüÁî¡£
1½éÉÜ
Õû¸öÁ÷³Ì°üÀ¨Ê¹ÓôúÂë¡¢ÒÀÀµÈí¼þºÍÅäÖÃÀ´¿ª·¢ÈÝÆ÷Ó³Ïñ£¬ÔÚ¿ª·¢»·¾³ÖÐÔËÐкͲâÊÔÈÝÆ÷£¬½«ÈÝÆ÷Ó³Ïñ·¢²¼µ½ Docker Hub£¬ÒÔ¼°×îºóµÄ²¿ÊðºÍÔÚÄ¿±ê»·¾³ÖÐÔËÐÐÈÝÆ÷¡£
±¾ÎļÙÉèÄúÒѾÔÚ¿ª·¢ºÍÄ¿±ê»·¾³Öа²×°ÁË Docker ÒýÇæ¡£Óйذ²×°ËµÃ÷Çë²ÎÔÄ 6.3 >> https://docs.docker.com/engine/installation/¡£
2¿ª·¢ÈÝÆ÷Ó³Ïñ
ÔÚ¹¹½¨ÈÝÆ÷Ó³Ïñ֮ǰ£¬ÄãÐèÒª´´½¨Ò»¸ö dockerfile£¬Ëü°üº¬ÁËËùÐèÒªµÄÐÅÏ¢¡£Çë²Î¿¼ÕâÀïhttps://nodejs.org/en/docs/guides/nodejs-docker-webapp/À´±àÖÆÒ»¸ö dockerfile¡£
2.1¹¹½¨ Docker ÈÝÆ÷
$docker build -t containername . |
Õâ¸öÃüÁî»áʹÓõ±Ç°Ä¿Â¼Ï嵀 Dockerfile¡£Èç¹û dockerfile ʹÓÃÁËÆäËüÎļþÃû»òÕß·ÅÔÚÆäËüλÖ㬿ÉÒÔʹÓà -f ²ÎÊýÀ´Ö¸¶¨ dockerfile µÄÃû³Æ¡£¡°docker build¡± ÃüÁî»á¹¹½¨ÈÝÆ÷Ó³Ïñ£¬Õâ¸öÈÝÆ÷Ó³ÏñµÄÃû³ÆÓÉ ¡°-t¡± ²ÎÊýÖ¸¶¨¡£
$docker build -t myapp .

2.2Docker Ó³ÏñÃüÃû¹æ·¶
Èç¹ûÄãÖ»ÊÇÔÚ±¾µØÊ¹Óã¬ÄÇôÄã¿ÉÒÔËæÒâΪ Docker ÈÝÆ÷ÃüÃû¡£Ëü¿ÉÒÔÏñÉÏÃæÄDZ߼òµ¥µÄÃüÃûΪ¡°myApp¡±¡£µ«ÊÇÈç¹ûÄãÏ뽫ӳÏñ·¢²¼µ½ Docker Hub£¬¾ÍÐèÒª×ñÑÌØ¶¨µÄÃüÃû¹æ·¶¡£Õâ¸ö¹æ·¶ÓÐÖúÓÚ Docker ¹¤¾ß½«ÈÝÆ÷Ó³Ïñ·¢²¼µ½ÕýÈ·µÄÃüÃû¿Õ¼äºÍ²Ö¿â¡£
¸ñʽÈçÏ£º
NameSpace/Repository:Version |
ÏÖÔÚÎÒÃǰ´ÉÏÃæµÄ¹æ·¶À´¹¹½¨ Docker Ó³Ïñ£º
$docker build -t saravasu/techietweak:001 . |
ÎÒÃÇ¿ÉÒÔʹÓá°docker tag¡±ÃüÁî´ÓÒѾ´æÔÚµÄÓ³Ïñ´´½¨ÐµÄÓ³Ïñ¡£¡°docker tag¡±ÃüÁî»áÔÚÏÂÃæËµÃ÷¡£
2.3Áгö Docker ÖÐËùÓÐÓ³Ïñ

3ÔËÐÐÈÝÆ÷
3.1Æô¶¯ Docker ÈÝÆ÷
ʹÓá°docker run¡±ÃüÁîÀ´Æô¶¯ Docker ÈÝÆ÷¡£
$docker run -d -p 8080:8080 saravasu/techietweak:001 |

¡°-d¡± ²ÎÊý»áÈÃÈÝÆ÷ÒÔ¶ÀÁ¢µÄģʽÀ´ÔËÐÐÈÝÆ÷£¬ÕâÑù¼´Ê¹Öն˹رÕÁËÈÝÆ÷ÈÔÈ»»á±£³ÖÔËÐС£
¡°-p¡± ÓÃÓÚÓ³ÉäÈÝÆ÷¡£±ÈÈ磬¡°-p 8080:8080¡± µÄµÚÒ»¸ö¶Ë¿ÚºÅÓÃÔÚ Docker Ö÷»úÉÏ£¬µÚ¶þ¸ö¶Ë¿ÚºÅÊÇÔÚ Docker ÈÝÆ÷ÖÐʹÓõġ£¸ù¾ÝÕâ¸ö²ÎÊýµÄÉèÖã¬ËùÓÐ¶Ô Docker Ö÷»ú¶Ë¿ÚµÄÊý¾Ý´«Êä¶¼»á±»×ª·¢µ½¶ÔÓ¦µÄ Docker ÈÝÆ÷¶Ë¿Ú¡£
3.2²é¿´ÔËÐÐÖеÄÈÝÆ÷

´ÓÉÏÃæµÄÊä³öÎÒÃÇ¿ÉÒÔ¿´µ½ Docker ÈÝÆ÷ÒÔ ¡°trusting_snyder¡± Õâ¸öÃû×ÖÔÚÔËÐС£
Èç¹ûÒªÁгöËùÓÐÈÝÆ÷£¬¶ø²»¹ÜÆä״̬ÈçºÎ£¬Ê¹Óà ¡°-a¡± ²ÎÊý¡£
3.3ÏÔʾÔËÐÐÖÐÈÝÆ÷µÄ¿ØÖÆÌ¨ÈÕÖ¾
$docker logs <containerName> |

ContainerName£¨ÈÝÆ÷Ãû³Æ£© ¿ÉÒÔͨ¹ý ¡°docker ps¡± ÃüÁîÕÒµ½¡£
3.4µÇÈëÈÝÆ÷
$docker exec -it containerId /bin/bash |
ÉÏÃæµÄÃüÁî»áÓÃÈÝÆ÷ÖÐµÄ ¡°bash¡± shell ¸ø³öÌáʾ¡£

3.5Í£Ö¹ÈÝÆ÷ÔËÐÐ
$docker stop <containername> |

3.6´Ó Docker ÖÐɾ³ýÈÝÆ÷Ó³Ïñ
ʹÓà ¡°docker images¡± »ò ¡°docker images -a¡± ÃüÁîÕÒµ½ imageId£¨Ó³Ïñ ID£©¡£
$docker rmi -f <List Of Image Ids> |

ÉÏÃæµÄÃüÁî»áÇ¿ÖÆÉ¾³ýÖ¸¶¨µÄÓ³Ïñ¡£
3.7ÇåÀí Docker / ɾ³ý±¾µØ Docker ÖÐËùÓÐÈÝÆ÷Ó³Ïñ
$docker rmi -f $(docker images | tr -s ' ' ' ' | cut -d' ' -f3) |
4·¢²¼ÈÝÆ÷Ó³Ïñ
Docker ÈÝÆ÷Ó³Ïñ¿ÉÒÔ·¢²¼µ½±¾µØ¿â»ò¹«¹²µÄ Docker Hub¡£Á½ÖÖÇé¿öËùʹÓõÄÃüÁîµÄ²Ù×÷¹ý³ÌÒ»Ñù¡£ÎªÁ˽«ÄãµÄ Docker Ó³Ïñ·¢²¼µ½ Docker Hub£¬ÄãµÃÏÈÔÚ http://hub.docker.com ´´½¨×Ô¼ºµÄÃüÃû¿Õ¼äºÍ²Ö¿â¡£
ÎÒ×Ô¼ºµÄÃüÃû¿Õ¼äÊÇ ¡°saravasu¡±£¬µ±Ç°Á·Ï°Ê¹ÓõIJֿâÊÇ ¡°techietweak¡±¡£

4.1怬 Docker Hub
Èç¹ûÄãÏëµÇ¼±¾µØ¿â£¬ÇëÏÈÌṩ URL¡£Èç¹ûûÓÐÖ¸¶¨ URL£¬ÄÇôÕâ¸öÃüÁî»áµÇ¼ Docker Hub¡£
$docker login http://localhost:8080 |

4.2±ê¼ÇÈÝÆ÷Ó³Ïñ
ÔÚ°ÑÈÝÆ÷Ó³ÏñÍÆË͵½ Docker Hub ֮ǰ£¬±ØÐë°´Ö¸¶¨µÄ¸ñʽ¶ÔÆä½øÐбê¼Ç£º<Namespace>/<Repository>:<Version>¡£Èç¹ûÄãûÓÐÖ¸¶¨°æ±¾£¨version£©£¬Ëü»áʹÓÃĬÈ쵀 ¡°default¡±¡£ÏÂÃæµÄÃüÁîÑÝʾÁ˱ê¼ÇÓ³Ïñ£º
$docker tag myapp:latest saravasu/techietweak:001 |
4.3½« Docker Ó³ÏñÍÆË͵½ Docker Hub
$docker push saravasu/techietweak:001 |

4.4ÔÚ Docker Hub Öмì²éÈÝÆ÷Ó³Ïñ
ÏÖÔÚʹÓÃÄãµÄÕ˺ŵǼ Docker Hub ²¢¼ì²éÓ³ÏñµÄ²Ö¿âÖнøÐмì²é¡£

5²¿ÊðÈÝÆ÷
5.1ÀÈ¡ Docker ÈÝÆ÷Ó³Ïñ
ÔÚÖ÷»úµÄÄ¿±ê»·¾³ÖеǼ Docker Hub ²¢´Ó Docker Hub ÀÈ¡ÈÝÆ÷Ó³Ïñ¡£Èç¹ûÄãÏë´Ó˽ÓеĴ¬Î루ָ Docke Ó³Ïñ¿â£©ÖÐÀÈ¡£¬ÐèҪʹÓÃÃüÁî ¡°$docker login <hostname>¡± À´Ö¸¶¨Ë½Óвִ¬ÎëµÄÖ÷»úÃû£¨hostname£©¡£
ÓÉÓÚÉÏÃæµÄÃüÁîûÓÐÖ¸¶¨Ö÷»úÃû³Æ£¬Ëü»áµÇ¼ https://hub.docker.com¡£
$docker pull saravasu/techietweak:001 |

5.2¼ì²éÓ³Ïñ
docker pull ÃüÁî»á´Ó Docker Hub ÏÂÔØÈÝÆ÷Ó³Ïñ¡£ÎÒÃÇ¿ÉÒÔʹÓà ¡°docker images¡± ÃüÁîÀ´¶ÔÆä½øÐмì²é¡£

5.3ÔËÐÐÈÝÆ÷
ÏÖÔÚÎÒÃÇÓÃÓëÔÚ¿ª·¢»·¾³ÏÂÔËÐвâÊÔÏàͬµÄ·½·¨À´ÔËÐÐ Docker ÈÝÆ÷¡£Ö®Ç°×ö¹ý£¬Çá³µÊì·¡£
$docker run -d -p 8080:8080 saravasu/techietweak:001 |

docker run ÃüÁî»áÆô¶¯ÈÝÆ÷¡£¿ÉÒÔʹÓà ¡°docker ps¡± ÃüÁîÀ´¼ì²é¡£Docker ´´½¨²¢ÔËÐÐÁËÒ»¸öеÄÈÝÆ÷£¬ÆäÃû³ÆÎª ¡°naughty_lewin¡±¡£
ÎÒÃÇÔÚÉÏÃæ¿´µ½ Docker ÒýÇæÎªÔËÐеÄÈÝÆ÷ÌṩÁËÒ»¸öËæ»úµÄÃû³Æ£¬ÕâÔÚ×Ô¶¯»¯¹ý³ÌÖпÉÄÜ»á²úÉúÎÊÌ⣬ËùÒÔ×îºÃÊǰ´ÎÒÃǵÄÒâÔ¸Ö¸¶¨Ò»¸öÃû³Æ¡£Õâ¿ÉÒÔÓÉ ¡°-name¡± ²ÎÊýʵÏÖ¡£
$docker run -d -p 8080:8080 --name "myNodeJsWebContainer" saravasu/techietweak:001 |

6×ܽá
±¾Îĺ¸ÇÁË¿ª·¢Ò»¸öÈÝÆ÷Ó³ÏñµÄÁ÷³ÌºÍ±ØÒªµÄÃüÁ½²½âÁËÔÚ±¾µØ»·¾³ÔËÐУ¬ÒÔ¼°½«Ó³Ïñ·¢²¼µ½ Docker Hub£¬²¢ÔÚÄ¿±ê»·¾³ÔËÐÐÈÝÆ÷¡£Ïë½øÒ»²½Ñо¿£¬»òÕßÔĶÁÏêϸµÄÎĵµ£¬ÇëÒÆ²½ Docker ÍøÕ¾ [²Î¿¼ 6.1]¡£ |