Dockerã¯éçºãšå±éã®ãµã€ã¯ã«ãé«éåãããããéåžžã«çæéã§æ¢è£œã®ã³ãŒããé
ä¿¡ã§ããŸãã ãããããã®ã³ã€ã³ã«ã¯æ¬ ç¹ããããŸã-ã»ãã¥ãªãã£ã Dockerã«ãã£ãŠã»ãã¥ãªãã£ã圱é¿ãåããå€ãã®äºé
ã«ã€ããŠç¥ã䟡å€ãããããã®èšäºã§èª¬æããã®ã¯ãããã«ã€ããŠã§ãã Dockerã«ãããã€ãããã€ã¡ãŒãžããããªããèæ
®ããŠããªããããããªãæ°ããã»ãã¥ãªãã£åé¡ã®åå ãšãªã5ã€ã®å
žåçãªç¶æ³ãèŠãŠãããŸãã ãŸãããããã®åé¡ã解決ããããã®ã¯ãŒã«ãªããŒã«ãæ€èšããå±éæã«ãã¹ãŠã®ããããéããŠããããšã確èªããããã«äœ¿çšã§ããã¢ããã€ã¹ãæäŸããŸãã
1.ç»åã®ä¿¡é Œæ§
åé¡ããå§ããŸããããããã¯ãããããDockerèªäœã®æ§è³ªã®äžå¯æ¬ ãªéšåã§ãããã€ã¡ãŒãžã®ä¿¡é Œæ§ã§ãã
Dockerã䜿çšããããšãããå Žåã¯ãNGINXãRedisãUbuntuãAlpine Linuxãªã©ããµããŒããããŠãããªããžããªã®å
¬åŒãªã¹ãã®ç»åãªã©ãã»ãŒãã¹ãŠã®ç»åã«ã³ã³ãããŒãé
眮ã§ããããšã«æ³šæããŠãã ãããããã³ä»ã®ã
ãã®çµæãç§ãã¡ã«ã¯èšå€§ãªéžæè¢ããããŸãã
1ã€ã®ã³ã³ããã§ãã¹ãŠã®åé¡ã解決ããªãå Žåã¯ãå¥ã®ã³ã³ããã«äº€æã§ããŸãã ãããããã®ãããªã¢ãããŒãã¯æãå®å
šã§ããïŒ
ããªããç§ã«åæããªãå Žåãå¥ã®èгç¹ãããã®åé¡ãèŠãŠã¿ãŸãããã
ã¢ããªã±ãŒã·ã§ã³ãéçºãããšããããã±ãŒãžãããŒãžã£ãŒã䜿çšãããšãä»ã®èª°ãã®ã³ãŒããç°¡åã«äœ¿çšã§ããŸãããéçºäžã«ãã®æãããã³ãŒãã䜿çšãã䟡å€ã¯ãããŸããïŒ ãŸãã¯ãåæããŠããªãã³ãŒããå¥å
šãªã¬ãã«ã®çãã§åŠçããå¿
èŠããããŸããïŒ ã»ãã¥ãªãã£ãããªãã«ãšã£ãŠäœããæå³ããã®ã§ããã°ãããªãã®ä»£ããã«ãã³ãŒããã¢ããªã±ãŒã·ã§ã³ã«çµ±åããåã«åžžã«æ³šææ·±ããã§ãã¯ããŸãã
ç§ã¯æ£ããã§ãã
ãŸããåãçãã§ãDockerã³ã³ãããèæ
®ããå¿
èŠããããŸãã
ã³ãŒãã®äœæè
ãããããªãå Žåãéžæããã³ã³ããã«ä»ã®æªæã®ããã³ãŒãã®ãã€ããªãå«ãŸããŠããªãããšãã©ã®ããã«ããŠç¢ºèªã§ããŸããïŒ
確ãã«ãããã«ã¯ç¢ºå®æ§ã¯ãããŸããã
ãããã®æ¡ä»¶äžã§ã3ã€ã®ãã³ããæäŸã§ããŸãã
ãã©ã€ããŒããŸãã¯ä¿¡é Œã§ãããªããžããªã䜿çšãã
ãŸãã ä¿¡é Œã§ããDocker Hubãªããžããªãªã©ããã©ã€ããŒããŸãã¯ä¿¡é Œã§ãããªããžããªã䜿çšã§ããŸã ã
å
¬åŒãªããžããªã«ã¯æ¬¡ã®ç»åããããŸãã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒUbuntuãªã©ïŒ
- ããã°ã©ãã³ã°èšèªïŒPHPããã³RubyïŒ
- ãµãŒããŒïŒMySQLãPostgreSQLãRedisïŒ
ãšãããDocker Hubãä»ã®ãªããžããªãšåºå¥ããã®ã¯ãç»åãåžžã«Dockerã®ã»ãã¥ãªãã£ã¹ãã£ã³ãµãŒãã¹ã«ãã£ãŠã¹ãã£ã³ããã³è¡šç€ºãããããšã§ãã
ãã®ãµãŒãã¹ã«ã€ããŠèããããšããªãå Žåã¯ããã®ããã¥ã¡ã³ãããã®åŒçšã以äžã«ç€ºããŸãã
Docker Cloudããã³Docker Hubã¯ããã©ã€ããŒããªããžããªå
ã®ç»åãã¹ãã£ã³ããŠãæ¢ç¥ã®è匱æ§ããªãããšã確èªã§ããŸãã ãã®åŸãåç»åã¿ã°ã®ã¹ãã£ã³çµæã«é¢ããã¬ããŒããéä¿¡ããŸãã
ãã®çµæãå
¬åŒãªããžããªã䜿çšãããšãã³ã³ãããå®å
šã§ãããæªæã®ããã³ãŒããå«ãŸããŠããªãããšãããããŸãã
ãã®ãªãã·ã§ã³ã¯ããã¹ãŠã®ææé¢çšã§å©çšã§ããŸãã ç¡æã®æéã§ãããããããŸãããæéå¶éããããŸãã ãã§ã«ææã®é¢çšã䜿çšããŠããå Žåã¯ãã¹ãã£ã³æ©èœã䜿çšããŠãã«ã¹ã¿ã ã³ã³ãããŒã®å®å
šæ§ãšãã³ã³ãããŒã«äžæãªè匱æ§ããããã©ããã確èªã§ããŸãã
ããã«ããããã©ã€ããŒããªããžããªãäœæããçµç¹å
ã§äœ¿çšã§ããŸãã
Docker Content Trustã䜿çšãã
䜿çšãã䟡å€ã®ãããã1ã€ã®ããŒã«ã¯ã Docker Content Trustã§ãã
ããã¯Docker Engine 1.8ã§å©çšå¯èœãªæ°æ©èœã§ãã ç»åã®ææè
ã確èªã§ããŸãã
Dockerã®ã»ãã¥ãªãã£ã¹ãã·ã£ãªã¹ãã§ããDiogoMónicaã«ããæ°ãããªãªãŒã¹ã«é¢ããèšäºããã®åŒçšïŒ
äœæè
ããªã¢ãŒãã¬ãžã¹ããªã«ç»åãå
¬éããåã«ãDocker Engineã¯äœæè
ã®ç§å¯ããŒã§ãã®ç»åã«çœ²åããŸãã ãã®ç»åãèªåã«ã¢ããããŒããããšãDocker Engineã¯å
¬éããŒã䜿çšããŠããã®ç»åãäœæè
ãæçš¿ãããã®ã§ãããåœç©ã§ã¯ãªãããã¹ãŠã®ææ°ã®æŽæ°ãããããšã確èªããŸãã
ãŸãšãããšã ãã®ãµãŒãã¹ã¯ãåœé ããªãã¬ã€æ»æãããã³ããŒã®äŸµå®³ãããŠãŒã¶ãŒãä¿è·ããŸãã ãã®èšäºãšå
¬åŒããã¥ã¡ã³ããèªãããšã匷ããå§ãããŸãã
Dockerãã³ãã»ãã¥ãªãã£
æè¿äœ¿çšããå¥ã®ããŒã«ã¯Docker Bench Securityã§ãã ããã¯ãéçšç°å¢ã§ã®ã³ã³ããã®å±éã«é¢ããæšå¥šäºé
ã®å€§èŠæš¡ãªéžæã§ãã
ãã®ããŒã«ã¯ã CIS Docker 1.13 Benchmarkã®æšå¥šäºé
ã«åºã¥ããŠããã6ã€ã®åéã§äœ¿çšãããŠããŸãã
- ãã¹ãæ§æ
- DockerããŒã¢ã³ã®æ§æã
- DockerããŒã¢ã³æ§æãã¡ã€ã«ã
- ã³ã³ããã€ã¡ãŒãžãšãã«ããã¡ã€ã«ã
- ã©ã³ã¿ã€ã ã³ã³ããã
- Dockerã»ãã¥ãªãã£æäœã
ãããã€ã³ã¹ããŒã«ããã«ã¯ã次ã䜿çšããŠãªããžããªãã¯ããŒã³
git clone git@github.com:docker/docker-bench-security.git
次ã«ã cd docker-bench-secutity
ãšå
¥åããŠã次ã®ã³ãã³ããå®è¡ããŸãã
docker run -it --net host --pid host --cap-add audit_control \ -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \ -v /var/lib:/var/lib \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc:/etc --label docker_bench_security \ docker/docker-bench-security
ãããã£ãŠãã³ã³ãããåéãããã¹ããã·ã³ãšãã®ã³ã³ããã®ã»ãã¥ãªãã£ããã§ãã¯ããã¹ã¯ãªãããå®è¡ããŸãã
以äžã¯ãããªããéäžã§åŸããã®ã®äŸã§ãã

ã芧ã®ãšãããåºåã¯è²åããããæç¢ºãªè©³çްã§ããããã¹ãŠã®ãã§ãã¯ãšãã®çµæãèŠãããšãã§ããŸãã
ç§ã®å Žåãããã€ãã®ä¿®æ£ãå¿
èŠã§ãã
ãã®æ©èœã§ç¹ã«æ°ã«å
¥ã£ãŠããã®ã¯ãèªååã§ããããšã§ãã
ãã®çµæãç¶ç¶çãªææžåãµã€ã¯ã«ã«å«ãŸããæ©èœãååŸããã³ã³ããã®å®å
šæ§ãæ€èšŒããã®ã«åœ¹ç«ã¡ãŸãã
2.远å ã®ãã¯ãŒ
次ã®ç¬éã ç§ãèŠããŠããéããäœåãªåã®åé¡ã¯åžžã«äºå®ã§ããã Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ããã¢ã¡ã¿ã«ãµãŒããŒã«ã€ã³ã¹ããŒã«ããæç¹ã§ãä»®æ³ãã·ã³å
ã«ã²ã¹ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšããŠã€ã³ã¹ããŒã«ãããããã«ãªããŸããã
Dockerã³ã³ããå
ã«ã€ã³ã¹ããŒã«ãããããšãã£ãŠãããããããå®å
šã«ãªã£ãããã§ã¯ãããŸããã
ããã«ãDockerã§ã¯é£æåºŠã次ã®ããã«å¢å ããŸããã çŸåšãã²ã¹ããšãã¹ãã®å¢çã¯äžæç¢ºã§ãã Dockerã«ã€ããŠã¯ã2ã€ã®ããšã«çŠç¹ãåœãŠãŠããŸãã
- ç¹æš©ã¢ãŒãã³ã³ãããŒ
- 远å ã®ã³ã³ããæš©é
æåã®ç¹ã«é¢ããŠã¯ãç¹æš©ãªãã·ã§ã³ã䜿çšããŠDockerã³ã³ãããŒãå®è¡ã§ããŸãããã®åŸããã®ã³ã³ãããŒã¯æ¡åŒµç¹æš©ãæã¡ãŸãã
ããã¥ã¡ã³ãããåŒçšïŒ
ã³ã³ããã¯ãã¹ãŠã®æ©èœãžã®ã¢ã¯ã»ã¹ãååŸããcgroup-controllerã«ãã£ãŠåŒãèµ·ãããããã¹ãŠã®å¶éãåé€ããŸãã ã€ãŸããã³ã³ããã¯ãã¹ããšã»ãŒåãããšããã¹ãŠå®è¡ã§ããããã«ãªããŸããã ãã®ææ³ã«ãããDockerå
ã§Dockerãå®è¡ãããªã©ãç¹å®ã®ã·ããªãªãå¯èœã«ãªããŸãã
ãã®ãããªæ©äŒã®ã¢ã€ãã¢ãã®ãã®ãããªããé
ããããªããªããç§ã¯é©ããå¿é
ããããã§ãããã
çå®ã¯ãéåžžã«ç¹å¥ãªå Žåãé€ããŠã现å¿ã®æ³šæãæã£ãŠãããªããã®ãªãã·ã§ã³ã䜿çšããå¿
èŠãããã®ãââæ³åã§ããŸããã
ãã®ãããªããŒã¿ã䜿çšããå Žåã¯ãåŒãç¶ã䜿çšããå Žåã¯ååã«æ³šæããŠãã ããã
ã¢ãŒãã³ãã©ãŠã³ããã®åŒçšïŒ
ã«ãŒãã§å®è¡ãããŠããä»ã®ããã»ã¹ãšåãæ¹æ³ã§åŠçããªãéããç¹æš©ã³ã³ããã䜿çšããªãã§ãã ããã
ãã ããã³ã³ãããç¹æš©ã¢ãŒãã§èµ·åããªãå Žåã§ãã1ã€ä»¥äžã®ã³ã³ããã«è¿œå æ©èœãå«ãŸããŠããå ŽåããããŸãã
ããã©ã«ãã§ã¯ãDockerã¯ããªãéãããæ©èœã»ããã§ã³ã³ãããèµ·åããŸãã
ãã ãããããã®æš©éã¯ãã«ã¹ã¿ã ãããã¡ã€ã«ã䜿çšããŠæ¡åŒµã§ããŸãã
DigitalOceanãsloppy.ioãdotCloudãQuay.ioãªã©ã®ãã³ããŒãå«ãDockerã³ã³ãããŒããã¹ãããå Žæã«å¿ããŠãããã©ã«ãèšå®ã¯ã客æ§ã®ãã®ãšã¯ç°ãªãå ŽåããããŸãã
ãŸããèªåã§ãã¹ãããããšãã§ããŸãããã®å Žåãã³ã³ããã®æš©éãæ€èšŒããããšãéèŠã§ãã
äžèŠãªç¹æš©ãšæ©äŒãæŸæ£ãã
ã©ãã«ãã¹ããããŠããŠãã Dockerã»ãã¥ãªãã£ã¬ã€ãã«èšèŒãããŠãããšããïŒ
ãŠãŒã¶ãŒãããããé€ããã¹ãŠã®æ©èœããªããã¢ãŠãããããšããå§ãããŸã
ãããã¯ããã»ã¹ã«å¿
èŠã§ãã
ãããã®è³ªåã«ã€ããŠèããŠãã ããïŒ
- ã¢ããªã±ãŒã·ã§ã³ã«ã¯ã©ã®ãããªãããã¯ãŒã¯æ¥ç¶ãå¿
èŠã§ããïŒ
- ãœã±ããã«çŽæ¥ã¢ã¯ã»ã¹ããå¿
èŠããããŸããïŒ
- 圌ã¯UDPèŠæ±ãéåä¿¡ããå¿
èŠããããŸããïŒ
ããã§ãªãå Žåã¯ããããã®æ©èœãç¡å¹ã«ããŸãã
ãã ããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ããã©ã«ãã§å¿
èŠãšãããªãç¹å¥ãªæ©èœãå¿
èŠã§ããïŒ ã¯ãã®å Žåããããã®æ©èœãæ¥ç¶ããŸãã
ãããã£ãŠãæ»æè
ã¯ãããã®æ©èœã«ã¢ã¯ã»ã¹ã§ããªããããã·ã¹ãã ãæå·ããèœåãå¶éããŸãã
ãããè¡ãã«ã¯ã --cap-drop
ããã³--cap-add
ãªãã·ã§ã³ã䜿çšããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§ããã»ã¹ã®æ©èœã倿Žããããç¹æš©ããŒãããã€ã³ããããããå¿
èŠã¯ãªãããã«ãŒãã«ã¢ãžã¥ãŒã«ãããŒãããã³ã¢ã³ããŒãããå¿
èŠããããšããŸãã 察å¿ããæ©èœã¯ã次ã®ããã«åé€ããã³è¿œå ã§ããŸãã
docker run \ --cap-drop SETPCAP \ --cap-drop NET_BIND_SERVICE \ --cap-add SYS_MODULE \ -ti /bin/sh
è©³çŽ°ãªæé ã«ã€ããŠã¯ãDockerã®ããã¥ã¡ã³ããåç
§ããŠãã ãããã ã©ã³ã¿ã€ã ç¹æš©ãšLinuxæ©èœ ã
3.ã·ã¹ãã ã®ã»ãã¥ãªãã£
ããŠãããªãã¯å®çžŸã®ããã€ã¡ãŒãžã䜿çšããŠãããã³ã³ããã®éå°ãªèš±å¯ãåæžãŸãã¯åé€ããŸããã
ãããããã®ã€ã¡ãŒãžã¯ã©ãã»ã©å®å
šã§ããïŒ
ããšãã°ãæ»æè
ãã³ã³ããã«çªç¶ã¢ã¯ã»ã¹ããå Žåãã©ã®ãããªæš©å©ããããŸããïŒ èšãæããã°ãããªãã¯ã©ã®ãããããªãã®ã³ã³ãããä¿è·ããŸãããïŒ
ã³ã³ããã«å
¥ãã®ããšãŠãç°¡åãªããããã¯ããããçš®é¡ã®ããšãåãããã«ç°¡åã«ã§ãããšããããšã§ããïŒ ãããããªããããã¯ããªãã®ã³ã³ããã匷åããæã§ãã
ãã¡ãããåå空é cgroup
amã®ãããã§ãDockerã¯ããã©ã«ãã§å®å
šã§ããããããã®é¢æ°ã« cgroup
äŸåããã¹ãã§ã¯ãããŸããã
ããã«é²ãã§ã AppArmor ã SELinux ã grsecurityã Seccompãªã©ã®ä»ã®Linuxã»ãã¥ãªãã£ããŒã«ãå©çšã§ããŸãã
ãããã®åããŒã«ã¯çèãããæŠãã§ãã¹ããããŠãããã³ã³ããã®ãã¹ãã»ãã¥ãªãã£ãããã«åŒ·åããã®ã«åœ¹ç«ã¡ãŸãã
ãããã®ããŒã«ã䜿çšããããšããªãå Žåãããããã®ç°¡åãªæŠèŠã以äžã«ç€ºããŸãã
é²å
·
ããã¯ãã·ã¹ãã 管çè
ãåã
ã®ããã°ã©ã ãããã¡ã€ã«ã䜿çšããŠããã°ã©ã ã®æ©èœãå¶éã§ããLinuxã«ãŒãã«ã»ãã¥ãªãã£ã¢ãžã¥ãŒã«ã§ãã ãããã¡ã€ã«ã¯ãäžèŽãããã¹äžã®ãã¡ã€ã«ã®èªã¿åããæžã蟌ã¿ãå®è¡ãªã©ã®ã¢ã¯ã·ã§ã³ã®èš±å¯ãçºè¡ã§ããŸãã AppArmorã¯å¿
é ã¢ã¯ã»ã¹å¶åŸ¡ïŒMACïŒãæäŸãããããåŸæ¥ã®UnixïŒéæã¢ã¯ã»ã¹å¶åŸ¡ãDACïŒå¶åŸ¡ã¢ãã«ãè£å®ãã圹å²ãæãããŸãã AppArmorã¯ãããŒãžã§ã³2.6.36以éã®ã¡ã€ã³Linuxã«ãŒãã«ã«å«ãŸããŠããŸãã
åºå
žïŒ ãŠã£ãããã£ã¢
SELinux
Security-Enhanced LinuxïŒSELinuxïŒ-ã»ãã¥ãªãã£ã匷åãããLinuxïŒã¯ãåŸæ¥ã®éžæçã¢ã¯ã»ã¹å¶åŸ¡ã·ã¹ãã ãšäžŠè¡ããŠåäœã§ãã匷å¶ã¢ã¯ã»ã¹å¶åŸ¡ã·ã¹ãã ã®å®è£
ã§ãã
ãœãŒã¹- ãŠã£ãããã£ã¢ ã
Grsecurity
ããã¯ã匷å¶ã¢ã¯ã»ã¹å¶åŸ¡ãäž»èŠãªããŒã«ã«ããã³ãããã¯ãŒã¯æ
å ±ããŒã¿ã®ã©ã³ãã åã /proc
ããã³chroot()
jail
å¶éããããã¯ãŒã¯ãœã±ããå¶åŸ¡ãæ©èœç£èŠã远å ã®ç£æ»æ©èœãªã©ãã»ãã¥ãªãã£é¢é£ã®æ¹åãå«ãLinuxãããžã§ã¯ãã§ãã å
žåçãªã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã«ã·ã§ã«ã¢ã¯ã»ã¹ãæäŸãããµãŒããŒãªã©ãçãããå Žæããã®ãªã¢ãŒãæ¥ç¶ãåãå
¥ããWebãµãŒããŒããã³ã·ã¹ãã ã§ãã
ãœãŒã¹- ãŠã£ãããã£ã¢ ã
Seccomp
ããã¯ãLinuxã«ãŒãã«ã®ã³ã³ãã¥ãŒã¿ãŒã»ãã¥ãªãã£ãªããžã§ã¯ãã§ãã 2005幎3æ8æ¥ã«å
¬éãããããŒãžã§ã³2.6.12ã§ã¯ãã¡ã€ã³ã®Linuxã«ãŒãã«ãšããŒãžãããŸããã Seccompã䜿çšãããšãããã»ã¹ããã»ãŒããã¢ãŒãã«ããããšãã§ããŸãããã®ã¢ãŒãããwrite()
æ¢ã«éããŠãããã¡ã€ã«èšè¿°åã®exit()
ã sigreturn()
ã read()
ããã³write()
以å€ã®ã·ã¹ãã ã³ãŒã«ãè¡ãããšã¯ã§ããŸããã ããã»ã¹ãä»ã®ã·ã¹ãã ã³ãŒã«ãè¡ãããšãããšãã«ãŒãã«ã¯ããã»ã¹ãSIGKILL
匷å¶çµäºããŸãã ãããã£ãŠãSeccompã¯ã·ã¹ãã ãªãœãŒã¹ãä»®æ³åãããåã«ããã»ã¹ãåé¢ããŸãã
åºå
žïŒ ãŠã£ãããã£ã¢
ãã®èšäºã¯ãŸã ä»ã®ããšãæ±ã£ãŠããã®ã§ããããã®æè¡ãå®éã®äŸã§ç€ºãããããã詳现ãªèª¬æããããããããšã¯ã§ããŸããã
ãããããã«ããããããããããã«ã€ããŠããã«åŠã³ãç§ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«å®è£
ããããšã匷ããå§ãããŸãã
4.å©çšå¯èœãªãªãœãŒã¹ã®æ¶è²»ãå¶éãã
ã¢ããªã±ãŒã·ã§ã³ã«ã¯äœãå¿
èŠã§ããïŒ
ããã¯ã50Mbãè¶
ããã¡ã¢ãªãæ¶è²»ããªãå®å
šã«è»œéãªã¢ããªã±ãŒã·ã§ã³ã§ããïŒ ããã§ã¯ãªã圌ã«ãã£ãšãããã®ã§ããããïŒ ã¢ããªã±ãŒã·ã§ã³ã¯ã4 + CPUãå¿
èŠãšããããéäžçãªåŠçãå®è¡ããŸããïŒ ãã®åŸã圌ã«ããããžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸããããã以äžã¯èš±å¯ããŸããã
é²è¡äžã®éçºããã»ã¹ã«åæããããã¡ã€ãªã³ã°ããã³ãããŒã¯ãå«ããå Žåãã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªãªãœãŒã¹ãç¥ã£ãŠããå¿
èŠããããŸãã
ãããã£ãŠãã³ã³ãããå±éãããšãã¯ãæãå¿
èŠãªãã®ã«ã®ã¿ã¢ã¯ã»ã¹ã§ããããã«ããŠãã ããã
ãããè¡ãã«ã¯ãDockerã§æ¬¡ã®ã³ãã³ãã䜿çšããŸãã
-m / --memory:
å
¬åŒã®Dockerããã¥ã¡ã³ãããã®èšå®äŸã¯æ¬¡ã®ãšããã§ãã
version: '3' services: redis: image: redis:alpine deploy: resources: limits: cpus: '0.001' memory: 50M reservations: memory: 20M
詳现ã«ã€ããŠã¯ã docker help run
ã䜿çšããããDockerããã¥ã¡ã³ãã®ã ãªãœãŒã¹ã®ã©ã³ã¿ã€ã å¶çŽ ãã»ã¯ã·ã§ã³ãåç
§ããŠãã ããã
5.倧ããªæ»æå¯Ÿè±¡
èæ
®ã«å€ããæåŸã®ã»ãã¥ãªãã£ã®åŽé¢ã¯ãDockerã®åäœæ¹æ³ã®çŽæ¥çãªçµæã§ããããã¯ãæœåšçã«éåžžã«å€§ããªæ»æå¯Ÿè±¡ãšãªããŸãã ã©ã®ITçµç¹ããã®ãããªãªã¹ã¯ã«ãããããŠããŸãããç¹ã«ã³ã³ããã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžæçãªæ§è³ªã«äŸåããŠãããªã¹ã¯ã«ãããããŠããŸãã
Dockerã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ããã°ããäœæããã³ãããã€ããããããè¿
éã«åé€ã§ãããããçµç¹ã«ãããã€ãããŠããã¢ããªã±ãŒã·ã§ã³ã远跡ããããšã¯å°é£ã§ãã
ãã®ãããªç¶æ³ã§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããå€ãã®èŠçŽ ãæ»æãããå¯èœæ§ããããŸãã
çµç¹å
ã®ã¢ããªã±ãŒã·ã§ã³å±éã®çµ±èšæ
å ±ã¯ææ°ã§ããïŒ æ¬¡ã«ã次ã®è³ªåãèªåããŠãã ããã
- çŸåšå±éããŠããã¢ããªã±ãŒã·ã§ã³ã¯äœã§ããïŒ
- 誰ãããããå±éããŸãããïŒ
- ãããã¯ãã€ãããã€ãããŸãããïŒ
- ãªãå±éãããã®ã§ããïŒ
- 圌ãã¯ã©ããããã®æéåãã¹ãã§ããïŒ
- ãããã®è²¬ä»»è
ã¯èª°ã§ããïŒ
- å®å
šæ§ã®ãã¹ããæåŸã«è¡ãããã®ã¯ãã€ã§ããïŒ
ãããã®è³ªåã«çããããšã¯ããã»ã©é£ãããªãããšãé¡ã£ãŠããŸãã ãããã«ãããå®éã«å®è¡ã§ããã¢ã¯ã·ã§ã³ãèŠãŠã¿ãŸãããã
æ£ãããã°ã䜿çšããŠç£æ»ãã°ãå±éããŸãã
ã¢ããªã±ãŒã·ã§ã³å
ã§ã¯ãéåžžãæ¬¡ã®ãããªãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãèšé²ãããŸãã
- ãŠãŒã¶ãŒãã¢ã«ãŠã³ããäœæãããšã
- 圌ããããæŽ»æ§åãããšã
- ãŠãŒã¶ãŒãæåŸã«ãã¹ã¯ãŒãã倿Žãããšããªã©ã
ãããã®ã¢ã¯ã·ã§ã³ã«å ããŠãçµç¹ã§äœæããã³å±éãããåã³ã³ããã®ã¢ã¯ã·ã§ã³ã远跡ããå¿
èŠããããŸãã
ãã®äŒèšãäžå¿
èŠã«è€éã«ããå¿
èŠã¯ãããŸããã æ¬¡ã®ãããªæŽ»åã®èšé²ãä¿æããå¿
èŠããããŸãã
- ã¢ããªã±ãŒã·ã§ã³ããããã€ããããšã
- 誰ããããå±éããŸãã
- ãªãå±éãããã®ã§ããïŒ
- åœŒã®æå³ã¯äœã§ãã
- ãã€æ¢ããã
ç¶ç¶çãªéçºã®ããã®ããŒã«ã®ã»ãšãã©ã¯ããã®æ
å ±ãèšé²ã§ããã¯ãã§ãããã®ãããªãªãã·ã§ã³ã¯ãããŒã«èªäœã§ããŸãã¯ç¹å®ã®ããã°ã©ãã³ã°èšèªã®ã«ã¹ã¿ã ã¹ã¯ãªããã®å©ããåããŠå©çšã§ããã¯ãã§ãã
ããã«ãã¡ãŒã«ãŸãã¯ãã®ä»ã®æ¹æ³ïŒIRCãSlackããŸãã¯HipChatïŒã§éç¥ãå®è£
ãã䟡å€ããããŸãã ãã®ææ³ã«ãããäœãå±éãããŠããããå
šå¡ã確èªã§ããããã«ãªããŸãã
ãããã£ãŠãäœãäžé©åãªããšãçºçããå Žåããããé ãããšã¯ã§ããŸããã
åŸæ¥å¡ãžã®ä¿¡é Œããããããšã¯ãå§ãããŸããããäœãèµ·ããŠããã®ããåžžã«èªèããŠããããšããå§ãããŸãã ãã®èšäºãçµããåã«ã誀解ããªãã§ãã ããã
ããªããè¹å€ã«é£ã³èŸŒãã§ãå€ãã®æ°ããããã»ã¹ã®äœæã«åæºããããšã¯ãå§ãããŸããã
ãã®ãããªã¢ãããŒãã¯ãããããã³ã³ããã®äœ¿çšãããããå©ç¹ã奪ãã ãã§ãããå®å
šã«äžèŠã§ãã
ããã§ããå°ãªããšããããã®åé¡ãçèãããã®åŸå®æçã«ãããã«æéãå²ããšãããå€ãã®æ
å ±ãåŸãŠãå€éšã®æ»æã«ãããããå¯èœæ§ã®ããçµç¹å
ã®ãã¯ã€ãã¹ãããã®æ°ãæžããããšãã§ããŸãã
ãããã«
ããã§ã5ã€ã®Dockerã»ãã¥ãªãã£ã®åé¡ãšããããã®è§£æ±ºçãããã€ãæ€èšããŸããã
Dockerã«åãæ¿ããŠãããããã§ã«Dockerã«åãæ¿ããŠããããšãé¡ã£ãŠããŸãããããã念é ã«çœ®ããã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªã¬ãã«ã®ä¿è·ãæäŸã§ããããã«ããŠãã ããã Dockerã¯é©ãã¹ãæè¡ã§ããããããŸã§èŠãããªãã£ãããšã¯æ®å¿µã§ãã
ãã®èšäºã«èšèŒãããŠããæ
å ±ãããã¹ãŠã®äºæããªãåé¡ãã身ãå®ãã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
èè
ã«ã€ããŠ
ãã·ã¥ãŒã»ãã¿ãŒã¯ã ç¬ç«ããéçºè
ããã³ãã¯ãã«ã«ã©ã€ã¿ãŒã§ãã 圌ã¯ãã¹ãã¢ããªã±ãŒã·ã§ã³ã®äœæãå°éãšããŠãããç¶ç¶çãªéçºããã¹ããã»ãã¥ãªãã£ãªã©ã®ææ°ã®éçºæ¹æ³ã«ã€ããŠæžããŠããŸãã
ãã®èšäºã¯ã Docker Security Best Practicesã®ç¿»èš³ã§ãã