ã³ã³ããã€ã¡ãŒãžã®ä»çµã¿ â ã¡ãã»ãŒãžå ¥ãã®ã²ãªåãåãã
äœãæ¹ãæžããŠãåãã¡ãã»ãŒãžãåãã
ãŸãã¯ãã¡ãã»ãŒãžå ¥ãã®ã€ã¡ãŒãžããšãåãã³ã³ããããåãã
ã³ã³ããã€ã¡ãŒãžã¯ãå®è¡ã«äœ¿ããã¡ã€ã«ãšèšå®ããŸãšãããã®ã§ããã€ã¡ãŒãžããã³ã³ãããäœãããã®äžã§ã³ãã³ããåãããŸããåçã§ã¯ãªããåãæºåæžã¿ã®å 容ããå®è¡ç°å¢ãäœãããã®ã²ãªåãšèããŸãããã
Dockerãå°å ¥æžã¿ã§Linuxã³ã³ãããå®è¡ã§ããç°å¢ãªããæ¬¡ã®å°ããªäŸã詊ããŸããæ°ããç·Žç¿çšãã©ã«ããŒã«ãUTF-8ã®message.txtãäœããããã«ã¡ã¯ãã²ããã§ãããš1è¡æžããŠä¿åããŸããåãå Žæã«ãæ¡åŒµåãªãã®Dockerfileãä¿åããŠãã ããã
FROM alpine:3.23
COPY message.txt /message.txt
CMD ["cat", "/message.txt"]
ãã®ãã©ã«ããŒã§ã次ãé çªã«å®è¡ããŸããååã¯ããŒã¹ã€ã¡ãŒãžãååŸããããéä¿¡ãå¿ èŠã§ãã
docker build -t hiyopen-message .
docker run --rm hiyopen-message
æåãããšãmessage.txtã®å 容ã衚瀺ãããŸããCOPYã¯ãã¡ã€ã«ãã€ã¡ãŒãžãžå ¥ããåœä»€ãCMDã¯ã³ã³ãããèµ·åãããšãã®æ¢å®ã®ã³ãã³ãã§ããCMDããã«ãæã«catãå®è¡ããããã§ã¯ãããŸããã
ãã¡ã€ã«ã倿Žããããäœãå€ããïŒ
ãã¹ãåŽã®message.txtããããã«ã¡ã¯ããºãããã§ãããžå€æŽãããŸãåãrunãããäžåºŠè©ŠããŠãã ãããã€ã¡ãŒãžãäœãçŽããŠããªããã°ãåã«COPYãããã²ãããã®å 容ã䜿ãããŸãã
ãã®åŸãããäžåºŠbuildããŠrunãããšãæ°ããã³ããŒããããºããããã®å 容ã衚瀺ãããŸãããã®äŸã¯ããªã¥ãŒã ããã€ã³ãããŠã³ãã䜿ã£ãŠããŸãããå ã®ãã¡ã€ã«ãç·šéããããšãšãã€ã¡ãŒãžãæŽæ°ããããšã¯å¥ã ãšç¢ºèªã§ããŸãã
ã¬ã€ã€ãŒãšæžã蟌ã¿å±€ã®éã
ã€ã¡ãŒãžã¯ãäžå€ã®ãã¡ã€ã«å·®åã®å±€ãšãèµ·åãªã©ã®èšå®ãæã¡ãŸããã³ã³ãããéåžžã®æžã蟌ã¿å¯èœãªæ§æã§äœããšããã®ã³ã³ããå°çšã®æžã蟌ã¿å±€ãå ãããŸãã
åãã€ã¡ãŒãžããã³ã³ããAãšBãäœã£ãŠããAã®æžã蟌ã¿å±€ã§å€æŽããå 容ã¯ãBã®æžã蟌ã¿å±€ãžèªååæ ãããŸãããã³ã³ãããåé€ãããšããã®å°çšã®æžã蟌ã¿å±€ãåé€ãããŸããæ®ãå¿ èŠã®ããããŒã¿ã«ã¯ãããªã¥ãŒã ãªã©å¥ã®ä¿ç®¡ãèããŸãã
ãã¹ãŠã®Dockerfileåœä»€ããã¡ã€ã«ã®å±€ã远å ããããã§ã¯ãªããCMDãªã©ã¯èšå®ã§ããCOPYããå 容ã®å€æŽãªã©ã§ãã£ãã·ã¥ã䜿ããªããªã£ãå Žåã¯ãåãæ®µéã®åŸç¶æé ãåå®è¡ãããŸãã
ããå°ã詳ããïŒé åžã»æŽæ°ã»ç¢ºèª
ã¬ãžã¹ããªã¯ã€ã¡ãŒãžãé åžããå庫ã§ããã¿ã°ã¯å¥ã®å 容ãæãããã«å€æŽã§ããŸããç¹å®ã®å 容ãåç §ããã«ã¯ãã€ãžã§ã¹ãã䜿ããŸãããåºå®ããäŸåé¢ä¿ãä¿®æ£ã«åãããŠæŽæ°ããéçšãå¿ èŠã§ããåãDockerfileã ãã§ãååŸãããã¹ãŠã®äŸåããã«ãçµæãŸã§åäžã«ãªããšã¯éããŸããã
ãã«ãã¹ããŒãžãã«ãã§ã¯ããã«ãçšã®æ®µéããææç©ã ããå®è¡çšã®æ®µéãžã³ããŒã§ããŸããå°ããã ãã§ãªããå®è¡ã«å¿ èŠãªã©ã€ãã©ãªãŒãèšŒææžãããããã確èªããŸããOSã»CPUãšã®äºææ§ãå¿ èŠã§ãã©ã®ãã·ã³ã§ãåãåäœãä¿èšŒãããã®ã§ã¯ãããŸããã
è匱æ§ã¹ãã£ã³ã¯æ¢ç¥ã®åé¡ãæ¢ãææããã§ãçœ²åæ€èšŒã¯æåŸ ãã眲åè ããã€ãžã§ã¹ããšã®å¯Ÿå¿ã確ãããææ®µã§ããã©ã¡ãããå«ãŸããããã°ã©ã ãç¡å®³ã§ããããšã®èšŒæã§ã¯ãããŸããã
Google Cloudã§ã¯æ§Container Registryã¯çµäºããArtifact Registryãžã®ç§»è¡ãæ¡å ãããŠããŸããArtifact Registryãé ä¿¡ããgcr.ioã®URLãŸã§ããã¹ãŠäœ¿ããªããªã£ãããã§ã¯ãããŸããã
èŠãæ¹ã𿬡ã®äžæ©
ãã³ã³ããã€ã¡ãŒãžãã£ãŠåºãŠããããå®è¡ã«äœ¿ããã¡ã€ã«ãšèšå®ããŸãšããã²ãªåããšæãã°ã ãããOKïŒ
Dockerå ¥éã§èµ·åã®æµãã詊ããä»®æ³ãã·ã³ãšã³ã³ããã®æ¯èŒã§å®è¡åºç€ãšã®éããæŽçã§ããŸãã
åèè³æ
- Docker: Understanding the image layers â äžå€ã®ãã¡ã€ã«å·®åã®ç©å±€ãšã³ã³ããå®è¡æã®å°çšæžã蟌ã¿é åã
- Docker: Storage drivers â CMD/LABELã¯ã¡ã¿ããŒã¿ãèªã¿åãå°çšå±€ã®å ±æãæžã蟌ã¿å±€ãšcopy_upã®å®¹éãããªã¥ãŒã ãšã®åºå¥ã
- Docker: Build cache invalidation â ãã£ãã·ã¥ç¡å¹ååŸã¯åŸç¶æé ãåå®è¡ãããã
- Docker: Building best practices â ã¿ã°ã®å¯å€æ§ãdigeståºå®ãäŸåæŽæ°ãšå®æåãã«ããæå°æ§æã®éžæã
- Docker: Multi-stage builds â COPY âfromã§ææç©ãæçµæ®µéãžæž¡ãããã«ãçšããŒã«ãé€ããã
- Docker: Multi-platform builds â ãã¹ãOS/CPUãšã®äºææ§ãå¿ èŠã§ãç¡æ¡ä»¶ã«ã©ãã§ãå®è¡ã§ããããã§ã¯ãªãã
- Google Cloud: Transition from Container Registry â æ§Container RegistryçµäºãArtifact Registryæšå¥šãåãµãŒãã¹ãé ä¿¡ããgcr.io URLã¯ç¶ç¶ã
- Trivy: Vulnerability â 察å¿ãœãããŠã§ã¢ã®æ¢ç¥ã®è匱æ§ãããŒã¿ããŒã¹ã§æ€åºãæ€åºå¯Ÿè±¡ã«éçãããã
- Sigstore: Verifying Signatures â ä¿¡é Œããå ¬ééµãŸãã¯æåŸ ããidentity/issuerãæå®ãã眲åãšã€ã¡ãŒãždigestãæ€èšŒããã
- DockerïŒDockerfile reference â COPYãšCMDãCMDã¯ãã«ãæã«ã¯å®è¡ããªã
èšæ£å±¥æŽ
- 2026-10-05ïŒã¬ã€ã€ãŒãšã¡ã¿ããŒã¿ããã£ãã·ã¥å€±å¹ãå®è¡ç°å¢ã®æ¡ä»¶ãåºå¥ããæ§GCRã®ç޹ä»ãšçœ²åã®ä¿èšŒç¯å²ãä¿®æ£ã