Docker ãªãã·ã§ã¢: ãªã¢ãŒããã±ãŒã·ã§ã³ MLOps ã®æ³¢ãå¹³æ»å
ããããã 仿¥ã¯ãDocker ã西éšéææä»£ããããã¯éçã®æµ·ã«æã¡èŸŒãããšããããŠæ³åãããªãã£ãå Žæã§ MLOps ãå®è¡ããæ¹æ³ã«ã€ããŠã話ãããŸãã ãåãã®æ¹ãå€ããšæããŸãããç§ã¯Western EcoSystems Technologyã«æå±ããŠããŸãã ç§ã¯ç°å¢ã³ã³ãµã«ã¿ã³ãäŒç€ŸãšããŠã颚åãšãã«ã®ãŒäŒæ¥ãéåžžã®ç¶æ³ãã³ã³ãã©ã€ã¢ã³ã¹ã®ç¶æ³ãªã©ãããã²ãŒãã§ããããæ¯æŽããããšã«éç¹ã眮ããŠããŸãã
ä»å玹ä»ãããã®ãããžã§ã¯ãã¯ãç±³åœãšãã«ã®ãŒçã®å©æéã«ãã£ãŠè³ãããŸããã ããããç§ãèšãããšããŠããããšã¯ã決ããŠãšãã«ã®ãŒçã«ãã£ãŠæ¿èªãããå ¬åŒèŠè§£ã§ã¯ãããŸããã ãŸããããã¯ããŒã ã®åªåã§ããããããã¯ããŒã ã®ä»ã®äººã ã§ãã 圌ãã¯ç§ãã¡ãšäžç·ã«ããããã¹ãŠæåãããŸããã ã ããã圌ãã«ãšãŠãæè¬ããŠããŸãã
æŠèŠ
æ¬é¡ã«å ¥ãåã«ãç§ãã¡ãã©ããžåããã®ããå°ãããŒãããããæããŠãããŸãããã ãŸãã颚åãšãã«ã®ãŒã®æŠèŠãšããªã颚åãšãã«ã®ãŒã«é¢å¿ãããã®ãã«ã€ããŠèª¬æããŸãã ãããŠããªãç§ãã¡ãè¡ã£ãŠããç°å¢ã¢ãã¿ãªã³ã°ã¯ãªãã·ã§ã¢ã§é£ããã®ãã æ¬¡ã«ããšããžMLãããã«å¯Ÿãããœãªã¥ãŒã·ã§ã³ãã©ã®ããã«æäŸã§ãããããããŠãã®ãœãªã¥ãŒã·ã§ã³ãæ°ããåé¡ãã©ã®ããã«äŒŽããã«ã€ããŠèª¬æããŸãã æ¬¡ã«ãDockerããããã®åé¡ã«ã©ã®ããã«å¯ŸåŠããã®ã«åœ¹ç«ã£ããã«ã€ããŠå°ã説æããŸãã æåŸã«ãããããã¹ãŠã®æè¡æ€èšŒã®ããã«è¡ã£ããã€ããã ã¹ã¿ãã£ã«ã€ããŠèª¬æããããã€ãã®çµæãå ±æããŸãã
ç§ãã¡ãæ§ç¯ãããã¹ãŠã®ãœãããŠã§ã¢ã®æè¡çãªéèãšãããã©ãã«é 眮ããããæ·±ãæãäžããåã«ãããã€ãã®ã¢ãããŒã·ã§ã³ããå§ããããšæããŸãã ãªããã®ãããªããšãããã®ã§ãããã?åºæ¬çã«ããšãã«ã®ãŒã¯ã©ãããããã£ãŠããŸãã ãã®éšå±ã®ç §æã¯ãã¹ãŠé»æ°ã§åããŠããŸãã 仿ä¹ã£ãã¹ã¯ãŒã¿ãŒã¯é»åã§ããã çæŽ»æ°Žæºãç¶æããããã«ããŸããŸã黿°ãå¿ èŠã«ãªã£ãŠããŸãã ãããŠããã®é»æ°ã¯ã©ããããæ¥ãªããã°ãªããŸããã äŸãã°ãç§ã®çãŸãæ é·ã§ããã¯ã€ãªãã³ã°å·ã®çé±ããæ¡ããããšããããŸãã ãŸãã颚åçºé»æããæ¥ãããšããããŸãã
颚åãšãã«ã®ãŒ
äžè¬çã«ã颚åãšãã«ã®ãŒã¯ãä»ã®å€ãã®ãšãã«ã®ãŒæºãããé·æãå€ããçæãå°ãªããšãã«ã®ãŒæºãšããŠæµ®äžããŠããŸãã ãšã¯ããã颚åãšãã«ã®ãŒã¯å®ç§ã§ã¯ãªãããããã®äžå®å šãã管çããæ¹æ³ãå¿ èŠã§ãã ãã®ãããç¹ã«ã³ãŠã¢ãªã¯çµ¶æ» 屿§ç𮿳ã«åºã¥ãé£éŠæ³ã«ãã£ãŠä¿è·ãããŠãããããé£è¡åç©ãžã®å±éºã軜æžããããã«æ³šææ·±ãç£èŠããå¿ èŠããããŸãã ãŸããã³ãŠã¢ãªã¯ãåãçµ¶æ» å±æ§ç𮿳ãå°ãªããšãäžéšã®ã³ãŠã¢ãªã®çš®ãããã³ããã€ãã®å·æ³ã«ãã£ãŠä¿è·ãããŠããŸãã
ç§ãã¡ã¯ãéžäžã®é¢šåçºé»æã§ãã®ç£èŠãè¡ãããã®ããªãæšæºåããããããã³ã«ãæã£ãŠããŸãã ãããå®èšŒããããã«ãããã®ã¹ããŒãžã®äžå€®ã«é¢šåã¿ãŒãã³ãããããã¬ãŒããå転ããŠãããšæ³åããŠããããŸãã ããã«ãã颚åã¿ãŒãã³ãæ³åããŠã¿ãŠãã ããã ãããŠãã©ããžè¡ãããšããŠããªãé³¥ãé£ãã§ããŠãå転ããåããã£ãŠããŠåœŒã«ã¶ã€ãããŸãã ãããŠãæ²ããããšã«ã圌ã¯ããé£ãã§ããŸããã ããã¯èšé²ããå¿ èŠãããã€ãã³ãã§ãã ãããã®ã¿ã€ãã®ã€ãã³ãã¯ã颚åçºé»æã®ç®¡çæ¹æ³ãç¥ãããããšãã§ãããããç£èŠããå¿ èŠããããŸãã ãããããããèµ·ãã£ããããšãã£ãŠããããèµ·ããããšãèªåçã«ç¥ã£ãŠããããã§ã¯ãããŸããã ãããã£ãŠã次ã®ã¹ãããã¯äººéãèŠã€ããããšã§ãã å®ã¯ããã倧åŠã忥ããŠåããŠã®ä»äºã§ããã 颚åã¿ãŒãã³ã®åšå²ã«æ£æ¹åœ¢ãæããŸãã 人éã¯æ©ããå°é¢ãèŠãŠãåããå€ããŠãæ©ããŠããããããã«é³¥ãããã ãããŠä»ãããªãã¯ãããèšé²ããããã«ããããã®äºååŠçãããŸãã
ãªãã·ã§ã¢ã®èª²é¡ãšå©ç¹
ã§ã¯ãããããªãã·ã§ã¢ã§ããããšããŠãããšãããæ³åããŠã¿ãŠãã ããã æè¿ãæ°Žã®äžãæ©ããŠã¿ãããšããã人ã¯ã©ãããããããããããŸããã åå詊ãããšãã¯ãããŸãããŸããããŸããã§ããã ããããæŽäžé¢šåçºé»ã«ã¯å€ãã®å©ç¹ããããŸãã å ·äœçã«ã¯ãæŽäžé¢šåã¿ãŒãã³ã倧ååããããšãã§ããŸãã ç§ã¯é¢šåãšãã«ã®ãŒã®å€ãå·ã«äœãã§ããŸãããæ¯æ¥ããããæ¯æ¥ã§ã¯ãªããããããŸããããã»ãšãã©ã®æ¥ããããã®å·šå€§ãªã¿ãŒãã³ãã¬ãŒããã€ã³ãã©ã«æŒã蟌ãŸããŠããã®ãç®ã«ããŸãã
ãªãã·ã§ã¢ã§äœæ¥ããå Žåãåºæ¬çã«ã¯å¥œããªã ã倧ããªãã¬ãŒããäœããããŒãã«èŒããŠãå¿ èŠãªå Žæã«æã£ãŠããããšãã§ããŸãã ãŸãã颚åã¿ãŒãã³ã倧ååããã«ã€ããŠãããå¹ççã«ãªããŸãã ãããŠæåŸã«ãæŽäžé¢šåã¯ããä¿¡é Œæ§ã®é«ããšãã«ã®ãŒæºã§ãããã°ãªããã®å®å®æ§ã«è²¢ç®ããŸãã ããããå ã»ã©èª¬æããããã«ãåŸæ¥ã®æå³ã§ã®éçåç©ã®è¡çªç£èŠã¯éžäžã«åºã¥ããŠãããäœããèœäžããŠãå°é¢ã«ãšã©ãŸããšããå€ãã®ä»®å®ãããŠããŸãã ã¿ãŒãã³ãããå Žæãäººãæ©ãããšãã§ããŸãã
ããããªãã·ã§ã¢ç°å¢ã§æ©èœãããã«ã¯ãå¥ã®ãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãã ãããŠãæ²åã®ç°å¢ã«ã¯ç©ºåãå©çšããåç©ããŸã ãããããæ²åã®ç£èŠã¯äŸç¶ãšããŠéèŠã§ãã ç§ãã¡ãè¡ã£ãŠããã®ã¯ãã³ã³ãã¥ãŒã¿ãŒããžã§ã³ã䜿çšããããšã§ãã ç§ã宿Œããããã«æ©ãåã£ãŠãåç©ã®åç©ã®è¡çªã®çµæãèŠã€ããã®ã§ã¯ãªãããã®åºæ¥äºãèµ·ãã£ãç¬éã«ãããæ€åºããããå°ãªããšããã®æ§åããããªã§èšé²ããå¿ èŠããããŸãã ã³ã³ãã¥ãŒã¿ããžã§ã³ã¯ã倧ã çã«å ±éãããããšãªãäžçãäžå€ããããã¯ãããžãŒã®1ã€ã§ãã ããããæè¿ã§ã¯ãç»åããããªã®ãã¬ãŒã å ã®ãªããžã§ã¯ããèªåçã«æ€åºããã®ã«éåžžã«åªããŠããŸãã
ã€ãŸããåç©ã®åã®è¡çªã®æ€åºã¯ã2ã€ã®é£ããã¹ãããã§è¡ãããšãã§ããŸãã ã¹ããã1ãã¿ãŒãã³ã®ãããªãé²ç»ããŸãã ã¹ããã2ããããªãåæããŸãã ãäžæãªç¹ãããããŸããããããããšãããããŸãã ãæ³åã®ãšãããããã¯æã£ããããã¯ããã«é£ããããšã§ãã æã£ããããé£ããå¶çŽãããã€ããããŸãã
å¶çŽ
ãŸã第äžã«ã倧西æŽã¯ã€ã³ã¿ãŒãããæ¥ç¶ã§æåã§ã¯ãããŸããã ãŸããã€ã³ã¿ãŒãããã«æ¥ç¶ããŠããŠããå€ãã®èŠå¶åœå±ãããããããã«ã¯æ¥ç¶ã§ããªãããšäŒãããããŸãã ããã¯ãšãã«ã®ãŒã€ã³ãã©ã«é¢ä¿ããŠããŸãã ããã¯ãæ¥ç¶ããªãå¯èœæ§ãããããšãæå³ããŸãã
æ¥ç¶æ§ããªããšããããšã¯ããã¹ãŠã®ããŒã¿ãåéããã®ãšåãå Žæã§ãã¹ãŠã®ããŒã¿ãåŠçããå¿ èŠãããããšãæå³ããŸãã ããã¯ãã¿ãŒãã³ãåããããã¿ãŒãã³èªäœãå転ããããããšãã«ããã¬ãŒããååã«ã«ããŒããããã«ãã¿ãŒãã³ããšã«å€ãã®ã«ã¡ã©ãå¿ èŠã«ãªããšãããã·ã¹ãã ã®å¥ã®ç¹åŸŽãšè¡çªããŸãã å šäœãšããŠãããã¯1æ¥ãããæ°çŸã®ã¬ãã€ãã®ããŒã¿ã«ãªãå¯èœæ§ããããããããŸãããã®ããŒã¿ãä»ã®å Žæã«éä¿¡ããããã®æ¥ç¶ããããŸããã ãããŠãããããªããçŽ æŽãªããšãããŠããã®ãã¹ãŠã®ããŒã¿ãã¿ãŒãã³ã®ããŒããã©ã€ãã«ä¿åããããšãããšãäžåºŠã«äœã¶æãã®éãå¿ ãããããã«ãã©ãçãããšãã§ããªãå¥ã®åé¡ã«ã¶ã€ããã§ãããã ãããŠããã®éã®ããŒã¿ãæ°ãæéä¿åããã®ã«ååãªããŒããã©ã€ããæã€ããšã¯ãéæ¹ããªã倧ããªããŒããã©ã€ãã®å±±ã®ãããªãã®ã§ãã ã§ããããç§ãã¡ã¯ãããããŸããã 代ããã«ãå§çž®ã¢ã«ãŽãªãºã ãšèããããšãã§ããŸãã ã³ã³ãã¥ãŒã¿ãŒããžã§ã³ã·ã¹ãã ããªã¢ã«ã¿ã€ã ã§äœ¿çšããŠãããŒã¿ãã£ãŒãã確èªããŸãã ãŸãããããã®ããŒã¿ãã£ãŒããæ€èšŒãããã¹ãŠã®å§çž®ã¢ã«ãŽãªãºã (å°ãªããšããã¹ãŠã®éå¯éå§çž®ã¢ã«ãŽãªãºã )ãšåæ§ã«ãããŒã¿ãã©ã®ããã«é¢é£æ§ããããéèŠã§ãã©ã®ããŒã¿ãäžèŠã§ãããã倿ããŸãã ããããããããã¹ãŠãè¡ãããšã¯ç¡æã§ã¯ãããŸããã
ãŸããããŒããŠã§ã¢ãç§ãã¡ã®ããã«è¡ãå¿ èŠãããããšãããã€ããããŸãã ãšããžç°å¢ã§ç¢ºå®ã«åäœããå¿ èŠããããŸãã ããã«éèŠãªããšã¯ãããã¯ããŒããŠã§ã¢ã®å¶çŽã§ãããšåæã«ãã·ã¹ãã å šäœã®å¶çŽã§ããããšããããšã§ãã ç£èŠãªãã§ç¶ç¶çã«åäœããå¿ èŠããããŸãã 8ã¶æãšãã§åºãäžçã«éãåºããªããåž°ã£ãŠãããšãã«ãã¡ãããšåããŠããŠã»ãããã®ã§ãããã ãŸããããã¯éå¯éå§çž®ã®æ§è³ªäžããªã¢ã«ã¿ã€ã ã§å®è¡ããå¿ èŠããããŸãã ãããŠæåŸã«ãã»ããã¢ãããããªãç°¡åã§ããå¿ èŠããããŸãã ååãèª¬ææžãæã£ãŠèª°ããéãåºããŠãããããããããšèšãã®ã¯ãééããããã®ã§é¿ããããã®ã§ãã
ãœãªã¥ãŒã·ã§ã³
ããããã¹ãŠã«å¯Ÿãã解決çããããŸãã ç¶ç¶çãã€èªåŸçã«åäœãããããã«ããšããžããã€ã¹ã1ã€ã ãçšæããããã匷åããŠå¯èœãªéãä¿¡é Œæ§ãé«ããããšã«ããŸããã ãã®ã³ã³ãã¥ãŒã¿ãŒ ããžã§ã³ ã¢ãã«ã«ã¯ãããŒã¿ã®ååŸãããŒã¿åŠçãããŒã¿ ã¹ãã¬ãŒãžãªã©ãå€ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããããŸããã
ããããã€ã¯ããµãŒãã¹ã®ãããªã¢ãŒããã¯ãã£ã«çµã¿èŸŒã¿ãŸããã ããã¯ãAWSãGoogle Cloudãªã©ã§å®è¡ããããšæãããå žåçãªãã€ã¯ããµãŒãã¹ã§ã¯ãããŸããã ãããã¯ãã¹ãŠãšããžãã·ã³ã§ãã¹ããããŠããŸããã åãã€ã¯ããµãŒãã¹ã¯ãåå¥ã® Docker ã³ã³ãããŒå ã«ãããŸããã ãããªã®ååŸãæ©æ¢°åŠç¿ã®æšè«ã®å®è¡ãªã©ã®ããã« 1 ã€æã€ããšãã§ããŸãã ããã«ããããããã®ãã€ã¯ããµãŒãã¹ããã¹ãŠãç¹å®ã®ãã¡ã€ã³ã®å°éå®¶ã§ããããŸããŸãªããŒã ã§éçºããããšãã§ããŸããã
åœç€Ÿã®æ©æ¢°åŠç¿ããŒã ã¯ãæšè«ãè¡ããµãŒãã¹ãéçºã§ããŸããã ãŸããéçºããŒã ã¯ãã«ã¡ã©ãšã®å¯Ÿè©±ãããŒã¿ååŸãéããŠã調éããŒã¿ç®¡çãªã©ã®ãµãŒãã¹ãéçºããããšãã§ããŸããã
Docker ã®äœ¿çš
ç§ãã¡ã¯Dockerã䜿çšããŠããã®ã§ãããã¯Dockerãããã«æ¬åœã«é©ããŠãããšããæåã®ãã³ãã®1ã€ã§ããã ç§ãã¡ã¯ããã€ã¯ããµãŒãã¹ã®å¢çã§ã€ã³ã¿ãŒãã§ãŒã¹ã³ã³ãã©ã¯ãã«åæããä»ã®ããŒã ãç§ãã¡ã圌ãã«äœãæåŸ ããäœãæäŸããŠããããç¥ã£ãŠããããšã確èªãããã®åŸãç§ãã¡èªèº«ã®å°ããªã³ã³ããåãããäžçã§äœæ¥ããèªåãã¡ã®ä»äºãããŸãããªãããšãã§ããããšã«æ°ä»ããŸããã ãŸããç¬èªã®ãµãŒãã¹ããã¹ãããããšãã§ãããããã®ãã¹ããéçšç°å¢ã§ã®ä¿¡é Œæ§ã«æå³ããããšãã確信ãæã€ããšãã§ããŸããã ãŸããã€ã³ã¹ããŒã«ã«ã€ããŠã¯ãDocker Hubã§ãã¹ãã§ãããããæ°ããããŒããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãããŒããŠã§ã¢ã®ãã¹ããDocker pullãå®è¡ããã®ãšåããããç°¡åã«ãªããŸããã
ãããã®ãµãŒãã¹ããã¹ãŠååŸãããã·ã³ã«ããªã€ã³ã¹ããŒã«ã§ãã Docker Compose ãã¡ã€ã«ã§èª¿æŽãããããå®éã®ããŒããŠã§ã¢ã€ã³ã¹ããŒã©ãŒã¯ããã«ã€ããŠèããå¿ èŠããããŸããã§ããããã®ãããã³ã³ãããæ§ç¯ããŠãã¹ãããåŸã®ã€ã³ã¹ããŒã«ããã»ã¹ã¯ãã³ã³ããã€ã¡ãŒãžããã«ããŠãã¹ãããŒã¿ãååŸããDocker Composeããã°ããå®è¡ããŠã€ã³ã¹ããŒã«ãæ€èšŒããã ãã§æžã¿ãŸããã
ãŸããå ã»ã©ãè¿°ã¹ãããã«ããªã¢ã«ã¿ã€ã ã§ããŒã¿ã«è¿œãã€ãå¿ èŠããããããŒã¿ã«è¿œãã€ãã ãã§ãªãã倧éã®ããŒã¿ã«è¿œãã€ãå¿ èŠããããŸããã Docker ã¯ãããã€ãã®éèŠãªæ¹æ³ã§ãããå®çŸããã®ã«åœ¹ç«ã¡ãŸããã ãŸã第äžã«ãRedisãTritonãNvidiaã¹ã¿ãã¯ãªã©ãéåžžã«å 宿ã®ãã宿Šã§ãã¹ãããããœãªã¥ãŒã·ã§ã³ã䜿çšã§ããŸãã Dockerãªãã§ãããè¡ãããšã¯ééããªãå¯èœã§ãããç¹ã«äžæ¹ã®äŸåé¢ä¿ã仿¹ã®äŸåé¢ä¿ãšç«¶åãå§ãããšãéåžžã«èŠçã«ãªããŸãã ãããŠãdocker pullãTritonãããŒãžã§ã³çªå·ãå ¥åããã ãã§æžããããDockeråãããããŒãžã§ã³ãããããšã¯éåžžã«è²Žéã§ããããšã«æ°ä»ããŸããã ãããŠãTritonãµãŒããŒã皌åããŠããŸããã
ãŸãã忥ã«è°è«ããããã¹ãŠã®é床æ¹åãæ¯ãè¿ã£ãŠãDockerã¯é«éã§ããããšãææããŠãããŸãã éåžžã«äœããªãŒããŒãããã§ã»ãŒVMã¬ãã«ã®åé¢ãåŸãããããšã¯ãç§ã«ãšã£ãŠä¿¡ããããªãã»ã©ã§ãã ããã«ããã®çš®ã®ãããžã§ã¯ãã®æ§è³ªäžãç¹ã«ãã¹ãæã«ã¯ãã»ã³ãµãŒã®è¿œå ãã»ã³ãµãŒã®æžç®ãã¯ãŒã¯ããŒãã®å€æŽãè¡ããŸãã ãŸãããã®ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãããDockerã³ã³ããã远å ãããã䜿çšããªãDockerã³ã³ããããªãã«ãããããã ãã§ããªã³ããã³ãã§æ¡åŒµã§ããããã«ãªããŸããã
é å
ãã®ããããããã€ã¯ãç¹ã«ããªãããŒã«ãªãå§ãããšããã§ãã ãããã®ãªãã·ã§ã¢ç°å¢ã®å€ãã¯ãããã«ããã ãã§ãå€ãã®ãã¬ãŒãã³ã°ãå¿ èŠãªãããéåžžã«æè¡çãªç°å¢ã§ãã ããŒããããªã³ãã¿ãŒã«ä¹ãã«ã¯èšç·Žãå¿ èŠã§ãã ã¿ãŒãã³ãå®å šã«æäœããã«ã¯ããã¬ãŒãã³ã°ãå¿ èŠã§ãã ç§ãã¡ã®ããŒã ã®ã¡ã³ããŒããã®ãã¬ãŒãã³ã°ãåããã«ã¯ãäœã¶æããããå¯èœæ§ããããŸãã
ãããããã®ç°å¢ã«å ¥ãã®ã«ååãªè³æ Œãæã€äººã ããã§ã«ããŸãã 颚åã¿ãŒãã³ã§åãã®ã¯ããã®äººãã¡ã§ãã ããŠããããã®äººã ã¯å¿ ãããç§ãã¡ã®ã·ã¹ãã ãçè§£ããŠããããã§ã¯ãããŸããããçè§£ããããšãæåŸ ãããã¹ãã§ããããŸããã ã€ãŸããã³ã³ãã¥ãŒã¿ãŒãåãåºããå¿ èŠãªãã¹ãŠã®ãã¡ã€ã«ãDockerã³ã³ãããã€ã¡ãŒãžã§ããªã€ã¡ãŒãžåããŠããããã®äººã ã«æž¡ãããšãã§ããŸããã
次ã«ãæåŸã®ã¹ããããšããŠããšããžããã€ã¹ã黿ºã§èµ·åããããã«èšå®ãããã©ã°ãå·®ã蟌ããšããã«èµ·åããããã«ããŸããã ãã ããåã«èµ·åããã ãã§ã¯ååã§ã¯ãããŸããã NASã·ã¹ãã ããããã«ã¡ã©ãããããããã¯ãŒã¯ã¹ã€ããããããŸãã ããã§ãDocker Compose ã systemd ãµãŒãã¹ãšããŠç»é²ããsystemd ã䜿çšããŠæå®ããæéã« Docker Compose ãèµ·åããŸããã ããããããã«å ããŠããµãŒãã¹ã®æºåãæŽãåã«ãµãŒãã¹ãéå§ãããŠããªãããšã確èªããããã«ããã«ã¹ãã§ãã¯ãè¡ããããšèããŸããã
ç¹°ãè¿ãã«ãªããŸãããDocker 㯠Docker Compose ã§å©çšã§ãããã«ã¹ãã§ãã¯ã§ããããããã®ç¹ã§éåžžã«åŒ·åã§ããã å Žåã«ãã£ãŠã¯ãå°çšã®ããŒããŠã§ã¢ããã§ãã¯ãããã®ããŒããŠã§ã¢ã®æºåãæŽã£ããšãã«æ£åžžãªç¶æ ã«ãªããããªDockerã³ã³ãããæ§ç¯ããããšãã§ããŸãã
ãã€ãããç ç©¶
ããã¯çè«çã«ã¯çŽ æŽãããããšã§ãããããã€ãã®çµæã«ã€ããŠè°è«ããããšæããŸãã äžèšã®çµæãåŸãããã«ãç§ãã¡ã¯ãã€ãããç ç©¶ãè¡ããŸããã ãã®ãã€ããã調æ»ã¯éžäžã§è¡ãããŸãããããã®çç±ã®äžã€ã¯ãç§ãã¡ãå©çšã§ãããã®ããã£ãããšãšããã€ããã調æ»ã§ã¯ãããæå³ã§ããŒããã§ããã°ãããŒããŠã§ã¢ã«è¿ã¥ããŠãã©ãã«ã·ã¥ãŒãã£ã³ã°ãè¡ãããšãã§ããã°ãæ¥ç¶ãè¯ããªããŠãSSHã§æ¥ç¶ã§ããå Žåãéåžžã«åœ¹ç«ã€ããã§ãã ãããããã®ãã€ãããç ç©¶ã§ã¯ããã°ã€ã³ããããŒã·ãã¿ãŒãã§ããªãå Žåã«ããã®ã·ã¹ãã ãã©ã®ããã«åäœããããååã«èªèããããã«ããŸããã
ãã§ã«èª¬æãããããã¿ã€ãã·ã¹ãã ãéçºãããããœã¿å€§åŠãææããéžäžã¿ãŒãã³ã§ãã¹ãããŸããã ç ç©¶çšã¿ãŒãã³ã«èšçœ®ãããŠãã ãã£ãããšã«ãšãŠãæè¬ããŠããŸãã ãããŠãããã¯éžäžã§ããããæ¥ç¶æ§ãè¯ããªãã£ãããšãææããŸãã ããäžã€ããã£ãã®ã¯ã颚åçºé»æã¯çºé»æœèšã§ããã«ããããããã颚åçºé»æã®æ©åšãžã®é»åäŸçµŠã¯ãå®¶åºãžã®é»åäŸçµŠãªã©ãšåžžã«äžè²«ããŠãããšã¯éããªããšããããšã§ãã ãã®ããã黿ºãæ¥ç¶ããããã³ã«ã·ã¹ãã ãèªåŸçã«åäœãéå§ããããšãäžå¯æ¬ ã«ãªããŸããã
é©ã
ãã®ãããžã§ã¯ãã§Dockerãããããããã1ã€ã®å€§ããªææã¯ãæåã®ãããã€ããçŽ1é±éåŸãã¹ã±ãžã¥ãŒã«ã§ããŒã¿ãä¿åããŠããã¯ãã®ã«ã¡ã©ã®äžéšãçºèŠããããšã§ãã å®éã«ã¯ãããŒã¿ããŸã£ããä¿åããŠããŸããã ããã«ã¯çç±ããããŸãã ãã®çç±ãäœãªã®ãã¯ãDockerfileã䜿ã£ãŠãé²ç¯ã«ã¡ã©ã«äœ¿ãããæšæºçãªãããã³ã«ã§ããRTSPã¹ããªãŒãã³ã°ãèµ·åããã®ã¯ç°¡åã ã£ãããã§ãã ãŸãããããã€åŸã¯ããã®æ°ãããã€ã¯ããµãŒãã¹ãããã±ãŒãžåããŠéä¿¡ããã·ã¹ãã ã«çµ±åããã ãã§ç°¡åã§ããã
ãŸãããã®çè«ã®ãã¹ãŠãããªã匷åã«ãã¹ããããã®ã¯ãå°å ¥ããæ°é±éåŸãã·ã¹ãã ãå°ãäºæ³å€ã«åäœããŠããããšã«æ°ã¥ããããšã§ãã æéã®çµéã«äŒŽãäžè¬çãªé»åæ¶è²»ã°ã©ããã©ã®ããã«èŠãããã¯ããããŸããããããã¯ã§ã¯ãªããç§ãã¡ã®ã·ã¹ãã ã¯ããããã£ãŠããŸãã èµ·åæã®ã¢ã€ãã«ç¶æ ã®åŸãäºæ³ã©ããããå°éã®é»åãæ¶è²»ããŸãã åŠçãã€ãã©ã€ã³ãæ©èœãå§ãããšãé»åæ¶è²»éãäºæ³ã©ããã«å¢å ããŸãã ãããããã®çŽ1ååŸãéåžžã«å¥åŠãªããšãèµ·ãããŸããã
ããã¯ãã·ã¹ãã ãå¿ æ»ã«ãããã°ããAPCã¢ã¯ã»ã¹ã®åºåã«é¢ããçµ±èšãå®è¡ããŠãããšãã«ããšããžããã€ã¹ã®æ¶è²»é»åãã©ã³ãã ã«æ¥å¢ãå§ããããã€ã¹ãçªç¶ã¯ã©ãã·ã¥ããããšãçºèŠããŸããã ãããŠãããã¯ããããè¯ãããšã ã£ãããªããªãããã¯ããããå®å šãªã·ã¹ãã ãæèœãªé»æµã®ããã«ããªããããã®ã ããã æ®å¿µãªããšã«ãããã¯å ã»ã©ãèšã£ãããã«ãå€§èŠæš¡ãªå±éã®çã£åªäžã«èµ·ãã£ãããšã§ãããããã€ã¹ãå£ãããã©ãããããšããã¹ãã¬ã¹ãæããŠããŸããã åœæãç§ãã¡ãèšã£ãããã«ãIoTã¯Toastã®ã€ã³ã¿ãŒãããã§ãããšãããžã§ãŒã¯ããããŸããã
ãã¿ãã¬ã«ãªããŸãããæã£ããããã£ãšç°¡åã§ããã Dockerã«æ¹ããŠæè¬ããŸãã ã³ã³ããåãããã¯ãŒã¯ãããŒãšç°¡åãªãããã€ã«å€å€§ãªåŽåãè²»ããããããæ°ãããšããžããã€ã¹ã®ã»ããã¢ããã¯å®éã«ã¯éåžžã«ç°¡åã§ããã ããã§ãããŒããŠã§ã¢ãå ¥æããçµã¿ç«ãŠãŸããã ããã€ãã®GPUãã©ã€ããŒãã€ã³ã¹ããŒã«ããŸããã æ£çŽãªãšããããããäžçªå€§å€ã ã£ããšæããŸãããããã»ã©é£ããã¯ãããŸããã§ããã systemdãšDockerComposeãã¡ã€ã«ãã³ããŒãããšãSSHæ¥ç¶ã§ãdockercomposeupããšå ¥åããã ãã§ãã ãããŠãããã¯ç¢ºãã«å±éã®éäžã§å ·åãæªãã£ãã®ã§ãããããã¯ãµãã©ã€ãºåé åãå¯èœãªã®ãšåããããè¯ãããšã匷調ããããšæããŸãã ããã¯ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãã³ã³ããåããããããã®ã³ã³ããã«ã¯ãç§ãã¡ãèããå¿ èŠãããªããå¿ èŠãªãã¹ãŠã®ã©ã€ãã©ãªãšãã¹ãŠã®äŸåé¢ä¿ãå«ãŸããŠãããšããäºå®ã®ãããã§ãã ãŸããç§ãã¡ã¯ããã«ã€ããŠèããªããã°ãªããŸããã§ããããæåã§ãã¹ãŠã®ã¢ãã«ãé£ç¶ãããå¿ èŠã¯ãããŸããã§ããã Dockerã®ãããã§ããããã¯èªåçã«äžåã«äžŠãã§ããŸããã
æ¥çžŸ
ãšããããã§ããã€ãããç ç©¶ã®çµæãããã€ãã玹ä»ããŸãã ã€ã³ã¿ãŒããã (Internet of Toast) ã«ããã€ã¹ã远å ãããšããã¡ãã£ãšãããã©ãã«ã®åŸãç§ãã¡ã®ã·ã¹ãã ã¯äžåºŠã«äœé±éãç¡äººã§çšŒåããŸããã ãã®åŸããã€ããã調æ»ãçµäºãããŸã§6é±éç¶ãããšæããŸããããã®éã«ç§ãã¡ãè¡ã£ãã®ã¯ãããã€ãã®ã·ã¹ãã ãã°ãèŠãŠãã·ã¹ãã ã皌åããŠããããšã瀺ãããšã ãã§ããã ãããæ¥ç¶ã®ãªããªãã·ã§ã¢ã¿ãŒãã³ã«æèŒãããŠãããããã®éãå®ç§ã«ä»äºãããªããã§ãããã ãŸãããã®ç ç©¶ã§ã¯ã 6ã000 æéã®ãããªããªã¢ã«ã¿ã€ã ã§åæããé¢é£æ§ã®ãããããªãšé¢é£æ§ã®ãªããããªããªã¢ã«ã¿ã€ã ã§åé¡ããããŒã¿å§çž®ã®éã¿ãçŽ 10 åã«ããŸããã ãããŠãç§ãã¡ã®ã¢ã«ãŽãªãºã ã¯ããã€ãã®è¡çªãæ€åºããŸããã ããŠããã¹ãŠã®ããŒã¿å§çž®ã§ãéå¯éå§çž®ã¢ã«ãŽãªãºã ãäžèŠãªãã®ã ããæšãŠãããšãã©ããã£ãŠç¥ãã®ããšããçåãçããŸãã ãããŠãããã¯éåžžã«æ£åœãªè³ªåã§ãããããªããå°ããå¿ èŠããã質åã§ãã
ããã§ããã®æè¡å®èšŒå®éšãšäžŠè¡ããŠã人éã«å°äžãæ©ãåã£ãŠãããããã®ããã«å°é¢ãèŠãŠããããšããåŸæ¥ã®ã¢ãã¿ãªã³ã°ãè¡ããŸããã ãããŠããã®ã¢ãã¿ãªã³ã°ã®çµæã¯ãç§ãã¡ãè¡ã£ãããšãšçµ±èšçã«æ¯èŒå¯èœã§ããã ããã ãã§ãªããã·ã¹ãã ãæ€åºããç£èŠæè¡è ãæ€åºãããã¹ãŠã®ã€ãã³ããåå¥ã«ãã§ãã¯ããŸããã ãããŠãåºæ¬çã«ã¯1察1ã®å¯Ÿå¿ã§ãåŸæ¥ã®æ¹æ³ã§ã¯æ€åºããããã¹ãŠã®ãã®ãããããã1ã€ãé€ããŠæ€åºãããæè¡è ãæ€åºããªãã£ãã€ãã³ãã1ã€èŠã€ãã£ãå¯èœæ§ããããŸãã
ãã®ããããªãã·ã§ã¢ç°å¢ã§ã®äœæ¥ã ãã§ãªãããªãã·ã§ã¢ç°å¢ã§å å®ã§åçŸæ§ããããç§åŠçã«æ£åœåã§ããçµæãçã¿åºãããã«ãå€ãã®æåŸ ãå¯ããããŠããŸãã ãŸãããããã®ãªãã·ã§ã¢å±éã ãã§ãªããæ©æ¢°åŠç¿ã¢ãã«ãããåºãäžçã«éãåºãéã«ããç¡åãªæèšãåŠã³ãŸããã æ©æ¢°åŠç¿ã¢ãã«ã¯ãäžçã«å€åãããããããã©ã¹ã®åœ±é¿ãäžããããã«ãäžçãšçžäºäœçšããå¿ èŠããããŸãã ãããŠããã®çžäºäœçšã¯ãéçºè ã«ãšã£ãŠéœåã®æªãå Žæã§è¡ãããå¿ èŠããããŸããæ¥ç¶ãããŠããªãå¯èœæ§ããããŸãã
Dockerã®æ¯å©ãããœãããŠã§ã¢ã«ãã茞éçšã³ã³ãããšããŠãã䜿ãããšã¯ç¥ã£ãŠããŸãã ããã¯å°ããªããŽã«ãããããŸãã ãããŠããã®æ¯å©ã¯ããã§ãéåžžã«åœãŠã¯ãŸããšæããŸãããå°ãéã£ãã²ããããããŸãã ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã®äžçã§ã¯ããã®ãããªDockerã®ãããªèŒžéã³ã³ããã¯ãAWSãDockerfileã®äžèº«ãããçšåºŠæ°ã«ããªãããã§ãã 圌ãã¯ãã¹ãŠã®è©³çްãç¥ãå¿ èŠã¯ãªããæšæºåãããå€èгãæã«å ¥ããŠäœæ¥ããã ãã§ãã ãããããããã®æ©æ¢°åŠç¿ã¢ãã«ããšããžã«æã¡èŸŒãå Žåã¯ãå°ãç°ãªããŸãã 茞éçšã³ã³ããã®æ¯å©ã¯ä»ã§ãåœãŠã¯ãŸããŸãããMLã¢ãã«ã¯ãããã³ã§æºåããé£äºã®ãããªãã®ã§ãã ãããŠããã¹ãŠã®é£æãå ¥ã£ããããã³ã調çã«æ £ããŠããã¹ããŒãããã®ç¹ç°æ§ãç¥ã£ãŠãããªãŒãã³ã眮ãããããããã¹ãŠèŒžéçšã³ã³ããã«å ¥ããŠãé£äºã調çãããå Žæã«æã£ãŠãããŸãã
æèš
ãŸãããã®éçšã§ããã€ãã®éèŠãªæèšãåŠã³ãŸããã æåããã»ãšãã©ãã¹ãŠãã³ã³ããåããããšã¯ãéåžžã«åŒ·åã§ãéåžžã«åœ¹ç«ã¡ãŸãã ãããŠãããã¯ããããšã§ãã ã³ã¹ãã¯ã»ãšãã©ããããŸããã ããŒã ãDockerã§çšŒåãããããã䜿çšããããã®ãã¬ãŒãã³ã°ã«ã¯ã³ã¹ããããããŸãã ããããã©ã³ã¿ã€ã ãžã®æè³ãæ¯æãã°ãã³ã³ããã§ã®éçºãé£ãããªã£ããé ããªã£ããããããšã¯ãããŸããã ãããŠããã®éçºãšã³ã³ããã§ã®å®è¡ãè¡ãããšã§ãæ©æ¢°åŠç¿ã¢ãã«ãšMLã¢ããªã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå©çšã§ããå¹ åºãäžçãéãããŸãã
ãŸããã³ã³ããã¯ééããªãã¯ã©ãŠãã§åœ¹ç«ã¡ãŸãã ç§ã¯ãã®ãããžã§ã¯ããæäŒããŸããããæ¯ãè¿ã£ãŠã¿ããšããšããžã®ã³ã³ãããã©ãã»ã©åŒ·åã§ãããã«ãšãŠãé©ããããŸããã ãããŸã§èª¬æããŠããããã«ãã³ã³ããåã¯ããããã€ãšåãããã€ãåæ»ã«é²ããèšç®è² è·ã«å¿ããŠã¹ã±ãŒãªã³ã°ããã®ã«åœ¹ç«ã¡ãŸãã ããã¯ã1ã€ã®ã¿ãŒãã³ã«1å°ã®ã³ã³ãã¥ãŒã¿ãŒãæèŒããŠããŠãã2ã€ã®ã¿ãŒãã³ã« 200 å°ã®ã³ã³ãã¥ãŒã¿ãŒãæèŒããŠããŠãåãã§ãã ã©ããã®IoTããã€ã¹ãå·èµåº«ã§æ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ãå®è¡ããããšæã£ãŠããããããããã ãšæããŸãã ãšããžMLã®å¶çŽã®å€ãã¯ããšããžMLã®ãããã€éã§ãããšããžãœãããŠã§ã¢ã®ãããã€ã ãã§ãéåžžã«ãã䌌ãŠããŸãã
ãŸããããã匷調ããŠãè¶³ããŸããããéçºç°å¢ã補åç°å¢ãšäžèŽããããšãä¿èšŒããåçŸæ§ã¯ãè€éãªã¢ããªã±ãŒã·ã§ã³ããšããžããã€ã¹ãå·èµåº«ãIoTããã€ã¹ã«éããšãã«å€§ããªå®å¿æãäžããŠãããŸãã
çµè«
ãããŠæåŸã«ããã®ãããªã«ã€ããŠããã€ãææããŠããããããšããããŸãã 空é£ã¶åç©ã®åšãã«ã¢ãã«æç»ããã¯ã¹ãèŠããŸãã ããããæåŸã«ã¯ãããããã«ãåãã®éãåç©ãã¯ã«ãŒãºããŠããããšã«æ°ã¥ãã§ãããã ããã¯ãç§ãã¡èªèº«ãããã«ã¯æ°ã¥ããªããã®ãã¢ãã«ãæŸããšãããããªãäžè¬çãªãã¿ãŒã³ã§ããã ãããŠããã®ããšã¯ããããã®ç¢ºç«ãããMLãã¯ãããžãŒããDockerã®åãšã³ã³ããåã®åã§ããããã®ãã¯ãããžãŒãæ°ããå Žæã«æã¡èŸŒã¿ãæ°ããåé¡ã解決ããMLãšDockerãçµã¿åãããåã®ãããã§ã以åã¯éæã§ããªãã£ãã¬ãã«ã®å質ãšãããã€ãã¹ããŒããšç²ŸåºŠãããããããšãã§ããããšã瀺åããŠããŸãã ãæž èŽããããšãããããŸããã
質çå¿ç
ã©ããªè³ªåã§ãã æè«ã¯ã©ãã«ã§ãããã®ã§ãæè«ããéããããšã¯é©ãã»ã©å¥ã®åé¡ã§ãã ç§ãã¡ãæã£ãŠããã«ã¡ã©ã®è§£å床ã§ã¯ãã«ã¡ã©ã®è¿ãã§åããŠããæè«ã¯ãã«ã¡ã©ããé ãé¢ãããšããã«ããé³¥ã®ããã«èŠããããšããããŸãã ã§ããããšã¯ããã€ããããŸãã ãããããããè¡ãããã®æã匷åãªæ¹æ³ã®1ã€ã¯ãæè«èªäœã®åãã«æç³»åã¢ãã«ã䜿çšããããšã§ãã ããããæãã§ãã ããããããäžã€ã§ããããšã¯ãæè«ã§ã¯ãªããšããã£ãŠãããã®ã ãã«æ³šæãæãããšã§ãã 倧ãããè¶³ãããšããåãæ¹ããããšããåœ¢ãæ±ºãŸã£ãŠãããšãã
åé¡ã¯ãããŒããŠã§ã¢é害ã®åé¡ããã£ããã©ããã§ããã å ã»ã©ã話ãããããã«ãéåžžã«åçãªããŒããŠã§ã¢é害ãçºçããŸããã ãŸããæå ã«ããã³ã³ããŒãã³ãã§æ§ç¯ããããããã¿ã€ãã·ã¹ãã ã§ãã£ããããä»ã®å°ããªããŒããŠã§ã¢é害ããããŸããã ã€ãŒãµãããã±ãŒãã«ãããŸãæ¥ç¶ãããªãã£ããããããã«è é£ããããããããªãã®ã§ãã ãã®åéã§äœããããããšããŠãã人ã«ã¯ãããŒããŠã§ã¢ã®å°éå®¶ã§ãã人 (ãããããªãã«ãªã人ã§ãããéã£ã人ã§ãããååã§ãã) ãèŠã€ããŠãã·ã¹ãã ãå£ããå¯èœæ§ã®ãããã¹ãŠã®å ŽæãèŠã€ããããã«é Œãããšããå§ãããŸãã ãããŠãå®çžŸã®ãããœãªã¥ãŒã·ã§ã³ã§ãããã®å Žæã匷åããŠã¿ãŠãã ããã èåæ§ã蚌æãããŠããã³ãã¯ã¿ãããããã«ã ãããããã¹ãŠãçµã¿åããã£ãŠæ©èœããããŸããããšäž»åŒµããŠãããããšãã£ãŠãã¹ãã¬ã¹ã®äžã§å®éã«æ©èœãããšæã蟌ãŸãªãã§ãã ããã
åé¡ã¯ã6å°ã®ã«ã¡ã©ããã£ãã®ã§ããã¹ãŠã®ã«ã¡ã©ãããã¹ãŠã®ãã¬ãŒã ããµã³ããªã³ã°ããããšã§ããã çãã¯ãã¯ããã§ãã¢ã¹ã¿ãªã¹ã¯ãä»ããŠããŸãã ãã®ããã2 å°ã®ã«ã¡ã©ã 1 ç§ããã 1 ãã¬ãŒã ã§åäœãããèšå®ãããã¬ãŒã ã¬ãŒãã«ããŸããã æ®ãã®ã«ã¡ã©ã¯ãã«ãã¬ãŒã ã¬ãŒãã§åäœããŸããããããã¯å¿ ãããé ãããèŠãŠãããšã¯éããªãã®ã§ããããããã®ã¿ãŒãã³ãã¬ãŒãã¯ããªãéãåããããåªããæéåè§£èœãå¿ èŠã§ãã ãããŠããåèãŸã§ã«ããããç§ãã¡ã®èšç®è² è·ã®ã»ãšãã©ã¯ããããã®ãããªã¹ããªãŒã ãåŠçããã ãã§ããã
ä»ã«ã質åã¯ããããŸãã? ã¯ãã æ¬¡ã¯ãç§ãã¡ãšææºããå®éã®æŽäžé¢šåã¿ãŒãã³ã«å±éããããšãã«ã®ãŒäŒæ¥ãªã©ã®æè¡ããŒãããŒãæ¢ããŠããŸãã ãã¯ãããžãæ€èšŒãããã®ã§ããã®æ€èšŒæžã¿ã®ãã¯ãããžã䜿çšããŠãããæå³ã§ããã倧ããªæ€èšŒãšãã¹ãå±éãçµã¿åãããŠå®è¡ããããšèããŠããŸãã ããããã°ããã£ãšæèšãçãŸãããšæããŸãã ç§ãã¡ã¯åžæãæ±ããŠãããçŸåšã颚åçºé»æã«èšçœ®ããããŒã¿ãæäŸããŠãããããŒãããŒãæ¢ããŠããŸãã
質åãããã ãã§ããããæž èŽããããšãããããŸããã
ããã«è©³ãã
- ã³ã³ãããšã¯
- ããã«ãŒã¯åããŠã§ãã? å§ããŸãããã
- Docker ãã¹ã¯ãããã®ææ°ãªãªãŒã¹ãå ¥æããŸãã
- 質åããããŸãã? Docker ã³ãã¥ããã£ããæäŒãããŸãã
- Docker Newsletter ã賌èªããŠãã ããã