ã²ã¹ãèè ã® Ben Hall ã¯ã gov.uk (è±åœã®å ¬çæ©é¢ã®æ å ± Web ãµã€ã) ã§ C# .NET ã®äž»ä»»æè¡éçºè ã§ããã.NET Foundation ã®ã¡ã³ããŒã§ããããŸãã 圌ã¯åŠæ ¡ã®æåž«ãšããŠ9幎éåããããã°ã©ãã³ã°ãšã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ãã«ããŒããŸããã Ben ã¯ãå¿ããéçºè ãè€éãªãããã¯ãã¢ã¯ã»ã¹ããããå®çšçãªãã®ã«ããããšã楜ããã§ããŸãã
Dockerãã¹ã¯ããããšDIYãœãªã¥ãŒã·ã§ã³ã®ã©ã¡ããéžæããã
Docker ãšã¯ã¹ããªãšã³ã¹ã®äžå¿ã«ããã®ã¯ Docker Engine ã§ãã ã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®Docker Desktopã®ããã«äœ¿çšã§ãããœãªã¥ãŒã·ã§ã³ã«ã¯ãDocker Engineãšãããã«éçºãéå§ããããã«å¿ èŠãªä»ã®ãã¹ãŠã®ããŒã«ãšã»ããã¢ãããå«ãŸããŠããŸãã
éçºè ã¯ãDocker Engine ã«é¢ãã "DIY" Docker å®è£ ãæåã§äœæã§ããŸãã äžéšã®çµç¹ã§ã¯ãèªåã§è¡ãæè»æ§ãšå¶åŸ¡ã奜ãå ŽåããããŸãã ããããDIY Dockerãšã³ãžã³ãœãªã¥ãŒã·ã§ã³ãéžæããã«ã¯ãã¯ããã«å€ãã®ãšã³ãžãã¢ãªã³ã°ãéçºãããã³ã»ããã¢ãããå¿ èŠã§ãã Dockerãšãã®Windowsã³ã³ãããªã³ã§ããWSLã¯æ¯èŒçè€éã§ãããããDIYã¢ãããŒãã¯ãã¹ãŠã®äººã«é©ããŠããããã§ã¯ãããŸããã
ãã®èšäºã§ã¯ãããªããšããªãã®çµç¹ã«é©ããã¢ãããŒããæ±ºå®ããã®ã«åœ¹ç«ã¡ãŸãã 説æã®ããã«ãDocker DesktopãæäŸãããã®ãšWindowsã§ã®DIY Dockerã»ããã¢ãããæ¯èŒããŸãã
ãŠã£ã³ããŠãºã§ã®ããã«ãŒã®ã»ããã¢ãã
failingfast.io ã«é¢ãããã®èšäºã§ã¯ ãWSL 2 ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®äœæãDocker ãªããžããªã®ã»ããã¢ãããWSL 2 ãã£ã¹ããªãã¥ãŒã·ã§ã³ãžã® Docker ãšã³ãžã³ã®è¿œå ã»ããã¢ããã®ã€ã³ã¹ããŒã«ãªã©ãWindows ã§ã®æåã€ã³ã¹ããŒã«ã®äž»ãªæé ã«ã€ããŠèª¬æããŸãããã®ããã»ã¹ã¯å°ãå£ããããã®ã§ãèµ·åããŠå®è¡ããåã«ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®æºåãããŠãã ããã ãããŠããã㯠å§ããããã®ã¬ã€ãã«ãããŸããã ã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ã次ã®ãããªè¿œå ã®èšå®ãå¿ èŠã§ãã
- èµ·åæã«èµ·åããããã« Docker ãæ§æãã
- äŒæ¡
- ãªã¢ãŒããã¹ãããã® Docker ããŒã¢ã³ãžã®æ¥ç¶ã®åãå ¥ã
- ãªã¢ãŒã ã¢ã¯ã»ã¹ã®æ§æ
- IP 転éã®åé¡ã®è§£æ±º
Dockerãã¹ã¯ãããã®ã»ããã¢ããã¯ãéåžžã«ç°ãªããšã¯ã¹ããªãšã³ã¹ã§ãã ææ°ã®Dockerãã¹ã¯ãããã€ã³ã¹ããŒã©ãŒ ãããŠã³ããŒãã㊠å®è¡ããã ãã§ããã¹ãŠã®äœæ¥ãèªåçã«å®äºããŸãã æ°åã§çšŒåããã³ã³ããããããã€ããæºåãæŽããŸããã
æå 端ã§å®å®
Docker Desktop ãšãªã³ã¯ãã DIY å®è£ ã¯ãéçºè ã Windows ç°å¢ãçŽæ¥ Windows äžã§å®è¡ã§ããããã«ãã Windows Subsystem for Linux (WSL) 2 äžã®å ±éã®åºç€ãå ±æããŠããŸãã
WSL 2 ã§ã¯ãã¡ã¢ãªäœ¿çšéãã³ãŒãå®è¡ãäºææ§ãå€§å¹ ã«åäžããŸããã ããã¯ããšãã¥ã¬ãŒã·ã§ã³ãªãã§ãã€ãã£ãã«å®è¡ãããLinuxã³ã³ããããµããŒãããå®å šãªLinuxã«ãŒãã«ãžã®ã¢ãŒããã¯ãã£ã®ç§»è¡ã«ãã£ãŠå®çŸãããŸããã
Microsoftããã³Windows Insiderãšç·å¯ã«é£æºããŠãDockerã¯ãã®æçãªæ°ãããã¯ãããžãŒãDocker Desktopã®äž»èŠãªããã¯ãšã³ããšããŠããã«æ¡çšããŸããã ãã®åŸãDocker ã¯ãWSL 2 ã Windows ã§äžè¬å ¬éããããã£ãšåã«ãã¯ãã«ã« ãã¬ãã¥ãŒããªãªãŒã¹ããŸããã ãŸããHyper-V ã䜿çšããŠãã以åã®ããŒãžã§ã³ãšåçã®æ©èœãç¶æããããã«ãããããåªåãæãããŸããã
Docker Desktopãéçºè ããŒã«ã«è¿œå ããŠãæ £ã芪ããã ãšã¯ã¹ããªãšã³ã¹ã®é倧ãªå€æŽãåé¿ããªãããææ°ã®ãã¯ãããžãŒãåŒãç¶ããµããŒãããããšã確信ã§ããŸãã
ãœãããŠã§ã¢ã®æŽæ°
Dockerãã¹ã¯ãããã¯ãã»ããã¢ããããå°æ¥ã®ã«ãŒãã«ããããŸã§ããã¹ãŠã管çããŸãã ãŸããããã¯å®å šãª ãã³ãã«ã§ãããããèªåãœãããŠã§ã¢ã¢ããããŒãã«ãããDockerãšã³ãžã³èªäœãå«ããã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ããŒã«ãææ°ãã€å®å šã«ä¿ãããŸããããã«ããã瀟å ã§ç®¡çãããã·ã³ã€ã¡ãŒãžã1ã€å°ãªããªããŸãã

DIY Dockerã®ã»ããã¢ããã§ã¯ããã¹ãŠã®ã»ãã¥ãªãã£ãããããã®ä»ã®æŽæ°ã«è¿œãã€ãã®ã¯ããªã次第ã§ãã DIYãœãªã¥ãŒã·ã§ã³ã¯ã解決ããå¿ èŠã®ããé²è¡äžã®åé¡ãããããæäŸããŸãã ãã®ãããDocker Desktop ã® ROI ãèšç®ãããšãã¯ãå€§èŠæš¡ãªçµç¹å šäœã§ãããã®éçºè ã®æéãæããããã«ããŠãã ããã
ãããã¯ãŒãã³ã°
Docker ãã¹ã¯ãããã¯ãã³ã³ãããŒããã«ãããšãã«äœ¿çšããæ§ææžã¿ã® HTTP/HTTPS ãããã·èšå®ã Docker ã«èªåçã«äŒéããŸãã
ãŸããVPNã«æ¥ç¶ããŠãæ£ããæ©èœããŸãã ããã¯ãã³ã³ãããŒããã®ãã©ãã£ãã¯ãã€ã³ã¿ãŒã»ããããDocker ã¢ããªã±ãŒã·ã§ã³èªäœããçºçãããã®ããã« Windows ã«æ¿å ¥ããããšã§å®çŸãããŸãã
äžæåæ¢ãšåé
ãã®æ©èœã¯ãDocker ãã¹ã¯ãããã® ãããªã㯠ããŒãããã ã®ãŠãŒã¶ãŒããèŠæ±ãããŸããã ããã¯ãããŸã§ã§æå€§ã®æ©èœã§ã¯ãããŸããããDockerãã¹ã¯ããããæŽ»çºã«éçºãããŠããããšãæãåºããããã1ã€ã®åªããæ©èœã§ãã ãŠãŒã¶ãŒããã®ãã£ãŒãããã¯ã«å¿ããŠç¶ç¶çã«æ¹åãããæ¯æã®ãªãªãŒã¹ã§å®è£ ãããŠããŸãã
ãŠãŒã¶ãŒã¯ Docker ãã¹ã¯ããã ã»ãã·ã§ã³ãäžæåæ¢ããŠãCPU 䜿çšçãæžãããããããªãŒå¯¿åœãç¯çŽã§ããããã«ãªããŸããã äžæåæ¢ãããšããã¹ãŠã®ã³ã³ãããŒã®çŸåšã®ç¶æ ãã¡ã¢ãªã«ä¿åããããã¹ãŠã®ããã»ã¹ãããªãŒãºãããŸãã
Volume Management
ããªã¥ãŒã ã¯ãã³ã³ãããŒéã§å ±æããããã¡ã€ã«ãªã©ãDocker ã³ã³ãããŒãåŠçããããŒã¿ãæ°žç¶åããããã®æšæºçãªã¢ãããŒãã§ãã ãã¹ããã·ã³ãã¡ã€ã«ãçŽæ¥æäœãã ãã€ã³ãããŠã³ããšã¯ç°ãªããããªã¥ãŒã ã¯Dockerã«ãã£ãŠç®¡çããããããããã€ãã® å©ç¹ããããŸãã
Docker CLI ã§ Docker ããªã¥ãŒã ãæåã§æäœããå Žåãæ¬¡ã® 2 ã€ã®å€§ããªèª²é¡ã«çŽé¢ããŸãã
- åããªã¥ãŒã ãã©ã®ã³ã³ãããŒã«å±ããŠããããèå¥ããã®ã¯é£ããå Žåããããããå€ãããªã¥ãŒã ã®ã¯ãªã¢ã¯æéããããå¯èœæ§ããããŸãã
- ããªã¥ãŒã ã®å å€ãžã®ã³ã³ãã³ãã®è»¢éã¯ãå®éãããè€éã§ãã
Docker Desktop ã¯ãããªã¥ãŒã ãæ¢çŽ¢ããããã®ãã¥ãŒãããã·ã¥ããŒãã«æäŸããããšã§ããã®ããã®ãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã ãã®ãã¥ãŒã§ã¯ã次ã®ããšãã§ããŸãã
- 䜿çšãããŠããããªã¥ãŒã ãç°¡åã«ç¹å®Â
- ããªã¥ãŒã ã䜿çšããŠããã³ã³ãããŒã確èªãã
- ããªã¥ãŒã ã®äœæãšåé€
- ããªã¥ãŒã å ã®ãã¡ã€ã«ãšãã©ã«ã㌠(ãã¡ã€ã« ãµã€ãºãå«ã) ã®æ¢çŽ¢
- ããªã¥ãŒã ããã®ãã¡ã€ã«ã®ããŠã³ããŒã
- ååãæ¥ä»ããµã€ãºã§æ€çŽ¢ããã³äžŠã¹æ¿ã

Kubernetes Integration
1ã€ã®èšäºã§èª¿ã¹ãã«ã¯æ©èœãå€ãããŸãããDockerãã¹ã¯ãããã§ã®Kubernetesã®çµ±åã確èªããå¿ èŠããããŸãã
Kubernetesã¯ã³ã³ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®æšæºã«ãªãã 2020幎ã®CNCFèª¿æ» ã®åçè ã®83%ãæ¬çªç°å¢ã§äœ¿çšããŠãããšå ±åããŠããŸãã
確ãã«ããã¹ãã·ã¹ãã ããã®åé¢ãªã©ãããŒã«ã«éçºã§Dockerã®ã¡ãªããã享åããããã«Kubernetesã¯å¿ èŠãããŸããã ããã«ãDocker Compose 2.0ã䜿çšããŠãããã€ãã®æ°ã®å©ãããããã¯ãŒã¯æ©èœãåããè€æ°ã®ã³ã³ãããå®è¡ããããšãã§ããŸãã ãã ããéçšç°å¢ã® Kubernetes ã«ãããã€ãããããžã§ã¯ãã«åãçµãã§ããå Žåã¯ãåæ§ã®ç°å¢ãããŒã«ã«ã§äœ¿çšããã®ãè³¢æãªéžæã§ãã
以åã¯ãããŒã«ã«ã® Kubernetes ã€ã³ã¹ã¿ã³ã¹ã¯å¥ã®èšå®ã§ãããéçºè ã®æéã®ã³ã¹ãã¯äžéšã®ãŠãŒã¶ãŒã«ååãªã¡ãªãããæäŸããŠããŸããã§ããã ããã¯ãDIY Dockerãœãªã¥ãŒã·ã§ã³ã«ãåœãŠã¯ãŸãå¯èœæ§ããããŸãã
å¯Ÿç §çã«ãDocker Desktop ã«ã¯ãããŒã«ã«ãã¹ãçšã®ã¹ã¿ã³ãã¢ãã³ã® Kubernetes ãµãŒããŒãšã¯ã©ã€ã¢ã³ããä»å±ããŠããŸãã ããã¯ãåçŽã§æ§æäžèŠã®åäžããŒã ã¯ã©ã¹ã¿ãŒã§ãã äžã®ç»åã«ç€ºãããã«ãUIãä»ããŠããŸãã¯kubectlæ§æã®äœ¿çšã³ã³ããã¹ãã䜿çšããŠéåžžã®æ¹æ³ã§åãæ¿ããããšãã§ããŸãã

ãã€ãã£ãã¢ããã«ã·ãªã³ã³ãµããŒã
2021å¹Žãææ°ã®M1ããããå®å šã« 掻çšã§ããããŒãžã§ã³ã®Dockerãã¹ã¯ãããçšMacãäžè¬å ¬éãããŸãããDocker Hub ã«ã¯æ¢ã« 145,000 ãè¶ ãã ARM ããŒã¹ã®ã€ã¡ãŒãžããããŸãããã® Apple ã·ãªã³ã³ ããŒãžã§ã³ã¯ãã«ããã©ãããã©ãŒã ã€ã¡ãŒãžããµããŒãããŠãããããè€éãªã¯ãã¹ã³ã³ãã€ã«ç°å¢ãªãã§ x86 ããã³ ARM ã¢ãŒããã¯ãã£çšã®ã€ã¡ãŒãžããã«ãããŠå®è¡ã§ããŸãã
å€ãã®äžè¬çãªã¢ããªã±ãŒã·ã§ã³ã«èš±å®¹ã§ããæ©èœãæäŸããRosetta 2ãæäŸãããšãã¥ã¬ãŒã·ã§ã³ã¯ãã³ã³ãããå®è¡ããã®ã«ååã§ã¯ãªããããããã¯éåžžã«å¥œè©ã§ããã
ã³ã¹ããšã¹ã±ãŒã©ããªãã£
DIYã®ä»£æ¿ææ®µã§ã¯ãã³ã³ããç°å¢ã®æŽæ°ããããé©çšããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ããã®ç¶ç¶çãªã¡ã³ããã³ã¹ã³ãããã¡ã³ããšãšãã«ãæ§ç¯ãšæ§æã«å€å€§ãªãšã³ãžãã¢ãªã³ã°æéãå¿ èŠã§ãã çµç¹å ã®åéçºè ã¯ãæ°ããç°å¢ã§äœæ¥ãããã³ã«ããã®äœæ¥ã®ã»ãšãã©ãåå¥ã«å®è¡ããŸããÂ
ãã®ã¢ãããŒãã¯ããŸãæ¡åŒµã§ããŸãã! ããã¯ãéçºè ãæ°æ©èœãªã©ãããžãã¹ã«çŽæ¥å©çãããããæŽ»åã«æéãè²»ããããšããªãããšãæå³ããŸãã éçºç°å¢ã®åé¡ãèšå®äœæ¥ã®ããã«æ©èœãæäŸããªãã£ãããšã説æããªããã°ãªããªãã¹ããªã³ãã¬ãã¥ãŒã楜ããã§ãã人ã¯èª°ãããŸããã
ã³ã³ããåã¯ã補åã®é éã容æã«ããã®ã«åœ¹ç«ã€ã¯ãã§ãã Docker DesktopãéæããããšããŠããããšã¯æ°ãããã®ã§ã¯ãããŸããã ç§ãã¡ã¯åžžã«ãçç£æ§ãåäžãããããã«ãåäžã®ãŠãŒã¶ãŒãã¬ã³ããªãŒãªããã±ãŒãžã«æ©èœããã³ãã«ããIDEããã®ä»ã®ããŒã«ã®ããã°ã©ãã³ã°ã«æè³ããŠããŸããã
ã³ã¹ãã®èгç¹ãã Docker Desktop ãçµç¹ã«é©ããŠãããã©ããã倿ããã®ã«åœ¹ç«ã€ããã«ãJeremy Castile 㯠ROI ã®è©äŸ¡ã«åœ¹ç«ã€ã¬ã€ãã³ã¹ãããã€ãçšæããŠããŸãã
è€æ°ã®ç°å¢ã§ã®äœæ¥
éçºè ã¯ããã«ãã¢ãŒãã£ãã¡ã¯ãã¯äžå€ã§ãªããã°ãªããªãããšãåºãåãå ¥ããŠããŸã â ãã«ããããåãã¢ããªã±ãŒã·ã§ã³ã¯ãQAãä»ããŠæ¬çªç°å¢ã«ç§»è¡ããå¿ èŠããããŸãã æ¬¡ã®ã¬ãã«ã¯ãå¿ èŠã«å¿ããŠãã¢ããªã±ãŒã·ã§ã³ ãšãã® äŸåé¢ä¿ãäžç·ã«ããã±ãŒãžåããããšã§ãã ããã«ãããéçºç°å¢ããã¹ãç°å¢ãããã³éçšç°å¢éã®äžè²«æ§ãããã«ç¶æã§ããŸãã
ããã»ã¹ãè€éããããšããã®å©ç¹ãå®çŸã§ããªããªã¹ã¯ããããŸãã çµç¹ã¯å€ãã®åªããããŒã«ãšããã»ã¹ãããŒã ã«å°å ¥ããŸããããå¿ èŠãªã¹ãã«ã®ãšã³ããªãŒããŒãé«ãããããããããã®ããŒã«ãã»ãããéããã ãã§ãã
ãã®ç¶æ³ã¯ãQAããŒã ã§ããé¡èã§ãã å€ãã®ãã¹ã¿ãŒã¯æè¡çã§ãããããäžè¬çã«ã¯ ããã¹ãåãã®ç¹å®ã®ã¹ãã«ã»ãããæã£ãŠããŸããQAã¯ãäžè²«æ§ã®ãããã¹ãç°å¢ãã倧ããªæ©æµãåãã1ã€ã®ã°ã«ãŒãã»ããã§ããããã䜿çšããå¯èœæ§ãæãé«ããã®ãæ€èšããŠãã ããã
éçºç°å¢ã®ç޹ä»
ãããã®ã·ããªãªã®ãšã¯ã¹ããªãšã³ã¹ãããã«åäžãããããã«ãDocker Desktop ã«ã¯ãçŸåšãã¬ãã¥ãŒæ®µéã«ããéçºç°å¢ãšåŒã°ããæ°ããå ±åéçºæ©èœã远å ãããŸããã

git ãã©ã³ããŸãã¯ç°å¢ãåãæ¿ããã«ã¯ãéåžžãã³ãŒããå®è¡ããåã«ãæ§æãäŸåé¢ä¿ãããã³ãã®ä»ã®ç°å¢ã®ã»ããã¢ãããæåã§å€æŽããå¿ èŠããããŸãã
ãã®æ°æ©èœã䜿çšãããšãã³ãŒãã䜿çšããŠç°å¢ã®è©³çްèªäœããœãŒã¹ç®¡çã«ç°¡åã«ä¿æã§ããŸãã ãã¿ã³ãã¯ãªãã¯ããã ãã§ãéçºè ã¯Docker Hubãä»ããŠé²è¡äžã®äœæ¥ ãšãã® äŸåé¢ä¿ãå ±æã§ããŸãã ã€ãŸããéçºè ã¯äºãã®äœæ¥ã®å®å šã«æ©èœããã€ã³ã¹ã¿ã³ã¹ã«ç°¡åã«åãæ¿ããŠãããšãã°ãããŒã«ã«ãã©ã³ããã倿Žããããšãªããã«ãªã¯ãšã¹ããå®äºãããããã®ç°å¢ããã¹ãŠå€æŽããããšãã§ããŸãã
éçºç°å¢ã®äœ¿çšãéå§ããã«ã¯ããã¬ãã¥ãŒ ããã¥ã¡ã³ããåç §ããŠãã ããã
çµè«
Dockerã«ã€ããŠå·çããŠããèè ã®Bret Fisheræ°ã¯ãDocker Desktopã®å¿ èŠæ§ã èŠçŽ ããŠããŸã:ãããã¯ãmacOS/Windowsäžã®ããŒã«ã«Linuxã³ã³ããã«å¹æµããããŒã«ããªããã³ã³ããã©ã³ã¿ã€ã ããéåžžå¿ èŠãªãã®ã®80%ãããŒã«ã«ã§è§£æ±ºããããŒã«ããªãããšãDocker Desktopã®èšŒã§ãããšè¿°ã¹ãŠããŸãã
Dockerãã¹ã¯ããããæäŸãããã®ãšãã®éçšã§èª¿æ»ããŸããã ãŸããã³ã¹ããšROIãã»ããã¢ãããšã¡ã³ããã³ã¹ãã¹ã±ãŒã©ããªãã£ããªã³ããŒãã£ã³ã°ã«ã€ããŠãè§ŠããŸããã DIY Dockerã®æè»æ§ãšå¶åŸ¡ã奜ã人ãããŸãããDocker Desktopã¯ã»ããã¢ããã®åŽåãšã¡ã³ããã³ã¹ãå°ãªããŠæžã¿ãéçºããQAãŸã§ã®ãã¹ãŠã®äººã«ç©ãããªåŠç¿æ²ç·ãæäŸããŸãã
ãããããDIYãœãªã¥ãŒã·ã§ã³ã®æå€§ã®èª²é¡ã¯ãããžãã¹äŸ¡å€ã®èгç¹ããã§ãã éçºè
ã¯ããããã®ããšãè¡ãæ¹æ³ãçºèŠããã®ã倧奜ãã§ãã ãããã£ãŠãéçºè
ã¯å¿
ãããDIYãœãªã¥ãŒã·ã§ã³ã®ç¶æã«1é±é以äžè²»ãããæéã远跡ãããšã¯éãããããžãã¹ã¯çç£æ§ã®äœäžãå¯èŠåã§ããŸããã
Windows ãŸã㯠macOS äžã® Docker ã䜿çšããããŒã«ã«éçºã« DIY ãœãªã¥ãŒã·ã§ã³ããŸã 䜿çšããŠããå Žåã¯ã Docker Desktop ã®è©³çްã確èªã ãããŠã³ããŒãããŠéå§ããŠãã ããã