ãµãŒãã¹ã®äœæ以æ¥ãRubyãPythonãPHPãJavaã.NETããã®ä»ã®èšèªãImageMagickãSoXãªã©ã®ã©ã€ãã©ãªãªã©ãäžé£ã®èšèªç°å¢ãšãã€ããªããã±ãŒãžãå«ãã³ã³ããã1ã€ã ã䜿çšããŸããã
ãã®ã³ã³ãããšãã®äœ¿çšæŠç¥ã¯ãRuby 1.9.1ãNode 0.8ãMono 2ãããã³ããã©ã«ãã§ã¹ã¿ãã¯ã§äœ¿çšãããŠããå€ãããŒãžã§ã³ã®ãã®ä»ã®èšèªãšåæ§ã«ãæ代é ãã«ãªãå§ããŸããã æéãçµã€ã«ã€ããŠã人ã ã¯æ°ãããã®ã䜿çšãå§ããã«ã€ããŠåé¡ã¯ããã«æ·±å»ã«ãªããŸããããå€ãããŒãžã§ã³ã®èšèªã§åäœããããã«ã³ãŒããå€æŽããããšãäœåãªããããŸããã
1ã€ã®LXCã³ã³ãããŒã«éå®
IronWorkerã¯LXCã³ã³ãããŒã䜿çšããŠãã¿ã¹ã¯ãå®è¡ããªãããªãœãŒã¹ãåé¢ããã»ãã¥ãªãã£ãæäŸããŸãã LXCã¯ããã©ãŒãã³ã¹ã³ã³ããŒãã³ããšããŠã¯ããŸãæ©èœããŸããããã¿ã¹ã¯ãåŠçããããã«å¿ èŠãªããããçš®é¡ã®ç°å¢ãšã®çµ±åã«é¢ããŠã¯æã ã¯ã©ãã·ã¥ããŸããã ã©ã³ã¿ã€ã ç°å¢ã®äœæã«é¢ããŠã¯ãè¡ãè©°ãŸããŸããã äžæ¹ã§ã¯ãæ¢åã®ã³ã³ããã®ããŒãžã§ã³ãæŽæ°ããããšã¯ã§ããŸããããããªããšãæ¯æ¥å®è¡ããã100äžä»¥äžã®ã¿ã¹ã¯ãç Žå£ãããå±éºããããŸãã ïŒãµãŒãã¹ã®éå§æã«äžåºŠè©ŠããŠã¿ãŸããããè¯ãçµæã«ã¯ãªããŸããã§ããïŒ
ãŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã©ã€ãã©ãªã®å®å šãªã³ããŒïŒã€ãŸããç»åããšã«ã2 GBïŒãå«ãŸããŠãããããç°ãªãããŒãžã§ã³ã®èšèªã§ããŸããŸãªLXCã³ã³ãããŒãä¿åã§ããŸããã§ããã å®éãããã¯ããã»ã¹ãæ°žé ã«ç¶ãHerokuãªã©ã®PaaSç°å¢ã§ã¯åé¡ãªãæ©èœããããã»ã¹ãéå§ããåã«é©åãªã³ã³ãããŒãååŸã§ããŸãã ãã®ãããªç¶æ³ã§ã¯ãåã¯ã©ã€ã¢ã³ãã«å€§ããªãŠãŒã¶ãŒç»åããããŸãããIronWorkerã®å Žåããã¹ãŠãç°ãªããŸãã
IronWorkerã¯ããŠãŒã¶ãŒãã¿ã¹ã¯ããã¥ãŒã«è¿œå ãã倧èŠæš¡ãªãã«ããŠãŒã¶ãŒã¿ã¹ã¯åŠçã·ã¹ãã ã§ããããããã®ã¿ã¹ã¯ã¯æ°åã®ãã³ãã©ãŒã§å®è¡ãããŸãã ããã¯ã°ã©ãŠã³ãã§å®è¡ãããã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ãèµ·åããããã©ã³ã¶ã¯ã·ã§ã³ãšã¡ãã»ãŒãžãããŒãç¶ç¶çã«åŠçããããŸãã¯å€æ°ã®ã³ã¢ã§äžŠååŠçãå®è¡ããããšã«ãããã¡ã€ã³å®è¡ã¹ã¬ããããªãããŒãããããã«äœ¿çšã§ããŸãã å©ç¹ã¯ããŠãŒã¶ãŒããªã³ããã³ãã§åŠçãããšåæã«ãéåžžã«å€§ããªåæå®è¡æ§ãåŽåãªãã§åŠçã§ããããšã§ãã
å éšã§ã¯ããµãŒãã¹ã¯æ¬¡ã®ããã«æ©èœããŸããäžé£ã®ãã¥ãŒããã¿ã¹ã¯ãåãåããç¹å®ã®VMã«ã©ã³ã¿ã€ã ãã€ã³ã¹ããŒã«ããã¿ã¹ã¯ã³ãŒããããŠã³ããŒãããŠããããã»ã¹ãéå§ããŸãã ãã®ãµãŒãã¹ã®æ¬è³ªã¯ããã¹ãŠã®é¡§å®¢ããã¹ãŠã®ãã·ã³ãåžžã«äœ¿çšããŠããããšãæå³ããŸãã ãã·ã³ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãŸãã¯é¡§å®¢ã«é·æéå²ãåœãŠãŸããã ååãšããŠãã¿ã¹ã¯ã¯é·æéå®è¡ãããŸããã æ°ç§ãŸãã¯æ°åã§åäœãããã®ããããæ倧å®è¡æéã¯60åã«å¶éãããŠããŸãã
LXCã¯æ£åžžã«æ©èœããŸããããåŸæ¹äºææ§ãæãªãããšãªããç°åžžãªéã®ãã£ã¹ã¯é åã䜿çšããã«ãæ¢åã®ã³ã³ãããŒã«äœããæŽæ°ãŸãã¯è¿œå ããæ¹æ³ãèããŸããã ç§ãã¡ã®éžæè¢ã¯ããªãéãããŠããããã«èŠããããã決å®ãå éãããŸããã
...ãããŠDockerãæ¥ãŸãã
Dockerã«ã€ããŠæåã«èããã®ã¯1幎åã§ãã GoSF MeetUpãšDockerã®äœæè ã§ããSolomon Heiksã®çµç¹åãæ¯æŽãã2013幎3æã®ã«ã³ãã¡ã¬ã³ã¹ã«åå ããGoã§æžãããæ°ããDockerãããžã§ã¯ãã®ãã¢ãè¡ããŸããã å®éã圌ã¯ãã®æ¥ã«ãããçºè¡šããŸãããããã¯èª°ãã圌ãèŠãã®ã¯åããŠã§ããã
ãã¢ã¯çŽ æŽããããèŽè¡ã®äžã®100人以äžã®éçºè ã圌ãšåœŒã®ããŒã ãè¡ã£ãããšã«æéãåããŸããã ïŒãããŠããã«ã圌ã®ã³ã¡ã³ãã®1ã€ã蚌èšããããã«ããœãã¢ã³ã¯Shame Driven DevelopmentãšåŒã°ããæ°ããéçºæ¹æ³è«ãå§ããŸããïŒ
ãæ®å¿µãªãããããã¯ããŸãã«ãç²éãªãã®ã§ããããšåæ¥ãããããžã§ã¯ãã®çç£æºåã¯ã§ããŠããŸããã§ããããæ¬åœã«è³è³ã«å€ãããã®ã§ãããã
2013 OpenStack Summitã§ã®Solomon HykesãšTravis Readerã
1ãæåŸãããŒãã©ã³ãã§éå¬ãããOpenStack Summitã§SolomonãšäŒããååããŠDockerã䜿çšããŠåé¡ã解決ããæ¹æ³ã確èªããŸããã ïŒç§ã¯1ã€ã®äŒè°ã«ããè¡ããªããšæã£ãŠããŸãããã代ããã«Solomonãä»ã®éçºè ãšã®äœæ¥ã«å€ãã®æéãè²»ãããŸããïŒã
ç§ã¯Dockerã§ãã¬ã€ããŸãããããœãã¢ã³ã¯åœŒãäœãã§ãããããããŠãããã©ã®ããã«æ©èœããããç解ããã®ãå©ããŸããã ããã¯åãªãè¯ããããžã§ã¯ãã§ã¯ãªããããŸãèšèšãããæ¹æ³ã§é£ããã¿ã¹ã¯ã解決ããŸããã ãããŠãå°ãªããšãç§ã®èŠ³ç¹ããããã°ã圌ãå²wasã§æžãããå é§è ã§ããããŸãšããªæè¡ç矩åãæã£ãŠããªãã£ãããšã¯åœŒãå·ã€ããŸããã§ããã
ç 究éçº
Dockerã®åã«ãNiââxã§äœæ¥ãããªã©ãããŸããŸãªããã±ãŒãžãããŒãžã£ãŒãè©ŠããŸããã Nixã¯çŽ æŽããããããžã§ã¯ãã§ãããå€ãã®è¯ãç¹ããããŸãããæ®å¿µãªããšã«ãããã¯ç§ãã¡ãå¿ èŠãšããŠãããã®ã§ã¯ãããŸããã§ããã Nixã¯ã¢ãããã¯æŽæ°ãããŒã«ããã¯ããµããŒãããã·ã¹ãã æ§æãžã®å®£èšçãªã¢ãããŒããæã£ãŠããŸãã
æ®å¿µãªãããç»åã§äœ¿çšããããŸããŸãªããã°ã©ã ãã©ã€ãã©ãªã®ã¹ã¯ãªãããç¶æããããšã¯é£ãããã«ã¹ã¿ã ããã±ãŒãžãããã°ã©ã ãè¿œå ããããšãå°é£ã§ããã ã¹ã¯ãªãããã©ã€ãã©ãªãªã©ãçµ±åããããã«å¿ èŠãªåªåã¯ãã·ã¹ãã ã®ãããã®ãããªãã®ã§ããã èŠä»¶ãæºããããã«ããè¿ããã®ãæ¢ããŠããŸããã
åãã«ãã®ãããªèŠä»¶ããããŸããïŒ
åãèšèªã®ç°ãªãããŒãžã§ã³ãæäŸããïŒããªãã¡ãruby 1.9ãšruby 2.1ïŒ
ä»ã®éšåãå£ããã«ã·ã¹ãã ã®äžéšãæŽæ°ããå®å šãªæ¹æ³ãããïŒããšãã°ãPythonã©ã€ãã©ãªã®ã¿ãæŽæ°ããRubyã©ã€ãã©ãªã«ã¯è§ŠããªãïŒ
ã·ã¹ãã æ§æã«å®£èšåã¢ãããŒãã䜿çšããŸãïŒã€ã¡ãŒãžå ã«ããã¹ããã®ãèšè¿°ããåçŽãªã¹ã¯ãªããïŒ
æŽæ°ãç°¡åã«æŽæ°ããŠããŒã«ããã¯ããæ¹æ³ãäœæãã
ãã®éçšã§ãDockerã䜿çšããããšã«ã¯ä»ã«ãããã€ãã®å©ç¹ãããããšãæããã«ãªããŸããã ãããã«ã¯ä»¥äžãå«ãŸããŸãã
ã©ã³ã¿ã€ã /èšèªããšã«åå¥ã®åé¢ãããç°å¢ãäœæãã
CoWãã¡ã€ã«ã·ã¹ãã ã®ãµããŒãã®ååŸïŒããã«ããã ç»å管çã®ã¬ãã«ãããå®å šãã€å¹ççã«ãªããŸãïŒã
ããŸããŸãªã©ã³ã¿ã€ã ç°å¢ããªã³ã¶ãã©ã€ã§åãæ¿ããä¿¡é Œã§ããæ¹æ³ãååŸãã
Dockerã§ã®äœæ¥
Dockerã䜿çšããå Žåããã§ã«LXCã䜿çšããŠãããããçµ±åããããšã¯é£ãããããŸããã§ããã ïŒDockerã¯ãLXCãé«ã¬ãã«ã®ããã»ã¹ã¬ãã«APIã§è£å®ããŸãã以äžã®StackOverflowãªã³ã¯ãïŒ
æ¢åã®ã·ã§ã«ã¹ã¯ãªãããDockerfilesã«ç§»è¡ããã€ã¡ãŒãžãäœæããåŸãLXCãçŽæ¥äœ¿çšããããšããåãæ¿ããã«ã¯ãlxc-executeã§ã¯ãªãdocker runãå®è¡ããåã¿ã¹ã¯ã«å¿ èŠãªã€ã¡ãŒãžIDãæå®ããå¿ èŠããããŸããã ã
LXCã€ã¡ãŒãžãéå§ããã³ãã³ãã¯æ¬¡ã®ãšããã§ãã
lxc-execute -n VM_NAME -f CONFIG_FILE COMMAND
Dockerã€ã¡ãŒãžãèµ·åããã³ãã³ãïŒ
docker run -i -name=VM_NAME worker:STACK_NAME COMMAND
ã³ã³ãããäœæããã³ã€ã³ã¹ããŒã«ããããã®æšå¥šã¢ãããŒãããå°ãé¢ããŠããããšã«æ³šæããŠãã ããã
æšæºçãªã¢ãããŒãã¯ãDockerfilesã䜿çšããŠå®è¡æã«ã€ã¡ãŒãžãäœæããããã¯ã©ãŠãã®ãã©ã€ããŒã/ãªãŒãã³ãªããžããªã«ä¿åããããšã§ãã 代ããã«ãã€ã¡ãŒãžãäœæãããããããã¹ãããã·ã§ãããååŸããŠãã·ã¹ãã ã«æ¥ç¶ãããEBSã«ä¿åããŸãã ããã¯ãã·ã¹ãã ãéåžžã«è¿ éã«èµ·åããå¿ èŠãããããã§ãã å®è¡æã«ã€ã¡ãŒãžãäœæããããšã¯æªããªãã·ã§ã³ã§ãããå€éšã¹ãã¬ãŒãžããã€ã¡ãŒãžãããŒãããããšã§ããé ãããŸãã
ããŒã¹ã€ã¡ãŒãžãšå·®å
ãŸããDockerã䜿çšããããšã§ããã£ã¹ã¯å®¹éã®åé¡ã解決ãããŸãããããã¯ãåã€ã¡ãŒãžãããŒã¹ã€ã¡ãŒãžããã®å€æŽïŒå·®åïŒã®ã»ããã«ãããªãããã§ãã ããã¯ããã¹ãŠã®ã€ã¡ãŒãžã§äœ¿çšãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšLinuxã©ã€ãã©ãªãå«ã1ã€ã®åºæ¬ã€ã¡ãŒãžãäœæãããããä»ã®å€ãã®ã€ã¡ãŒãžã®åºç€ãšããŠäœ¿çšã§ããããšãæå³ããŸãã ç¶æ¿ãããã€ã¡ãŒãžã®ãµã€ãºã«ã¯ãããŒã¹ã€ã¡ãŒãžãšã®å·®åã®ãµã€ãºã®ã¿ãå«ãŸããŸãã
ããšãã°ãRubyãã€ã³ã¹ããŒã«ãããšãæ°ããã€ã¡ãŒãžã«ã¯Rubyã§ã€ã³ã¹ããŒã«ããããã¡ã€ã«ã®ã¿ãå«ãŸããŸãã ãããæ··ä¹±ããªãããã«ãã³ã³ãã¥ãŒã¿ãŒäžã®ãã¹ãŠã®ãã¡ã€ã«ãå«ãGitãªããžããªãŒãšèããŠã¿ãŸããããããŒã¹ã€ã¡ãŒãžã¯ãã¹ã¿ãŒãã©ã³ãã§ãããä»ã®ãã¹ãŠã®ã€ã¡ãŒãžã¯ããŒã¹ã€ã¡ãŒãžããçæãããç°ãªããã©ã³ãã§ãã æ¢åã®ã³ã³ããã«åºã¥ããŠå·®ç°ãçµã¿èŸŒã¿ãã€ã¡ãŒãžãäœæãããã®æ©èœã¯ãåžžã«æ°ããããŒãžã§ã³ããªãªãŒã¹ããã©ã€ãã©ãªãããã±ãŒãžãè¿œå ããåé¡ã®è§£æ±ºã«éäžã§ãããããéåžžã«äŸ¿å©ã§ãã
ããã€ãã®åé¡
Dockerã䜿çšããŠæ°ããç°å¢ãäœæããã³å®è£ ããéã«ããã€ãã®åé¡ããããŸããããæ·±å»ãªåé¡ã¯ãããŸããã§ããã
ã¿ã¹ã¯ã®éå§åŸãã³ã³ãããåé€ããã®ã«èŠåŽããŸããã ã³ã³ããã®åãå€ãããã»ã¹ã¯æã èœã¡ãŸããããããªãããããªè§£æ±ºçãèŠã€ãããŸããã
äžéšã®ãœãããŠã§ã¢ã³ã³ããŒãã³ããæ§æããéãDockerãfuseãªã©ã®äœã¬ãã«ã®æ©èœã誀ã£ãŠãšãã¥ã¬ãŒãããããšãããããŸããã ãã®çµæãæ£ããæ©èœããJavaã€ã¡ãŒãžãååŸããããã«ãéæ³ã«é Œããªããã°ãªããŸããã§ããã
ãŸããããã ãã§ãã Docker'aã®éçºè ãžã®è³ªåã¯ãäž»ã«ããã€ãã®ä¿®æ£ã«èŠçŽãããŠããŸãããDocker'aã®æ°æ©èœã«ã€ããŠã¯ãããã§ååã§ãã ïŒæ¢åã®äžé£ã®é¢æ°ã¯éåžžã«åºç¯å²ã«åã¶ãããé¢æ°ã«ã¯äœãè¿œå ããããšããŸããã§ããïŒã
LXCãã³ã³ããããã³Docker
LXCïŒLinuX ContainersïŒã¯ãåãLinuxã·ã¹ãã ã§å®è¡ãããŠããä»ã®ããã»ã¹ãã1ã€ä»¥äžã®ããã»ã¹ãå®å šã«åé¢ãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¬ãã«ã®ä»®æ³åã·ã¹ãã ã§ãã ã³ã³ããã䜿çšãããšããªãœãŒã¹ãåé¢ã§ãããµãŒãã¹ãå¶éãããããã»ã¹ã«ã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åé¢ãããã¹ããŒã¹ãå²ãåœãŠããããã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®ç¬èªã®æ§é ã䜿çšãããŸãã è€æ°ã®ã³ã³ãããåãã³ã¢ã䜿çšã§ããŸãããåã³ã³ããã¯ãCPUãã¡ã¢ãªãI / Oãªã©ã®ç¹å®ã®éã®ãªãœãŒã¹ã®ã¿ã䜿çšããããã«å¶éã§ããŸãã ãã®çµæãã¢ããªã±ãŒã·ã§ã³ãã¿ã¹ã¯ãããã³ãã®ä»ã®ããã»ã¹ããåããã·ã³äžã§è€æ°ã®è»œéã®åé¢ãããLinuxã€ã³ã¹ã¿ã³ã¹ãšããŠå®è¡ããããã«æ§æã§ããŸãã
Dockerã¯LXCã®äžã«æ§ç¯ãããŠãããããã€ã¡ãŒãžãšå±éã管çã§ããŸãã 以äžã¯ã LXCãšDockerã®éããšäºææ§ã«é¢ãã Solomonã®StackOverflowã«é¢ããèšäºã§ãã
Dockerã®æ©èœãèŠããšããããã®ã»ãšãã©ã¯æ¢ã«LXCã§æäŸãããŠããŸãã ããã§ã¯ãDockerã¯äœãè¿œå ããŸããïŒ ãªãåçŽãªLXCã§ã¯ãªãDockerã䜿çšããå¿ èŠãããã®ã§ããïŒ
Dockerã¯LXCã®ä»£æ¿ã§ã¯ãããŸããã ãLXCããšã¯ãLinuxã«ãŒãã«ã®æ©èœïŒç¹ã«åå空éãšå¶åŸ¡ã°ã«ãŒãïŒãæããããã»ã¹ãçžäºã«åé¢ãããªãœãŒã¹ã®åé ãå¶åŸ¡ããããšãå¯èœã«ããŸãã
Dockerã¯ãäœã¬ãã«ã®ã«ãŒãã«æ©èœã«å ããŠããã€ãã®åŒ·åãªæ©èœãåããé«ã¬ãã«ã®ããŒã«ãæäŸããŸãã
ç¶ããèªã>>
çç£äžã®Docker
Docker-IronWorkerã®ã¹ã¿ãã¯ã®åºç€
çŸåšãIronWorkerãµãŒãã¹ã®äžéšãšããŠãæ¬çªç°å¢ã§Dockerã䜿çšããŠããŸãã ã³ãŒããããŒããããšãã«ãstackããã©ã¡ãŒã¿ãŒãèšå®ããããšã«ãããã¿ã¹ã¯çšã«10åã®ç°ãªããã¹ã¿ãã¯ãïŒã³ã³ãããŒïŒã®ãããããéžæã§ããŸãã èããŠã¿ãã°ãããã¯äŸ¿å©ãªæ©äŒã§ããä»»æã®æ°ã®ã³ã¢ã§å®è¡ãããçæã¿ã¹ã¯ã®èšèªããŒãžã§ã³ãæå®ã§ããŸãã
ã€ã¡ãŒãžç®¡çã«Dockerã䜿çšãããšãã·ã¹ãã ã®ä»ã®éšåãæå·ããããšãæããã«ã€ã¡ãŒãžãæŽæ°ã§ããŸãã ã€ãŸããRuby 2.1ã€ã¡ãŒãžã«è§ŠããããšãªãRuby 1.9ã€ã¡ãŒãžãæŽæ°ã§ããŸãã ïŒç¹ã«å€§èŠæš¡ãªèšèªã»ããããµããŒãããå Žåã倧èŠæš¡ã·ã¹ãã ã§ã¯äžè²«æ§ãç¶æããããšãæéèŠã§ãïŒã
ãŸããDockerfilesã䜿çšããŠã€ã¡ãŒãžãæŽæ°ããããã®ããèªååãããããã»ã¹ããããäºæž¬å¯èœãªã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠæŽæ°ãå±éã§ããŸãã ããã«ãã«ã¹ã¿ã ã€ã¡ãŒãžãäœæããæ©èœããããŸãã ãããã¯ãèšèªã®ç¹å®ã®ããŒãžã§ã³ã«å¿ããŠãããã³/ãŸãã¯ç¹å®ã®ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãªãå«ãããã«åœ¢æã§ããŸãã
æªæ¥ã«ç®ãåãã
æ¬çªç°å¢ã§Dockerã䜿çšãããšãã決å®ã¯ãéåžžã«å±éºãªã¹ãããã§ã¯ãããŸããã§ããã äžå¹Žåã¯ããããããã§ããããä»ã§ã¯å®å®ãã補åã§ãã ãããæ°è£œåã§ãããšããäºå®ã¯ãç§ãã¡ã®ç®ã«ã¯å©ç¹ã§ãã æå°éã®æ©èœã»ããããããåœç€Ÿã®ãããªå€§èŠæš¡ã§åçãªã¯ã©ãŠãç°å¢åãã«æ§ç¯ãããŠããŸãã
Dockerãå åŽããèŠãŠãèåŸã®äººã ãèªèããŸããããDockerããªããŠãDockerã¯èªç¶ãªéžæã§ãã å€ãã®ãã©ã¹ããããŸããããã€ãã¹ã¯ã»ãšãã©ãããŸããã
ãŸããã¢ããã€ã¹ã®æš©å©ã«ã€ããŠã¯ããããã«äœ¿çšã§ãããDockerfileãã¹ã¯ãªãããããã³å ¬éãããŠããç»åã䜿çšããããšããå§ãããŸãã æåã«åœ¹ç«ã€ãã®ããããããããŸãã å®éãããããDockerfilesãšã€ã¡ãŒãžãäžè¬å ¬éããŸããããã¯ã人ã ãç°¡åã«ããŒã«ã«ã§ã¯ãŒã«ãŒãå®è¡ã§ããããšãæå³ãããã«ãªã¯ãšã¹ããéä¿¡ããŠæ¹åããããšãã§ããŸãã
ã»ãšãã©ãã¹ãŠã®èšèªã§æ¯æ¥æ°äžæéã®CPUæéãšæ°çŸäžã®ã¿ã¹ã¯ãåŠçããã®ã¯ç°¡åã§ã¯ãããŸããã Dockerã䜿çšãããšãå°ãã®åŽåã§ããã€ãã®æ·±å»ãªåé¡ã解決ããããšãã§ããŸããã ããã«ãããIronWorkerã®é©æ°ãšæ°ããæ©äŒã®åµåºãå¯èœã«ãªããŸããã ããããåæ§ã«éèŠãªããšã¯ãããã«ãããç§ãã¡ãå€ãã®æ¹åãè¡ãããã«ãä¿èšŒããããµãŒãã¹æ¡ä»¶ãç¶æããããã«ã¯è¶ ããããšãã§ããããšã§ãã
Dockerã«ã¯çŽ æŽãããæªæ¥ããããŸããDockerããã¯ãããžãŒã¹ã¿ãã¯ã«å«ããããšã«æ±ºå®ããŸããã