Docker Sandboxesãã¯ãããã
ãã®ã¬ã€ãã§ã¯ãåããŠéé¢ããããµã³ãããã¯ã¹ã§Claude Codeãå®è¡ããæ¹æ³ã説æããŸãã
åææ¡ä»¶
éå§ããåã«ã以äžãæºåãããŠããããšã確èªããŠãã ããïŒ
- Docker Desktop 4.58 以é
- macOSããŸã㯠Windows
- Claude APIããŒïŒç°å¢å€æ°ããŸãã¯å¯Ÿè©±åœ¢åŒã§æäŸå¯èœïŒ
æåã®ãµã³ãããã¯ã¹ãå®è¡ãã
以äžã®æé ã§Claude Codeãå®è¡ããŸãïŒ
-
ïŒä»»æã§ããæšå¥šïŒAnthropic APIããŒãç°å¢å€æ°ãšããŠèšå®ããŸãã
ã·ã§ã«èšå®ãã¡ã€ã«ã«APIããŒã远å ããŸãïŒ
export ANTHROPIC_API_KEY=sk-ant-api03-xxxxxDocker Sandboxesã¯ãçŸåšã®ã·ã§ã«ã»ãã·ã§ã³ãšã¯ç¬ç«ããŠåäœããããŒã¢ã³ããã»ã¹ã䜿çšããŸãããã®ãããçŸåšã®ã»ãã·ã§ã³å ãã€ã³ã©ã€ã³ã§ç°å¢å€æ°ãèšå®ããŠãæ©èœããŸãããããŒã¢ã³ãã¢ã¯ã»ã¹ã§ããããã«ãã·ã§ã«èšå®ãã¡ã€ã«ã§ã°ããŒãã«ã«èšå®ããå¿ èŠããããŸãã
倿Žãé©çšããïŒ
-
ã·ã§ã«èšå®ã source ã³ãã³ããªã©ã§èªã¿èŸŒã¿ãŸãã
-
Docker Desktopãåèµ·åããŠãããŒã¢ã³ã«æ°ããç°å¢å€æ°ãèªèãããŸãã
ãããã¯ããã®æé ãã¹ãããããŠãClaude Codeã®èµ·åæã«å¯Ÿè©±åœ¢åŒã§èªèšŒããããšãå¯èœã§ããè³æ Œæ å ±ãèŠã€ãããªãå Žåã¯ãã°ã€ã³ãæ±ããããŸãããã ãã察話åèªèšŒã®å Žåã¯ã¯ãŒã¯ã¹ããŒã¹ããšã«åå¥ã«èªèšŒããå¿ èŠãããããšã«æ³šæããŠãã ããã
-
-
ã¯ãŒã¯ã¹ããŒã¹çšã«Claude Codeã®ãµã³ãããã¯ã¹ãäœæããŠå®è¡ããŸãïŒ
$ docker sandbox run claude ~/my-projectããã«ããmicroVMãµã³ãããã¯ã¹ãäœæãããŸããDockerã¯èªåçã«ååãå²ãåœãŠãŸãã
-
Claude Codeãèµ·åããäœæ¥ãéå§ã§ããŸããååå®è¡æã¯ãDockerãmicroVMãåæåããŠãã³ãã¬ãŒãã€ã¡ãŒãžããã«ãããããéåžžããæéãããããŸãã
äœãèµ·ããã®ãïŒ
docker sandbox run ãå®è¡ããéã以äžã®åŠçãè¡ãããŸããïŒ
-
Dockerããã©ã€ããŒãDockerããŒã¢ã³ãåãã軜éãªmicroVMãäœæãã
-
ã¯ãŒã¯ã¹ããŒã¹ã®ãã¹ã«åºã¥ããŠãµã³ãããã¯ã¹ã«ååãå²ãåœãŠããã
-
ã¯ãŒã¯ã¹ããŒã¹ãVMå ã«åæããã
-
Dockerããµã³ãããã¯ã¹VMå ã®ã³ã³ãããšããŠClaude CodeãšãŒãžã§ã³ããèµ·åãã
ãµã³ãããã¯ã¹ã¯åé€ãããŸã§ä¿æãããŸããã€ã³ã¹ããŒã«ãããããã±ãŒãžãèšå®ã¯ãã®ãŸãŸæ®ããŸããå床æ¥ç¶ããã«ã¯ãdocker sandbox run <sandbox-name> ãå®è¡ããŠãã ããã
ãšãŒãžã§ã³ãã¯ã¯ãŒã¯ã¹ããŒã¹å ã®ãã¡ã€ã«ã倿Žããå¯èœæ§ããããŸããã³ãŒãã®å®è¡ãã¹ã¯ãªããã®èªåå®è¡ã䌎ãã¢ã¯ã·ã§ã³ãè¡ãåã«ã倿Žå 容ã確èªããŠãã ããã詳现ã¯ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ãåç §ããŠãã ããã
åºæ¬ã³ãã³ã
ãµã³ãããã¯ã¹ã管çããããã®äž»èŠãªã³ãã³ãã¯ä»¥äžã®éãã§ãïŒ
ãµã³ãããã¯ã¹ã®äžèŠ§è¡šç€º
$ docker sandbox lsãã¹ãŠã®ãµã³ãããã¯ã¹ã®IDãååãã¹ããŒã¿ã¹ãäœææéã衚瀺ãããŸãã
ãµã³ãããã¯ã¹ã¯ã³ã³ããã§ã¯ãªãmicroVMã§ãããããdocker ps ã«ã¯è¡šç€ºãããŸããã確èªããã«ã¯ docker sandbox ls ã䜿çšããŠãã ããã
å®è¡äžã®ãµã³ãããã¯ã¹ãžã®ã¢ã¯ã»ã¹
$ docker sandbox exec -it <sandbox-name> bashãµã³ãããã¯ã¹å
ã®ã³ã³ããã§ã³ãã³ããå®è¡ããŸãããããã°ã远å ããŒã«ã®ã€ã³ã¹ããŒã«ã®ããã«ã€ã³ã¿ã©ã¯ãã£ããªã·ã§ã«ãéãã«ã¯ã-it ã䜿çšããŸãã
ãµã³ãããã¯ã¹ã®åé€
$ docker sandbox rm <sandbox-name>ãµã³ãããã¯ã¹VMãšããã®äžã«ã€ã³ã¹ããŒã«ããããã¹ãŠã®ããã±ãŒãžãåé€ããŸããè€æ°ã®ååãæå®ããããšã§ãäžåºŠã«è€æ°ã®ãµã³ãããã¯ã¹ãåé€ã§ããŸãã
$ docker sandbox rm <sandbox-1> <sandbox-2>ãµã³ãããã¯ã¹ã®åäœæ
ã¯ãªãŒã³ãªç°å¢ã§ããçŽãã«ã¯ããµã³ãããã¯ã¹ãåé€ããŠããåäœæããŸãïŒ
$ docker sandbox rm <sandbox-name>
$ docker sandbox run claude ~/projectã«ã¹ã¿ã ãã³ãã¬ãŒããã¯ãŒã¯ã¹ããŒã¹ãã¹ãªã©ã®èšå®ã¯ããµã³ãããã¯ã¹äœææã«ã»ãããããŸãããããã®èšå®ã倿Žãããå Žåã¯ãäžåºŠåé€ããŠåäœæããŠãã ããã
ã³ãã³ããšãªãã·ã§ã³ã®å®å šãªãªã¹ãã«ã€ããŠã¯ãCLIãªãã¡ã¬ã³ã¹Â ãåç §ããŠãã ããã
次ã®ã¹ããã
ãµã³ãããã¯ã¹ã§Claudeãåãããããã«ãªã£ããã以äžã®ãããã¯ã«ã€ããŠè©³ããåŠã³ãŸãããïŒ