Docker Hardened Image ã³ã³ããããããã°ãã
Docker Hardened ImagesïŒDHIïŒã¯ãæå°æ§æãšã»ãã¥ãªãã£éèŠã®èšèšã§ãããããã·ã§ã«ãããã±ãŒãžãããŒãžã£ãªã©ã®äžè¬çãªãããã°ããŒã«ããããŠå«ãŸããŠããŸããã
ãã®ãããã€ã¡ãŒãžèªäœã倿Žããã«ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãè¡ãããšã¯é£ããã察å¿ã«ã¯æ éããæ±ããããŸãã
ãã®èª²é¡ã«å¯Ÿå¿ããããã«ãDocker Debug ã䜿çšããããšã§ããªãªãžãã«ã®ã€ã¡ãŒãžã倿Žããã«ãäžæçãªãããã°çšã³ã³ãããæ¢åã®ãµãŒãã¹ãã€ã¡ãŒãžã«å®å šã«æ¥ç¶ã§ããŸãã
ãã®ã¬ã€ãã§ã¯ãéçºäžã« DHI ãããŒã«ã«ã§ãããã°ããæ¹æ³ã玹ä»ããŸãã
ãŸãã--host
ãªãã·ã§ã³ã䜿çšããã°ããªã¢ãŒãã®ã³ã³ããã察象ãšãããããã°ãå¯èœã§ãã
以äžã®äŸã§ã¯ããã©ãŒãªã³ã°ããã dhi-python:3.13
ã€ã¡ãŒãžã䜿çšããŠããŸãããä»ã® DHI ã€ã¡ãŒãžã§ãåæ§ã®æé ã§é©çšã§ããŸãã
ã¹ããã 1ïŒ Hardened Image ããã³ã³ãããèµ·åãã
ãŸããDHI ããŒã¹ã®ã³ã³ãããèµ·åããŠãåé¡ãåçŸããŠã¿ãŸããã:
$ docker run -d --name myapp <YOUR_ORG>/dhi-python:3.13 python -c "import time; time.sleep(300)"
ãã®ã³ã³ããã«ã¯ãsh
ã ps
ãtop
ãcat
ãªã©ã®ããŒã«ã¯å«ãŸããŠããŸããã
ããšãã°ã次ã®ããã«ããŠã·ã§ã«ã§æ¥ç¶ããããšãããš:
$ docker exec -it myapp sh
次ã®ãããªãšã©ãŒã衚瀺ãããŸã:
exec: "sh": executable file not found in $PATH
ã¹ããã 2ïŒDocker Debug ã䜿ã£ãŠã³ã³ããã調æ»ãã
docker debug
ã³ãã³ãã䜿çšãããšãããŒã«ãæã£ãäžæçãªãããã°çšã³ã³ããããå®è¡äžã®ã³ã³ããã«ã¢ã¿ããã§ããŸãã
$ docker debug myapp
ãã®ç¶æ ã§ãå®è¡äžã®ããã»ã¹ããããã¯ãŒã¯ç¶æ³ãããŠã³ãããããã¡ã€ã«ãªã©ã調æ»ã§ããŸãã
ããšãã°ãå®è¡äžã®ããã»ã¹ã確èªããã«ã¯:
$ ps aux
ãããã°ã»ãã·ã§ã³ãçµäºããã«ã¯:
$ exit
次ã®ã¹ããã
Docker Debug ã䜿ãã°ãå ã®ã€ã¡ãŒãžã®å®å šæ§ãæãªãããšãªããããŒããã³ã°ãããã³ã³ãããå®å šã«ãã©ãã«ã·ã¥ãŒãã§ããŸãã
ãããã°çšã³ã³ããã¯äžæçãã€åé¢ãããç°å¢ã§åäœãããããæ¬çªç°å¢ã«ã»ãã¥ãªãã£ãªã¹ã¯ãæã¡èŸŒãŸãã«èª¿æ»ãè¡ããŸãã
ããŒããã·ã§ã³ãããŒããã·ã§ã«ã®æ¬ åŠãããã±ãŒãžãããŒãžã£ã®äžè¶³ãªã©ã«é¢ããåé¡ãçºçããå Žåã¯ãDocker Hardened Images ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã° ãåç §ããŠãã ãããæšå¥šãããå¯ŸåŠæ³ãåé¿çã玹ä»ãããŠããŸãã