11æ2024æ¥æŽæ°: ã¢ããã°ã¬ãŒããããDockerãã©ã³ã«ã€ããŠåŠã³ãæé©ãªDockerãµãã¹ã¯ãªãã·ã§ã³ãéžæããŠãã ãããããã·ã³ãã«ã«ããã䟡å€ããããåªããéçºãšçç£æ§ãå®çŸããŸãã
Docker Desktop ã®ãªãªãŒã¹ ã³ã¬ã¯ã·ã§ã³ã§ã¯ãææ°ã®æ©èœåŒ·åãšã€ãããŒã·ã§ã³ã«ã€ããŠã玹ä»ããŠããŸãã
â
ç§ãã¡ã¯ããã®å
±åããã°ã§ãŠãã£ããã£ãšååã§ããããšãå¬ããæããŸããDockerãšUffizziã¯ãäºãã«èªç¶ã«è£å®ãåãéåžžã«ãã䌌ãããã·ã§ã³ãæã£ãŠããŸããDockerã¯ãã¢ããªã±ãŒã·ã§ã³éçºã®è€éãã軜æžããããšã§ã¢ã€ãã¢ãå®çŸããã®ã«åœ¹ç«ã¡ãUffizziã¯ã¯ã©ãŠãã¢ããªã±ãŒã·ã§ã³ãã¹ãã£ã³ã°ã®è€éãã軜æžããããšã§ã¢ã€ãã¢ãå®çŸããã®ã«åœ¹ç«ã¡ãŸãã
ãã®ããã°ã¯ãDocker Hubãä»ããŠGithubãªããžããªããèªåãã«ããèšå®ããUffizziã¢ããªã®ãã¹ãã£ã³ã°ç°å¢ãžã®ç¶ç¶çãããã€ãæå¹ã«ããããã®ã¹ããããã€ã¹ãããã¬ã€ãã§ãã

åæ æ¡ä»¶
ãã®ãã¥ãŒããªã¢ã«ãå®äºããã«ã¯ã次ã®ãã®ãå¿
èŠã§ãã
- ç¡æã®ããã«ãŒã¢ã«ãŠã³ã
- ç¡æã®Dockerã¢ã«ãŠã³ãã«ãµã€ã³ã¢ãã ããŠãç¡æã®ç¡å¶éã®ãããªãã¯ãªããžããªãåãåãããšãã§ããŸã
- ãã¡ã€ã«ã®ç·šéã«äœ¿çšãã IDE ãŸãã¯ããã¹ã ãšãã£ã¿ãŒã ç§ã¯VSCodeããå§ãããŸã
- ç¡æã® ãŠãã£ãã㣠ã¢ããªãã©ãããã©ãŒã ã¢ã«ãŠã³ãÂ
- ç¡æã® Github ã¢ã«ãŠã³ã
ããã«ãŒã®æŠèŠ
Dockerã¯ãã¢ããªã±ãŒã·ã§ã³ãéçºãåºè·ãå®è¡ããããã®ãªãŒãã³ãã©ãããã©ãŒã ã§ãã Dockerã³ã³ããã¯ãã¢ããªã±ãŒã·ã§ã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ããåé¢ããããããœãããŠã§ã¢ãè¿ éã«é ä¿¡ã§ããŸããÂ
Docker ã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã管çããã®ãšåãæ¹æ³ã§ã€ã³ãã©ã¹ãã©ã¯ãã£ã管çã§ããŸãã ã³ãŒããè¿
éã«åºè·ããã¹ãããããã€ããããã® Docker ã®ææ³ã掻çšããããšã§ãã³ãŒãã®èšè¿°ãšæ¬çªç°å¢ã§ã®å®è¡ã®éã®é
å»¶ã倧å¹
ã«ççž®ã§ããŸãã
ãŠãã£ããã£ã¢ããªãã©ãããã©ãŒã ã®æŠèŠ
Uffizziã¯ãDockeräžå¿ã®ã¯ã©ãŠãã¢ããªã±ãŒã·ã§ã³ãã©ãããã©ãŒã ã§ãã Uffizziã¯ãã¯ã©ãŠãã§ã¢ããªããã¹ãããè€éãã軜æžããããšã§ãéçºè
ãæ¯æŽããŸãã Uffizziã¯ã12ãè¶
ããã¯ã©ãŠãããã»ã¹ãèªååããä¿¡é Œæ§ãé«ããã¹ã±ãŒã©ãã«ã§å®å
šãªããã·ã¥ãã¿ã³ã¢ããªãã¹ãã£ã³ã°ç°å¢ãæäŸããŸãã
Uffizziã䜿çšãããšãDocker HubããçŽæ¥ããŸãã¯ãã®ããã°ã§ç€ºãããã«ãGithubããDocker Hubã®èªåãã«ãããã»ã¹ãä»ããŠã¢ããªã±ãŒã·ã§ã³ãã»ããã¢ããããŠãããã€ã§ããŸãã Uffizziã¯ããªãŒãã³ãœãŒã¹ã®ã³ã³ãããªãŒã±ã¹ãã¬ãŒã¿Kubernetesã«åºã¥ããŠæ§ç¯ãããŠãããã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç®¡çãè€éã«ããããšãªãããã®åŒ·åãªããŒã«ã掻çšã§ããŸãã
ãã©ãŒã¯ãšã¯ããŒã³ã®ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³
ãã®ãã¢ã§ã¯ãµã³ãã«ã® "Hello World" ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŸããããã®ã¯ãŒã¯ãããŒã¯ HTTP èŠæ±ã«å¿çããä»»æã®ã¢ããªã§äœ¿çšã§ããŸãã
GitHubã¢ã«ãŠã³ãã«ãã°ã€ã³ãããã®ãµã³ãã«ãªããžããªã®ç¬èªã®ã³ããŒãããã©ãŒã¯ãããŸã https://github.com/UffizziCloud/hello-world
ãµã³ãã«ãªããžããªããã©ãŒã¯ããã«ã¯ããªããžããªã®ããããŒã«ãã Fork ãã¿ã³ãã¯ãªãã¯ããŸãã

GitHub ããã¹ãŠãã¢ã«ãŠã³ãã«ã³ããŒããŠããããŸã§ããã°ãããåŸ ã¡ãã ããã å®äºãããšããµã³ãã«ãªããžããªã®ãã©ãŒã¯ãããã³ããŒã«ç§»åããŸãã GitHubãªããžããªã®ãã©ãŒã¯ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã https://guides.github.com/activities/forking/
ãã¡ãããå®éã«å€æŽãå ããã«ã¯ãæ°ããGitãªããžããªãã¯ãŒã¯ã¹ããŒã·ã§ã³ã«ãã¯ããŒã³ãããå¿ èŠããããŸãã ããã¯ãã¯ãŒã¯ã¹ããŒã·ã§ã³ãå®è¡ããŠãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠå°ãç°ãªããŸãããGitãã€ã³ã¹ããŒã«ãããšãéåžžã¯ãgit cloneããæåããŸãã ãªããžããªããããŒã®ç·è²ã®ãã³ãŒãããã¿ã³ã¯ãã¯ããŒã³ãäœæããURLãæäŸããŸãã GitHubã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã䜿çšããããšãã§ããŸãã Git ã®è©³çްã«ã€ããŠã¯ããã¡ããåç §ããŠãã ãã: https://guides.github.com/introduction/git-handbook/

ã³ãŒããšããã«ãŒãã¡ã€ã«ã確èªãã
ãã®äžã®ããã€ãã®ãã¡ã€ã«ãç¹ã«ãDockerfileãã確èªããŠãå®è¡å¯èœãªã¯ããŒã³ãããããšã確èªããŸãã ãã®ãã¡ã€ã«ã¯ãä»»æã®ã¢ããªã±ãŒã·ã§ã³ã® Docker ã€ã¡ãŒãžããã«ãããããã«å¿ èŠã§ãããåŸã§æ°ããã³ã³ãã㌠ã€ã¡ãŒãžãèªåçã«ãã«ãããŠãããã€ããããã«äœ¿çšãããŸãã ãã®äŸã®ãããã«ãŒãã¡ã€ã«ãã¯éåžžã«åçŽã§ããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããæŽç·ŽããããDockerfileããå¿ èŠãªå ŽåããããŸãã ãããã«ãŒãã¡ã€ã«ãã®æ§é ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã https://docs.docker.com/engine/reference/builder/
ãã©ã€ããŒãããã«ãŒãããªããžããªã®äœæ
次ã«ããããã®æ§ç¯ãããã€ã¡ãŒãžããŠãã£ããã£ãããããèŠã€ããããšãã§ããå Žæã«ååšããå Žæãå¿ èŠã§ãã Docker Hub ã¢ã«ãŠã³ãã«ãã°ã€ã³ãã[ãªããžããª]ã[ãªããžããªã®äœæ] ã®é ã«ã¯ãªãã¯ããŸãã

åŸã§ãŠãã£ããã£ã«ç¶ç¶çãããã€ããããã«ããã©ã€ããŒããªããžããª(ãããªãã¯ã§ã¯ãªã)ãäœæããŠãã ãããÂ

ãããŠä»ãããGitHub ã¢ã«ãŠã³ãããªã³ã¯ãããã«ãã«ãŒã«ã远å ããŠèªåãã«ããèšå®ããè¯ãæ©äŒã§ãã GitHub ããŽãã¯ãªãã¯ããDocker ã GitHub ãªããžããªã衚瀺ããããšãæ¿èªããŸãã éããã©ã¹èšå·ãã¯ãªãã¯ããŠãããã¹ã¿ãŒããã©ã³ãã®ãã«ãã«ãŒã«ãäœæããŸãã

ãCreate & Buildããã¯ãªãã¯ãããšãæ°ãããªããžããªã«ç§»åããããã«ããã¿ããéžæããŠåäœã確èªã§ããŸã(äžã®ã¹ã¯ãªãŒã³ã·ã§ãããåç §)ã å®äºãããšãã¢ããªã±ãŒã·ã§ã³ããŠãã£ããã£ã«ãããã€ããæºåãæŽããŸãã GitHub ã¢ã«ãŠã³ããšèªåãã«ãã®ãªã³ã¯ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã https://docs.docker.com/docker-hub/builds/

ãŠãã£ããã£ã¢ããªã®ãã¹ãã£ã³ã°ç°å¢ã®ã»ããã¢ãã
https://uffizzi.com ã«ã¢ã¯ã»ã¹ããŠç¡æã¢ã«ãŠã³ãã«ãµã€ã³ã¢ããããŠãã ããâã¯ã¬ãžããã«ãŒãã¯å¿
èŠãããŸãããããã·ã¥ããŒããããä»ããå§ããããéžæããŸãã
次ã«ãã¢ããªã®ç°å¢ãéžæããŸã â ãã®ãã¥ãŒããªã¢ã«ã§ã¯ "ç¡æ" ãé©åã§ãã
ååä»ãã«ã¯ãæ¢å®ã®ååã䜿çšããããå¿
èŠã«å¿ã㊠"ç¶ç¶çãããã€ã®ãã¢" ãšããååãä»ããããšãã§ããŸãã
ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ããŒããã¹ãããã§ãDocker HubãéžæããDocker Hubã¢ã«ãŠã³ãã«ãã°ã€ã³ããŸãã
Docker Hub ã§èªèšŒããããããã®ãã¢çšã«äœæãããªããžããªãéžæããŸãã ããã¯ãåŸã§Docker HubãæŽæ°ãããã€ã¡ãŒãžãããã·ã¥ããUffizziã¢ããªãã¹ãã£ã³ã°ç°å¢ãžã®ç¶ç¶çãããã€ããã»ã¹ãéå§ãããªããžããªã§ãã
ãªããžããªãéžæãããã[ãã€ã€ã¡ãŒãž]ã§ç»åãéžæããŸãã ããã§ãã³ã³ããããªãã¹ã³ããããŒãçªå·ãæå®ã§ããããã«ãªããŸã â ãã®ãã¥ãŒããªã¢ã«ã§ã¯ã80ãã«ãªããŸãã Â

ãã®ãã¢ã§ã¯ãä»ã®ãµãŒãã¹ãããŒã¿ããŒã¹ã«æ¥ç¶ããŠããªããããç°å¢å€æ°ã¯å¿
èŠãããŸããã
次ã«ããã€ã³ããŒãããéžæããŸãã
(泚-ãç¡æã以å€ã®ç°å¢ãéžæããå Žåã¯ãããŒã¿ããŒã¹ã远å ãããªãã·ã§ã³ããããŸãâãã¹ãããããéžæã§ããŸãâãã®ãã¥ãŒããªã¢ã«ã§ã¯ããŒã¿ããŒã¹ã¯å¿
èŠãããŸããã
ããã§ããhello-worldãç»åã衚瀺ãããã·ã§ããã³ã°ã«ãŒãã衚瀺ãããŸãã å
ã«é²ã¿ãããããã€ããã¿ã³ãæŒããŠãã ããã Uffizziã¯ãKubernetesãªãœãŒã¹ã®å²ãåœãŠããã³ã³ããã®ã¹ã±ãžã¥ãŒãªã³ã°ãè² è·åæ£ããããããã¯ãŒã¯ã®æ§æãç°å¢ã®ä¿è·ãŸã§ãçŽ12ã®ã¯ã©ãŠãããã»ã¹ãèªååããã®ã«æ°åããããŸãã åŸ
ã£ãŠããéã«ãç°å¢ãæ¢çŽ¢ãããããšãã§ããŸãã
ãããã®æé ãå®äºãããšãã³ã³ãããŒã "å®è¡äž" ãšè¡šç€ºããã"ç¶ç¶çãããã€" ãæå¹ã«ãªããŸãã
å
ã«é²ã¿ããã¢ããªã±ãŒã·ã§ã³ãéãããã¯ãªãã¯ããŠãWebãã©ãŠã¶ã§ã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã§ç¢ºèªããŸãã ãã®ãã¥ãŒããªã¢ã«ã®åŸåã§ã¯ããã®ãã©ãŠã¶ã¿ãã«æ»ã£ãŠããªããžããªããããã·ã¥ããæŽæ°ã確èªããŸãã
åŸã§HTTPSæå·åãèšå®ããUffizzi UIå
ã§ã«ã¹ã¿ã ãã¡ã€ã³ã远å ã§ããŸããããã®ãã¢ã§ã¯å¿
èŠãããŸããã Â
ç¶ç¶çãããã€ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³
ããã§ããŠãã£ããã£ã§ã®ç¶ç¶çãããã€ã¡ã³ãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§ããŸãã ã¯ãŒã¯ã¹ããŒã·ã§ã³ã®ã¯ããŒã³ããã Git ãªããžããªå
ã«å°ããªå€æŽãå ããŠãããGitHub ã«å€æŽãå ã index.html ãŸã git push ã GitHubãDockerãUffizzi ã®ã¢ã«ãŠã³ããæ¥ç¶ããããã倿Žã¯æ°ãã Docker ã€ã¡ãŒãžå
ã® Uffizzi ã«ããã«ãããã€ãããŸãã ããã«ã¯æ°åãããå ŽåããããŸããDocker Hub ã® [ãã«ã] ã¿ãã§ç¶æ
ã確èªããŸãã
ã¢ããããŒããã©ã€ãã§ããããšã確èªãã
ããã§ãã¢ããªã±ãŒã·ã§ã³ã«å ããã°ããã®æŽæ°ããŠãã£ããã£ã§ã©ã€ãã§ç¢ºèªã§ããŸãã
ç¶ç¶çãããã€ã䜿çšããŠUffizziã¢ããªãã¹ãã£ã³ã°ç°å¢ãèšå®ãããšãã³ãŒãã®æŽæ°ãããã·ã¥ããããã«Uffizziå
ã§äœãããå¿
èŠã¯ãããŸããã ç®æšã¯ãã¢ããªã±ãŒã·ã§ã³ã«éäžã§ããããã«ç°¡åã«ããããšã§ãã
ã¢ããããŒããã©ã€ãã§ããããšã確èªãã
çµè«
ãã®æçš¿ã§ã¯ããã©ã€ããŒããªããžããªã®äœæãšDocker Hubã䜿çšããèªåãã«ãã®èšå®ã«ã€ããŠåŠã³ãŸããã æ¬¡ã«ãDocker Hubãã©ã€ããŒããªããžããªããUffizziã¢ããªãã¹ãã£ã³ã°ç°å¢ã«çŽæ¥Dockerã€ã¡ãŒãžããããã€ããæ¹æ³ã«ã€ããŠèª¬æããŸããã
ã¢ããªã±ãŒã·ã§ã³ãUffizziã§å
¬éããããããç¶ç¶çãããã€ããæå¹ã«ãªã£ãŠããããšã確èªããŸããã ããã«ãããUffizziã¯æ¥ç¶ãããDocker Hubãªããžããªãç£èŠããããã«æ§ç¯ãããæ°ããã€ã¡ãŒãžãèªåçã«ãããã€ã§ããŸãã
次ã«ãã¯ãŒã¯ã¹ããŒã·ã§ã³ã§ãã¢ã¢ããªãæŽæ°ãããgit pushãã³ãã³ããå®è¡ããŠUffizzi Cloudã«ãããã€ããŸããã ãã®ããã·ã¥ã«ãããGitHubã«ããã·ã¥ãããæ°ããã³ãŒããããDocker Hubäžã®Dockerã€ã¡ãŒãžããããã€ãããUffizziãã¹ãã£ã³ã°ç°å¢ãžãšã¢ããªã䜿çšããèªååãããã·ãŒã±ã³ã¹ãéå§ãããŸãããDockerã«é¢ããã質åãããããŸããããTwitter @pmckee ã§ãæ°è»œã«ãåãåããããã ãã ã³ãã¥ããã£ã¹ã©ãã¯ã«åå ããŠãã ããã
ãŠãã£ããã£ã«é¢ããã質åã¯ãTwitterã§ãæ°è»œã«ãåãåããããã ãã ãŠãã£ããã£ãŠãŒã¶ãŒ ã³ãã¥ããã£ã®ã¹ã©ãã¯ãã°ã¬ã€ãœã³ã»ã¢ããã³ã¹(grayson.adkins@uffizzi.cloud)ãã«ãåå ããã ãã @uffizzi_ ããŠãã ããããŸãã¯ãžã§ã·ã¥ã»ãµãŒãã³(josh.thurman@uffizzi.cloud)ã