å é±ãç§ãã¡ã¯åžå Žã§æã匷åãªãšãŒãžã§ã³ãåé¢ãå®çŸãããšãã倧èãªç®æšã®ããšãDocker Sandboxãç«ã¡äžããŸããã
ãã®èšäºã§ã¯ããã®äž»åŒµãmicroVMãã©ã®ããã«ãããå¯èœã«ããã®ãããããŠãã®ã¢ãããŒãã§ç§ãã¡ãäžããã¢ãŒããã¯ãã£äžã®éžæã«ã€ããŠè§£èª¬ããŸãã
ä»ã®ãã¹ãŠã®ã¢ãããŒãã®åé¡ç¹
ãã¹ãŠã®ãµã³ãããã¯ã¹ã¢ãã«ã¯äœãã諊ããããã«æ±ããŸããç§ãã¡ã¯äžäœ4ã€ã®ã¢ãããŒããæ€èšããŸããã
ãã«VM㯠匷åãªéé¢ãæäŸããŸãããæ±çšVMã¯äžæçã§ã»ãã·ã§ã³éèŠã®ãšãŒãžã§ã³ãã¯ãŒã¯ãããŒåãã«èšèšãããŠããŸãããç¹å®ã®ã¯ãŒã¯ããŒãåãã«äœãããVMã®äžã«ã¯ãçŸä»£ã®ããŒããŠã§ã¢ã§ãã广çã«èµ·åã§ãããã®ããããŸãããæ±çšVMã®äœéš(ã³ãŒã«ãã¹ã¿ãŒãã®é ãããªãœãŒã¹ã®ãªãŒããŒããã)ã¯ãéçºè ãã¢ã€ãœã¬ãŒã·ã§ã³ãå®å šã«é¿ããæ¹åã«æŒãä»ããŸãã
ã³ã³ãã㯠é«éã§ãçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããæ¹æ³ã§ããããããèªåŸçãªãšãŒãžã§ã³ããèªåŸçã«Dockerã³ã³ãããæ§ç¯ãå®è¡ããå¿ èŠãããå Žå(ããã¯ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããæ¥åžžçã«è¡ã)ãDocker-in-Dockerã«åœããããšã«ãªããããããèšå®ããé颿§ãæãªãææ Œæš©éãå¿ èŠã«ãªããŸãããšãŒãžã§ã³ãã¯éçºäœæ¥ãè¡ãããã«æ¬ç©ã®Dockerç°å¢ãå¿ èŠã§ãã³ã³ããã ãã§ã¯ãããååã«æäŸã§ããŸããã
WASM / V8 å颿 ª ã¯ã¹ãã³ã¢ãããéãã§ãããåé¢ã¢ãã«ã¯æ ¹æ¬çã«ç°ãªããŸããOSã§ã¯ãªãã¢ã€ãœã¬ãŒããå®è¡ããŠããŸããã¢ã€ãœã¬ãŒãããŒã¹ã®ãµã³ãããã¯ã¹ã®æäŸè ã§ãããV8 ã®åŒ·åãé£ãããV8 ãšã³ãžã³ã®ã»ãã¥ãªãã£ãã°ãæçãããã€ããŒãã€ã¶ãŒãããé »ç¹ã«çºçããŠããããšãèªããŠããŸããã»ãã¥ãªãã£ã¢ãã«ä»¥å€ã«ãå®çšçãªã®ã£ããããããŸãããšãŒãžã§ã³ãã¯ã·ã¹ãã ããã±ãŒãžãã€ã³ã¹ããŒã«ããããä»»æã®ã·ã§ã«ã³ãã³ããå®è¡ãããã§ããŸãããå®éã®éçºç°å¢ãå¿ èŠãªã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã«ãšã£ãŠãWASMã¯ããã§ã¯ãããŸããã
ãµã³ãããã¯ã¹ã䜿ããªã ã®ã¯æããã«éãã§ããããã¯ãŸããªã¹ã¯ã§ããããŸãã1ã€ã¯rm -rfããã1ã€ã¯ãªãŒã¯ããã.envãäžåºŠã®äžæ£ãªãããã¯ãŒã¯é話ã§ãççºç¯å²ã¯ãã·ã³å šäœã«åã³ãŸãã
ãªãMicroVMã䜿ãã®ã
Dockerãµã³ãããã¯ã¹ã¯ãåãšãŒãžã§ã³ãã»ãã·ã§ã³ãå°çšã®microVMå ã§å®è¡ããVMå¢çã§éé¢ããããã©ã€ããŒãDockerããŒã¢ã³ãæã¡ããã¹ããžã®æ»ãçµè·¯ã¯ãããŸããã
ãã®äžæã«ã¯ãè§£ãã»ãã䟡å€ã®ãã3ã€ã®å»ºç¯ç決å®ãå«ãŸããŠããŸãã
å°çšã®microVMã§ããåãµã³ãããã¯ã¹ã«ã¯ç¬èªã®ã«ãŒãã«ãå²ãåœãŠãããŸããããã¯ããŒããŠã§ã¢å¢çéé¢ã§ããã«VMã§åŸãããã®ãšåãçš®é¡ã®ãã®ã§ãã䟵害ããããéèµ°ãããšãŒãžã§ã³ãã¯ããã¹ããä»ã®ãµã³ãããã¯ã¹ããããã¯ãã®ç°å¢ã®å€ã«å°éã§ããŸãããéããããšãããšå£ã«ã¶ã€ãããŸãã
ãã©ã€ããŒãã§VMéé¢ãããDockerããŒã¢ã³ããããã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã®éèŠãªå·®å¥åãã€ã³ãã§ããAIã¯ã³ã³ããã®äœæ¥éãæžããã©ããããããå€ãã®ãã®ã«ããã§ããããã³ã³ããã¯ã¢ããªã±ãŒã·ã§ã³éçºã®ææ®µã§ããããšãŒãžã§ã³ãã¯ãã®éçºãè¡ãããã«Dockerç°å¢ãå¿ èŠã§ããDockerãµã³ãããã¯ã¹ã¯ãåãšãŒãžã§ã³ãã«VMå¢çã«ãã£ãŠå®å šã«éé¢ãããmicroVMå ã§åäœããç¬èªã®DockerããŒã¢ã³ãæäŸããŸãããšãŒãžã§ã³ãã¯ããœã±ããããŠã³ãããã¹ãã¬ãã«ã®æš©éãä»ã®æ¹æ³ãèŠæ±ããã»ãã¥ãªãã£ãªã¹ã¯ãªãã§ãå®å šãª dockerãã«ãã dockerå®è¡ã docker compose ã®ãµããŒããåããããŸããã€ãŸãããšãŒãžã§ã³ãã人éã®éçºè ãšããŠæ±ããSDLCå šäœã§å®éã«ã¿ã¹ã¯ãå®äºã§ããçã®éçºè ç°å¢ãæäŸããŸãã
ãã¹ãã«æ»ãéããããŸããããã¡ã€ã«ã¢ã¯ã»ã¹ããããã¯ãŒã¯ããªã·ãŒãã·ãŒã¯ã¬ããã¯ãšãŒãžã§ã³ãèªèº«ã匷å¶ãã ãã® ã§ã¯ãªãããšãŒãžã§ã³ããå®è¡ããåã«å®çŸ©ãããŸããããã¯éèŠãªéãã§ããèªãã»ãã¥ãªãã£å¢çãæ±ºããLLMã¯ã»ãã¥ãªãã£ã¢ãã«ã§ã¯ãããŸãããããŠã³ãã£ã³ã°ããã¯ã¹ã¯ã·ã¹ãã ããã³ããã§ã¯ãªããã€ã³ãã©ããæ¥ãªããã°ãªããŸããã
ãªãæ°ããVMMãäœã£ãã®ã
microVMãéžã¶ã®ã¯ç°¡åãªéšåã§ãããå®éã«éçºè ãåããŠããå Žæã§éå¶ããã®ãäžçªé£ããã£ãã§ãã
æ¢åã®éžæè¢ãçå£ã«èª¿ã¹ãŸããããã©ããç§ãã¡ã®ããŒãºã«åã£ããã®ã§ã¯ãããŸããã§ãããFirecrackerã¯æãããç¥ãããmicroVMã©ã³ã¿ã€ã ã§ãç¹ã«AWS Lambdaã®ãããªLinux/KVMç°å¢åãã®ã¯ã©ãŠãã€ã³ãã©åãã«èšèšãããŸãããmacOSãWindowsã«ã¯ãã€ãã£ããµããŒããå šããããŸããããµãŒããŒåŽã®ã¯ãŒã¯ããŒãã«ã¯åé¡ãããŸããããã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã¯ã¯ã©ãŠãäžã§åäœããŸããããããã¯macOSãWindowsãLinuxã®åéçºè åãããŒãããœã³ã³ã§åäœããŸããÂ
æ¢åã®VMMããã©ãããã©ãŒã éã§åäœãããmacOSã§ç¿»èš³ã¬ã€ã€ãŒãäœæããWindowsã§åé¿çãäœãããšãã§ããŸããããLinuxãã¡ãŒã¹ãã®VMMã«ã¯ãã¹ãã©ãããã©ãŒã ãµããŒããçµã¿èŸŒãã«ã¯ãèšèšãããŠããªãã£ãæœè±¡åãšæŠãããšã«ãªããŸãããããããšãå£ããããå€å±€çãªåé¿çãçãŸããããã åãããšããçŽæãç Žããéçºè ããµã³ãããã¯ã¹ãå®å šã«ã¹ãããããæ©æŠãçã¿åºããŠããŸããŸãã
ããã§ãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããå®éã«åäœããå Žæåãã«èšèšãããæ°ããVMMãäœããŸããã
3ã€ã®ãã©ãããã©ãŒã ãã¹ãŠã§ãã€ãã£ãã«åäœããããããã®OSã®ãã€ãã£ããã€ããŒãã€ã¶ãŒ(Appleã®Hypervisor.framework)ã䜿çšããŠããŸããWindows Hypervisorãã©ãããã©ãŒã ãšLinux KVMã§ãã3ã€ã®ãã©ãããã©ãŒã ã«å¯Ÿå¿ããåäžã®ã³ãŒãããŒã¹ã§ã翻蚳局ã¯ãŒãã§ãã
ããã¯ããšãŒãžã§ã³ããåOSããšã«ã«ãŒãã«ã¬ãã«ã®éé¢ãæé©åã§ããããšãæå³ããŸããã³ãŒã«ãã¹ã¿ãŒãã¯æœè±¡åçšããªãããéãã§ããMacBookã®éçºè ã¯ãLinuxã¯ãŒã¯ã¹ããŒã·ã§ã³ãWindowsãã·ã³ã®éçºè ãšåãéé¢ä¿èšŒãšèµ·åæ§èœãåŸãããŸãã
VMMãäžããäœãã®ã¯ç°¡åãªããšã§ã¯ãããŸãããããããéçºè ã«é ãã¹ã¿ãŒããäºææ§ã®äœäžããã©ãããã©ãŒã åºæã®æ³šæäºé ãåãå ¥ãããããšããä»£æ¿æ¡ã¯ããŸãã«ãã¹ãäžã§ãšãŒãžã§ã³ããåããåå ãšãªãã¢ã¹ã¿ãªã¹ã¯ã§ããç§ãã¡ã®ã¢ãããŒãã§ã¯ããã€ããŒãã€ã¶ãŒã¬ãã«ã§ãã®ã¢ã¹ã¿ãªã¹ã¯ãåãé€ããŸãã
ãã¡ã¹ãã»ã³ãŒã«ãã»ã¹ã¿ãŒã
ä»®æ³åã¬ã€ã€ãŒãäžããåæ§ç¯ããé«éã¹ãã³ã¢ãããšè¿ éãªåè§£ãæé©åããŸãããå·ããç¶æ ã¯æ©ãã§ããããã¯äžã€ã®çç±ã§éèŠã§ãããµã³ãããã¯ã¹ãé ããšéçºè ã¯ã¹ãããããŸããããšãŒãžã§ã³ãéå§ããšããšãŒãžã§ã³ããå®è¡äžãã®éã®ãã¹ãŠã®æ©æŠç¹ã¯ããã¹ãäžã§å®è¡ããçç±ãšãªããŸããã»ãŒç¬æã®ã¹ã¿ãŒããªã®ã§ããã®å€ã§èµ°ãããã©ãŒãã³ã¹äžã®çç±ã¯ãããŸããã
ãããå®éã«æå³ããããš
ãã®ã¢ãŒããã¯ãã£ãæäŸããå ·äœçãªããŒãžã§ã³ã¯ä»¥äžã®éãã§ã:
å®å šãªéçºç°å¢ããšãŒãžã§ã³ãã¯ãªããžããªã®ã¯ããŒã³ãäŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ããã¹ãã¹ã€ãŒãã®å®è¡ãDockerã€ã¡ãŒãžã®æ§ç¯ããã«ãã³ã³ãããµãŒãã¹ã®ç«ã¡äžãããã«ãªã¯ãšã¹ãã®éæŸãªã©ããã¹ãŠãµã³ãããã¯ã¹å ã§è¡ããŸããã¹ã¿ãã«ãã·ãã¥ã¬ãŒããããŠããŸããããšãŒãžã§ã³ãã¯éçºè ãšããŠæ±ãããã¿ã¹ã¯ããšã³ãããŒãšã³ãã§å®äºããããã«å¿ èŠãªæ å ±ãäžããããŸããÂ
ã¹ã³ãŒãä»ãã¢ã¯ã»ã¹ã§ãã£ãŠãå šãç¡ãã§ã¯ãããŸãããå¢çãå®çŸ©ããŸãããšãŒãžã§ã³ããã©ã®ãã¡ã€ã«ããã£ã¬ã¯ããªãèŠãããããã©ã®ãããã¯ãŒã¯ãšã³ããã€ã³ãã«å°éã§ããããã©ã®ã·ãŒã¯ã¬ãããåãåãããæ£ç¢ºã«æ±ºããŸããèªèšŒæ å ±ã¯å®è¡æã«æ³šå ¥ãããMicroVMã®ç¯å²å€ã«æ³šå ¥ãããç°å¢ã«çµã¿èŸŒãŸããããšã¯ãããŸããã
äœ¿ãæšãŠã®èšèšã§ãããšãŒãžã§ã³ããéãå€ãããããµã³ãããã¯ã¹ãåé€ããŠæ°ç§ã§ããçŽããŸãããããã¹ãã«ã¯ãªãŒã³ã¢ãããã¹ãç¶æ ãããŒã«ããã¯ãããã®ã¯ãããŸããã
äž»èŠãªãšãŒãžã§ã³ãã¯ãã¹ãŠå¯Ÿå¿ããŠããŸããClaude CodeãCodexãOpenCodeãGitHub CopilotãGemini CLIãKiroãDocker AgentããããŠOpenClawãNanoClawã®ãããªæ¬¡äžä»£èªåŸåã·ã¹ãã ãªã©ãå«ãŸããŸããåãã¢ã€ãœã¬ãŒã·ã§ã³ãåãé床ããã¹ãŠã®ãµãŒããŒã§åããµã³ãããã¯ã¹ã¢ãã«ã䜿ããŸãã
ããŒã çš
åã ã®éçºè ã¯ã仿¥ãDocker Sandboxãã¹ã¿ã³ãã¢ãã³ã§ã€ã³ã¹ããŒã«ã»å®è¡ã§ããDocker Desktopã©ã€ã»ã³ã¹ã¯äžèŠã§ããÂ
çµç¹å šäœã§å³æ Œã«é©çšã§ããéäžåã®ãã¡ã€ã«ã·ã¹ãã ããã³ãããã¯ãŒã¯ããªã·ãŒãæã¿ããµã³ãããã¯ã¹åå®è¡ãæ¡å€§ãããããŒã ã«ã¯ããšã³ã¿ãŒãã©ã€ãºå±éã«ã€ããŠãçžè« ãã ãã ã
ããã§ãªããã¬ãŒããªã
ãµã³ãããã¯ã¹ã®å£²ãã«ã¯ãã€ãã¢ã¹ã¿ãªã¹ã¯ãä»ããŠããŸããã確ãã« å®å šã§ããããã®ä»£åãšããŠé床ãäºææ§ããããã¯ã¯ãŒã¯ãããŒã®æ©æŠã§ä»£åãåŸãŸãã
MicroVMã¯ãã®ã¢ã¹ã¿ãªã¹ã¯ãæé€ããŸããã³ãŒã«ãã¹ã¿ãŒãã§VMã°ã¬ãŒãã®éé¢ãååã«æ©ãå®çŸã§ããã®ã§ãã¹ãããããçç±ããªãããµã³ãããã¯ã¹å ã§ã®å®å šãªDockerãµããŒããå¯èœã§ãããã¬ãŒããªãã¯ãããŸããã
ãšãŒãžã§ã³ãã¯èªåŸçã«åãã¹ãã§ããã¬ãŒãã¬ãŒã«ãªãã§èµ°ãã®ã¯ãããã¹ãã§ãã
ãµã³ãããã¯ã¹ãç§åäœã§æŽ»çš
Sandboxã¯åäžã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ããŸãã
macOS
Brew ã€ã³ã¹ããŒã« docker/tap/sbx  Â
Windows
winget install Docker.sbx Â
詳ããç¥ãããæ¹ã¯ããã¥ã¡ã³ããèª ãã§ ãã ããã