Docker Hardened Images ã¯ã€ãã¯ã¹ã¿ãŒã
ãã®ã¬ã€ãã§ã¯ãDocker Hardened ImageïŒDHIïŒãå®éã®äŸã䜿ã£ãŠããŒãããå®è¡ã§ããããã«ãªããŸã§ã®æé ã玹ä»ããŸãã ããã§ã¯ç¹å®ã®ã€ã¡ãŒãžãäŸã«äœ¿çšããŸãããæé ã¯ãã¹ãŠã® DHI ã«é©çšå¯èœã§ãã
ã¹ããã 1: DHI ã«ãµã€ã³ã¢ããããŠãµãã¹ã¯ãªãã·ã§ã³ã«ç»é²ãã
Docker Hardened Images ã«ã¢ã¯ã»ã¹ããã«ã¯ãOrganization ã ãµã€ã³ã¢ããâ(https://www.docker.com/products/hardened-images/#getstartedâ) ãããµãã¹ã¯ãªãã·ã§ã³ã«ç»é²ããå¿ èŠããããŸãã
ã¹ããã 2: 䜿çšããã€ã¡ãŒãžãæ¢ã
ãµãã¹ã¯ãªãã·ã§ã³ç»é²ãå®äºãããšãDocker Hardened Images 㯠Docker Hub äžã®è²Žç€Ÿã® Organization ã®åå空éã«è¡šç€ºãããŸãã
-
Docker Hubâ ã«ã¢ã¯ã»ã¹ããŠãµã€ã³ã€ã³ããŸãã
-
äžéšããã²ãŒã·ã§ã³ãã My Hub ãéžæããŸãã
-
å·Šãµã€ãããŒã§ãDHI ãžã®ã¢ã¯ã»ã¹æš©ããã Organization ãéžæããŸãã
-
å·Šãµã€ãããŒã§ DHI catalog ãéžæããŸãã
- æ€çŽ¢ããŒããã£ã«ã¿ãŒã䜿ã£ãŠã䜿çšãããã€ã¡ãŒãžãæ¢ããŸãïŒäŸïŒ
python
ãnode
ãgolang
ïŒããã®ã¬ã€ãã§ã¯ Python ã€ã¡ãŒãžãäŸãšããŠäœ¿çšããŸãã
- Python ã®ãªããžããªãéžæããŠè©³çްã衚瀺ããŸãã
次ã®ã¹ãããã§ã¯ããã®ã€ã¡ãŒãžããã©ãŒããŸãã
ã€ã¡ãŒãžã®è©³çŽ°ãªæ¢çŽ¢æ¹æ³ã«ã€ããŠã¯ãDocker Hardened Images ãæ¢çŽ¢ãã ãã芧ãã ããã
ã¹ããã 3: ã€ã¡ãŒãžããã©ãŒãªã³ã°ãã
Docker Hardened Image ã䜿çšããã«ã¯ãOrganization ã«ã€ã¡ãŒãžããã©ãŒãªã³ã°ïŒè€è£œïŒããå¿ èŠããããŸãããã®æäœã¯ Organization ã®ãªãŒããŒã®ã¿ãå®è¡ã§ããŸãããã©ãŒãè¡ããšãOrganization ã®åå空éã«ã€ã¡ãŒãžã®ã³ããŒãäœæãããããŒã ã¡ã³ããŒããã®ã€ã¡ãŒãžã pull ããŠäœ¿çšã§ããããã«ãªããŸãã
- 察象ã®ã€ã¡ãŒãžãªããžããªã®ããŒãžã§ãMirror to repository ãéžæããŸãã
Mirror to repository ãã¿ã³ã衚瀺ãããŠããªãå Žåã¯ããã®ãªããžããªã¯ãã§ã« Organization ã«ãã©ãŒãããŠããå¯èœæ§ããããŸãããã®å Žåã¯ãView in repository ãéžæããŠãã©ãŒæžã¿ã€ã¡ãŒãžã®å Žæã確èªããããå¥ã®ãªããžããªã«ãã©ãŒããããšãã§ããŸãã
- 衚瀺ãããæç€ºã«åŸã£ãŠãªããžããªåãæå®ããŸãããã®ã¬ã€ãã§ã¯äŸãšããŠ
dhi-python
ã䜿çšããŸããååã¯dhi-
ã§å§ããå¿ èŠãããç¹ã«æ³šæããŠãã ããã
- Create repository ãéžæããŠããã©ãŒãªã³ã°ãéå§ããŸãã
ãã¹ãŠã®ã¿ã°ã®ãã©ãŒãå®äºãããŸã§ã«æ°åãããå ŽåããããŸãããã©ãŒãå®äºãããšããã®ã€ã¡ãŒãžãªããžããªã¯ Organization ã®åå空éã«è¡šç€ºãããŸãã
ããšãã° Docker Hubâ ã® My Hub > YOUR_ORG > Repositories ã«ç§»åãããšãdhi-python
ã衚瀺ãããŠããã¯ãã§ããããã§ä»ã®ã€ã¡ãŒãžãšåæ§ã« pull ã§ããããã«ãªããŸãã
次ã®ã¹ãããã§ã¯ããã®ã€ã¡ãŒãžã pull ããŠå®è¡ããŸãã
ã€ã¡ãŒãžã®ãã©ãŒãªã³ã°ã«ã€ããŠããã«è©³ããç¥ãããå Žåã¯ãDocker Hardened Image ãªããžããªããã©ãŒãã ãåç §ããŠãã ããã
ã¹ããã 4: ã€ã¡ãŒãžã pull ããŠå®è¡ãã
ã€ã¡ãŒãžã Organization ã«ãã©ãŒããããä»ã® Docker ã€ã¡ãŒãžãšåæ§ã« pull ããŠå®è¡ã§ããããã«ãªããŸãã
ãã ããDocker Hardened Images ã¯ã»ãã¥ã¢ãã€æå°æ§æã«ãªãããèšèšãããŠãããããäžè¬çãªã€ã¡ãŒãžã«å«ãŸããŠãããããªããŒã«ãã©ã€ãã©ãªãå«ãŸããŠããªãå ŽåããããŸãã
ãã®ãããªéãã«ã€ããŠã¯ãDHI å°å ¥æã®æ³šæç¹ ãã芧ãã ããã
以äžã®äŸã§ã¯ãPython ã€ã¡ãŒãžãå®è¡ããç°¡å㪠Python ã³ãã³ããå®è¡ã§ããããšã確èªããŠããŸãïŒ
-
ãã©ãŒæžã¿ã®ã€ã¡ãŒãžã pull ããŸããã¿ãŒããã«ãéãã以äžã®ã³ãã³ããå®è¡ããŠãã ããïŒ
<your-namespace>
ã¯è²Žç€Ÿã®åå空éã«çœ®ãæããŠãã ããïŒ:$ docker pull <your-namespace>/dhi-python:3.13
-
ã€ã¡ãŒãžãå®è¡ããŠãæ£åžžã«åäœããããšã確èªããŸã:
$ docker run --rm <your-namespace>/dhi-python:3.13 python -c "print('Hello from DHI')"
ãã®ã³ãã³ãã¯
dhi-python:3.13
ã€ã¡ãŒãžããã³ã³ãããèµ·åããHello from DHI
ãåºåããã·ã³ãã«ãª Python ã¹ã¯ãªãããå®è¡ããŸãã
ã€ã¡ãŒãžã®æŽ»çšã«ã€ããŠããã«è©³ããç¥ãããå Žåã¯ãDocker Hardened Image ã䜿çšãã ãã芧ãã ããã
次ã®ã¹ããã
åããŠã® Docker Hardened Image ã pull ããŠå®è¡ã§ããŸããã
ããããããã«é²ããããã®æ¹æ³ãããã€ãã玹ä»ããŸã:
-
æ¢åã¢ããªã±ãŒã·ã§ã³ã DHI ã«ç§»è¡ãã: Dockerfile ãæŽæ°ããããŒã¹ã€ã¡ãŒãžãšã㊠Docker Hardened Images ã䜿çšããæ¹æ³ãåŠã³ãŸãããã
-
DHI ãæ€èšŒãã: Docker Scout ã Cosign ãªã©ã®ããŒã«ã䜿çšããŠãSBOMïŒãœãããŠã§ã¢éšå衚ïŒãããããã³ã¹ïŒåºææ å ±ïŒãªã©ã®çœ²åä»ãã¢ãã¹ããŒã·ã§ã³ã確èªã»æ€èšŒããŸãããã
-
DHI ãã¹ãã£ã³ãã: Docker Scout ããã®ä»ã®ã¹ãã£ããŒã䜿çšããŠãæ¢ç¥ã® CVEïŒè匱æ§ïŒãç¹å®ããããã«ã€ã¡ãŒãžãåæããŸãããã