
ãããã®èšäºã¯Docker 1.1.2ã«ãã£ãŠäœæãããŸããã ãã以æ¥ãå€ãã®äŸ¿å©ãªããšãDockerã«ç»å ŽããŸãããããã«ã€ããŠã¯ããã®èšäºã§èª¬æããŸãã ãŸããDocker Composeã«ã€ããŠã詳ããèŠãŠãããŸããDockerComposeã¯ã1ã€ã®ãã¡ã€ã«ã«ãã¹ãŠã®äŸåé¢ä¿ãæã€ãã«ãã³ã³ãããŒã¢ããªã±ãŒã·ã§ã³ãå®çŸ©ãããã®ã¢ããªã±ãŒã·ã§ã³ã1ã€ã®ã³ãã³ãã§å®è¡ã§ãããŠãŒãã£ãªãã£ã§ãã äŸã¯ã InfoboxCloudã®ã¯ã©ãŠããµãŒããŒã§å®æŒãããŸãã
InfoboxCloudã«DockerãšComposeãã€ã³ã¹ããŒã«ãã
DockerãInfoboxCloudã«ã€ã³ã¹ããŒã«ããã«ã¯ãCentOS 7ä»®æ³ãã·ã³ãäœæããããšããå§ãããŸã ã æ¬çªç°å¢ã§CoreOS / Fedora Atomic / Ubuntu Snappyã䜿çšããããšã¯ãäŸç¶ãšããŠãªã¹ã¯ãé«ãããŸãã Dockerãæ©èœããããã«ã¯ããŸãã«ä»å¿ èŠãªä»®æ³ãã·ã³ã§ãããã®ããããµãŒããŒãäœæãããšãã¯ã ãOSã«ãŒãã«å¶åŸ¡ãèš±å¯ãããããã¯ã¹ãå¿ ããã§ãã¯ããŠãã ããã
InfoboxCloud for Dockerã§ãµãŒããŒãäœæããæ¹æ³
InfoboxCloudã«ãŸã ã¢ã¯ã»ã¹ã§ããªãå Žåã¯ã 泚æããŠãã ãã ã
ã¯ã©ãŠãã䜿çšãããšãæé¡æéããªãããéåžžã«äŸ¿å©ã§ãã ç»é²æã«ã¯ãäžåºŠã«å°ãªããšã500ã«ãŒãã«ãã¢ã«ãŠã³ãã«è£å ãïŒæºåž¯é»è©±äŒç€ŸããSIMã«ãŒããè³Œå ¥ããã®ãšåæ§ïŒãå¿ èŠã«å¿ããŠã¯ã©ãŠãã䜿çšã§ããŸãã ããã§ã 1ãæãããã®ã¯ã©ãŠããµãŒããŒã®ã³ã¹ããç°¡åã«èšç®ã§ããŸã ïŒããšãã°ã2000ã®ã¬ãã«ãã§ã¯ãªãã2ã®ã¬ãã«ãã®åšæ³¢æ°ãªã©ãæ£ãããµã€ãºãæå®ããŸãïŒã æ¯æãã¯1æéããšã«è¡ãããã¢ã«ãŠã³ãã§åçµãããŸãã èªåã¹ã±ãŒãªã³ã°ã䜿çšãããã䜿çšå¯èœãªãµãŒããŒãªãœãŒã¹ã®éãæåã§å€æŽãããšãå¿ èŠãªãªãœãŒã¹ã«ã®ã¿æéãæ¯æãããšãã§ããããã«å¿ èŠã«å¿ããŠãªãœãŒã¹ãç¯çŽããããå€ãã®ãªãœãŒã¹ãååŸã§ããŸãã
ç»é²åŸãé»åã¡ãŒã«ã§ã³ã³ãããŒã«ããã«ã«ã¢ã¯ã»ã¹ããããã®ããŒã¿ãåãåããŸãã https://panel.infobox.ruã§ã³ã³ãããŒã«ããã«ã«ãã°ã€ã³ããŸãã
ãµãã¹ã¯ãªãã·ã§ã³ã®[ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£]ã»ã¯ã·ã§ã³ã§ã[æ°ãããµãŒããŒ]ãã¯ãªãã¯ããŸãïŒå¿ èŠã«å¿ããŠãããããããŠã³ã¡ãã¥ãŒã®å³äžé ã«ãããµãã¹ã¯ãªãã·ã§ã³ãå€æŽãããŸãïŒã
å¿ èŠãªãµãŒããŒãã©ã¡ãŒã¿ãèšå®ããŸãã äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããã«ããµãŒããŒã«1ã€ã®ãããªãã¯IPã¢ãã¬ã¹ãäžãã ãOSã«ãŒãã«å¶åŸ¡ãèš±å¯ãããããã¯ã¹ããã§ãã¯ããŠãã ããã
䜿çšå¯èœãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ãªã¹ãã§ãCentOS 7ãéžæãããµãŒããŒã®äœæãå®äºããŸãã
ãã®åŸããµãŒããŒã«ã¢ã¯ã»ã¹ããããã®ããŒã¿ãé»åã¡ãŒã«ã§éä¿¡ãããŸãã
ã¯ã©ãŠãã䜿çšãããšãæé¡æéããªãããéåžžã«äŸ¿å©ã§ãã ç»é²æã«ã¯ãäžåºŠã«å°ãªããšã500ã«ãŒãã«ãã¢ã«ãŠã³ãã«è£å ãïŒæºåž¯é»è©±äŒç€ŸããSIMã«ãŒããè³Œå ¥ããã®ãšåæ§ïŒãå¿ èŠã«å¿ããŠã¯ã©ãŠãã䜿çšã§ããŸãã ããã§ã 1ãæãããã®ã¯ã©ãŠããµãŒããŒã®ã³ã¹ããç°¡åã«èšç®ã§ããŸã ïŒããšãã°ã2000ã®ã¬ãã«ãã§ã¯ãªãã2ã®ã¬ãã«ãã®åšæ³¢æ°ãªã©ãæ£ãããµã€ãºãæå®ããŸãïŒã æ¯æãã¯1æéããšã«è¡ãããã¢ã«ãŠã³ãã§åçµãããŸãã èªåã¹ã±ãŒãªã³ã°ã䜿çšãããã䜿çšå¯èœãªãµãŒããŒãªãœãŒã¹ã®éãæåã§å€æŽãããšãå¿ èŠãªãªãœãŒã¹ã«ã®ã¿æéãæ¯æãããšãã§ããããã«å¿ èŠã«å¿ããŠãªãœãŒã¹ãç¯çŽããããå€ãã®ãªãœãŒã¹ãååŸã§ããŸãã
ç»é²åŸãé»åã¡ãŒã«ã§ã³ã³ãããŒã«ããã«ã«ã¢ã¯ã»ã¹ããããã®ããŒã¿ãåãåããŸãã https://panel.infobox.ruã§ã³ã³ãããŒã«ããã«ã«ãã°ã€ã³ããŸãã
ãµãã¹ã¯ãªãã·ã§ã³ã®[ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£]ã»ã¯ã·ã§ã³ã§ã[æ°ãããµãŒããŒ]ãã¯ãªãã¯ããŸãïŒå¿ èŠã«å¿ããŠãããããããŠã³ã¡ãã¥ãŒã®å³äžé ã«ãããµãã¹ã¯ãªãã·ã§ã³ãå€æŽãããŸãïŒã

å¿ èŠãªãµãŒããŒãã©ã¡ãŒã¿ãèšå®ããŸãã äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããã«ããµãŒããŒã«1ã€ã®ãããªãã¯IPã¢ãã¬ã¹ãäžãã ãOSã«ãŒãã«å¶åŸ¡ãèš±å¯ãããããã¯ã¹ããã§ãã¯ããŠãã ããã

䜿çšå¯èœãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ãªã¹ãã§ãCentOS 7ãéžæãããµãŒããŒã®äœæãå®äºããŸãã

ãã®åŸããµãŒããŒã«ã¢ã¯ã»ã¹ããããã®ããŒã¿ãé»åã¡ãŒã«ã§éä¿¡ãããŸãã
CentOS 7ã§ãµãŒããŒãäœæããåŸã SSHãä»ããŠãµãŒããŒã«æ¥ç¶ããŸãã
ãã®ãããªãµãŒããŒã§DockerãšDockerãæäœããããã®äŸ¿å©ãªãŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ã§ããã¹ã¯ãªãããæºåããŸããã å¿ èŠãªèšå®ã¯èªåçã«è¡ãããŸãã
ã³ãã³ããå®è¡ããŠDockerããã³Composeãã€ã³ã¹ããŒã«ããŸãã
bash <(curl -s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh)
ã¹ã¯ãªããã¯äœãããŸãã
1. OSãæŽæ°ããŸãã
2.åŸçœ®ãåæ¢ããèªåéå§ãçŠæ¢ããŸãã Postfixã¯ããŒã25ãå æããŸãããDockerã®ãµãŒãã¹ã«ã¯ãã®ããŒããå¿ èŠãªå ŽåããããŸãã
3.å ¬åŒã®Dockerãªããžããªãè¿œå ããdocker-engineãã€ã³ã¹ããŒã«ããŸãã
5. EPELãªããžããªãè¿œå ããpipãã€ã³ã¹ããŒã«ããpipã§Docker Composeãã€ã³ã¹ããŒã«ããŸãã
6. DockerãµãŒãã¹ãéå§ããã¹ã¿ãŒãã¢ããã«è¿œå ããŸãã
2.åŸçœ®ãåæ¢ããèªåéå§ãçŠæ¢ããŸãã Postfixã¯ããŒã25ãå æããŸãããDockerã®ãµãŒãã¹ã«ã¯ãã®ããŒããå¿ èŠãªå ŽåããããŸãã
3.å ¬åŒã®Dockerãªããžããªãè¿œå ããdocker-engineãã€ã³ã¹ããŒã«ããŸãã
5. EPELãªããžããªãè¿œå ããpipãã€ã³ã¹ããŒã«ããpipã§Docker Composeãã€ã³ã¹ããŒã«ããŸãã
6. DockerãµãŒãã¹ãéå§ããã¹ã¿ãŒãã¢ããã«è¿œå ããŸãã
InfoboxCloudã§ã®Dockerããã³Composeã®æŽæ°
æŽæ°ããã«ã¯ãã¹ã¯ãªãããå®è¡ããŸãã
bash <(curl -s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/update.sh)
ããŒãžã§ã³1.0ã®Dockerã®æ°æ©èœ
ãã®ã»ã¯ã·ã§ã³ã§ã¯ã ãã°ã®ä¿®æ£ãããã«ãŒã¢ãŒããã¯ãã£ã®æ¹åã«ã€ããŠã¯è§ŠããããŠãŒã¶ãŒã®äž»ãªæ°æ©èœã«ã€ããŠã®ã¿è§ŠããŸãã ããã¯ãDockeræ©èœã®ç¥èãæŽæ°ããã®ã«åœ¹ç«ã¡ãŸãã
1.1
Dockerignoreã®ãµããŒã
Dockerfileã®æšªã«.dockerignoreãã¡ã€ã«ãè¿œå ã§ããŸããDockerã¯ããã«ãã³ã³ããã¹ããdockerããŒã¢ã³ã«éä¿¡ãããšãã«ããã¡ã€ã«ã§æå®ããããã¡ã€ã«ãšãã£ã¬ã¯ããªãç¡èŠããŸãã
ã³ãããæã«ã³ã³ãããäžæåæ¢ãã
以åã¯ãã³ã³ãããå®è¡ããããã®ã³ãããã¯æšå¥šãããŸããã§ããã åææäœãšã³ãããäžã®æŽåæ§ã«éåããå¯èœæ§ããããŸãïŒããšãã°ãã³ãããäžã«èšé²ãè¡ãããå ŽåïŒã ããã§ãã³ãããæã«ã³ã³ãããäžæåæ¢ããŸãã
ãã®æ©èœãç¡å¹ã«ããå¿ èŠãããå Žåã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
ãã®æ©èœãç¡å¹ã«ããå¿ èŠãããå Žåã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
docker commit --pause=false <container_id>
ãã°ã®æçµè¡ãåºåãã
ããã§ãã³ã³ãããã°ã®æåŸã®è¡ã衚瀺ã§ããŸãã
以åã¯ããã°å šäœã衚瀺ããã³ãã³ãã䜿çšããŠãã°ã衚瀺ããŠããŸããã
次ã®ã³ãã³ãã䜿çšããŠãããšãã°ãã°ã®æåŸã®10è¡ã衚瀺ã§ããŸãã
ãŸãããã°å šäœãèªã¿åããã«ããã°ã«è¿œå ãããŠããå 容ãç£èŠããããšãã§ããŸãã
以åã¯ããã°å šäœã衚瀺ããã³ãã³ãã䜿çšããŠãã°ã衚瀺ããŠããŸããã
docker logs <container_id>
次ã®ã³ãã³ãã䜿çšããŠãããšãã°ãã°ã®æåŸã®10è¡ã衚瀺ã§ããŸãã
docker logs --tail 10 <container_id>
ãŸãããã°å šäœãèªã¿åããã«ããã°ã«è¿œå ãããŠããå 容ãç£èŠããããšãã§ããŸãã
docker logs --tail 0 -f <container_id>
Dockerã³ã³ãããæ§ç¯ãããšãã«ã³ã³ããã¹ããšããŠtarãã¡ã€ã«ããµããŒã
ããã§ãã³ã³ããã¹ããšããŠtarã¢ãŒã«ã€ããdockerãã«ãããã»ã¹ã«æž¡ãããšãã§ããŸãã
ã¢ãŒã«ã€ãã䜿çšããŠãDockerãã³ãã¬ãŒãã®ã¢ã»ã³ããªãèªååã§ããŸãã次ã«äŸã瀺ããŸãã
ã¢ãŒã«ã€ãã䜿çšããŠãDockerãã³ãã¬ãŒãã®ã¢ã»ã³ããªãèªååã§ããŸãã次ã«äŸã瀺ããŸãã
ãŸãã¯cat context.tar | docker build -
docker run builder_image | docker build -
ãã¹ããã¡ã€ã«ã·ã¹ãã å
šäœãã³ã³ããã«ããŠã³ãããæ©èœ
ããã§ã -volumesã«ãã¹ã/ãã¡ã€ã«ã·ã¹ãã ã®ã«ãŒããæž¡ãããšãã§ããŸãã
äŸïŒ
ãã ãããã¹ããã¡ã€ã«ã·ã¹ãã ãã³ã³ãã/ãã¡ã€ã«ã·ã¹ãã ã®ã«ãŒãã«ããŠã³ãããããšã¯çŠæ¢ãããŠãããã³ã³ããå ã®äžéšã®ãã©ã«ãã§ã®ã¿å¯èœã§ãã
äŸïŒ
docker run -v /:/host ubuntu:ro ls /my_host
ãã ãããã¹ããã¡ã€ã«ã·ã¹ãã ãã³ã³ãã/ãã¡ã€ã«ã·ã¹ãã ã®ã«ãŒãã«ããŠã³ãããããšã¯çŠæ¢ãããŠãããã³ã³ããå ã®äžéšã®ãã©ã«ãã§ã®ã¿å¯èœã§ãã
1.2
ã³ã³ããåèµ·åããªã·ãŒ
以åã¯ãã³ã³ããããšã«ãã·ã¹ãã ã®èµ·åæã«å®è¡ããç¬èªã®ã¹ã¯ãªãããäœæããå¿
èŠããããŸããã ããã§ãDockerãµãŒãã¹ã䜿çšããŠã³ã³ãããŒãåèµ·åã§ããŸãã
--restartãã©ã°ã¯ã次ã®ããªã·ãŒã䜿çšããŠdocker run ã³ãã³ãã«è¿œå ãããŸãã
dockerããŒã¢ã³ã®--restartãã©ã°ã¯ãæ°ãããªãã·ã§ã³ã®ããã«éæšå¥šã«ãªããŸããã
ããšãã°ãRedisãå«ãã³ã³ããã¯ãååšããéãç¡éã«äžæããããšããŸãã
å¥ã®äŸïŒã³ã³ãããæ£åžžã«çµäºããã«èœäžããå Žåã5åäžæããããšããŸãã
--restartãã©ã°ã¯ã次ã®ããªã·ãŒã䜿çšããŠdocker run ã³ãã³ãã«è¿œå ãããŸãã
- no-ã³ã³ãããã¯ã©ãã·ã¥ããå Žåãã³ã³ãããåèµ·åããŸããïŒããã©ã«ãïŒã
- on â failure-ã³ã³ããããŒã以å€ã®ã³ãŒãã§çµäºããå ŽåïŒã€ãŸããç°åžžãªå ŽåïŒãã³ã³ãããåèµ·åããŸãã åèµ·åã®è©Šè¡åæ°ã®ãªãã·ã§ã³ãæå®ããããšãã§ããŸãïŒå€±ææïŒ5ïŒ
- always-çµäºã³ãŒãã«é¢ä¿ãªããåžžã«ã³ã³ãããåèµ·åããŸãã
dockerããŒã¢ã³ã®--restartãã©ã°ã¯ãæ°ãããªãã·ã§ã³ã®ããã«éæšå¥šã«ãªããŸããã
ããšãã°ãRedisãå«ãã³ã³ããã¯ãååšããéãç¡éã«äžæããããšããŸãã
docker run --restart=always redis
å¥ã®äŸïŒã³ã³ãããæ£åžžã«çµäºããã«èœäžããå Žåã5åäžæããããšããŸãã
docker run --restart=on-failure:5 redis
--cap-add --cap-drop
ããŒãžã§ã³1.2ããåã§ã¯ãDockerã¯ãã¯ã€ããªã¹ããããã¹ãŠã®ç¹æš©ãŸãã¯ç¹æš©ã®ã¿ãåãåããä»ã®ãã¹ãŠãçŠæ¢ã§ããŸããã --privilegedãã©ã°ã䜿çšãããšããã¯ã€ããªã¹ãã«é¢ä¿ãªããã³ã³ããã«ãã¹ãŠã®æš©éãä»äžãããŸãã ããã¯æ¬çªç°å¢ã§ã¯æšå¥šãããŠããããæ¬åœã«å®å
šã§ã¯ãããŸããããã¹ãã§çŽæ¥äœæ¥ããŠããããã§ãã
ããŒãžã§ã³1.2ã§ã¯ã docker runã§äœ¿çšãã2ã€ã®æ°ãããã©ã°--cap-addãš--cap-dropãå°å ¥ãããŸããããããã®ãã©ã°ã䜿çšãããšãã³ã³ããã®èš±å¯å 容ãããæ£ç¢ºã«å¶åŸ¡ã§ããŸãã
ããšãã°ãã³ã³ããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¹ããŒã¿ã¹ãå€æŽããã«ã¯ïŒ
ã³ã³ããã§chownãç¡å¹ã«ããã«ã¯ïŒ
mknod以å€ã®ãã¹ãŠã解決ããã«ã¯ïŒ
ããŒãžã§ã³1.2ã§ã¯ã docker runã§äœ¿çšãã2ã€ã®æ°ãããã©ã°--cap-addãš--cap-dropãå°å ¥ãããŸããããããã®ãã©ã°ã䜿çšãããšãã³ã³ããã®èš±å¯å 容ãããæ£ç¢ºã«å¶åŸ¡ã§ããŸãã
ããšãã°ãã³ã³ããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¹ããŒã¿ã¹ãå€æŽããã«ã¯ïŒ
docker run --cap-add=NET_ADMIN ubuntu sh -c "ip link eth0 down"
ã³ã³ããã§chownãç¡å¹ã«ããã«ã¯ïŒ
docker run --cap-drop=CHOWN ...
mknod以å€ã®ãã¹ãŠã解決ããã«ã¯ïŒ
docker run --cap-add=ALL --capâdrop=MKNOD ...
-ããã€ã¹
以åã¯ã -privilegedã³ã³ããã§-vã䜿çšããŠããã€ã¹ãããŠã³ãããããšã«ãããã³ã³ããå
ã§ããã€ã¹ã䜿çšã§ããŸããã docker runã§--deviceãã©ã°ã䜿çšã§ããããã«ãªããŸãã ãããã«ããã-- privilegedãã©ã°ãªãã§ããã€ã¹ã䜿çšã§ããŸãã
ããšãã°ãã³ã³ããå ã§ããã€ã¹ã䜿çšããå ŽåïŒ
ããšãã°ãã³ã³ããå ã§ããã€ã¹ã䜿çšããå ŽåïŒ
docker run --device=/dev/snd:/dev/snd ...
æžã蟌ã¿å¯èœãª/etc/hostsã/etc/hostnameã/etc/resolv.conf
ããã§ãå®è¡äžã®ã³ã³ããã§/etc/hostsã/etc/hostnameã/etc/resolve.confãç·šéã§ããŸãã ããã¯ããããã®ãã¡ã€ã«ãäžæžãã§ãããã€ã³ããŸãã¯ãã®ä»ã®ãµãŒãã¹ãã€ã³ã¹ããŒã«ããå¿
èŠãããå Žåã«äŸ¿å©ã§ãã
ãããã®ãã¡ã€ã«ãžã®å€æŽã¯ãã³ã³ããã®ã¢ã»ã³ããªäžã«ä¿åããããçµæã®ç»åã«ã¯è¡šç€ºãããªãããšã«æ³šæããŠãã ããã å€æŽã¯ãå®è¡äžã®ã³ã³ããã«ã®ã¿è¡šç€ºãããŸãã
ãããã®ãã¡ã€ã«ãžã®å€æŽã¯ãã³ã³ããã®ã¢ã»ã³ããªäžã«ä¿åããããçµæã®ç»åã«ã¯è¡šç€ºãããªãããšã«æ³šæããŠãã ããã å€æŽã¯ãå®è¡äžã®ã³ã³ããã«ã®ã¿è¡šç€ºãããŸãã
1.3
docker execã«ããè¿œå ããã»ã¹ã®éå§
以åã¯ãsshdïŒã ãã§ãªãïŒãã³ã³ããã§æ©èœããããã«ã¯ãå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã§sshdããã»ã¹ãéå§ããå¿
èŠããããè¿œå ã®ãªã¹ã¯ãšãªãŒããŒããããçºçããŸããã ãããã°ã«ã¯ãã³ã³ãããžã®ã¢ã¯ã»ã¹ãéåžžã«éèŠã§ãã ãããã£ãŠãæ°ããdocker execã³ãã³ããè¿œå ãããŸãããããã«ããããŠãŒã¶ãŒã¯docker apiããã³CLIã䜿çšããŠã³ã³ãããŒå
ã®ããã»ã¹ãéå§ã§ããŸãã
ããšãã°ãã³ã³ããå ã«bashã»ãã·ã§ã³ãäœæããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
äž»ãªæšå¥šã¢ãããŒãã§ãããã³ã³ããããšã«1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¯å€æŽãããŠããŸããããéçºè ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãªãã£ã¹ããã»ã¹ãå¿ èŠãšãããŠãŒã¶ãŒã«äŒãã«è¡ããŸããã
ããšãã°ãã³ã³ããå ã«bashã»ãã·ã§ã³ãäœæããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
docker exec -it ubuntu_bash bash
äž»ãªæšå¥šã¢ãããŒãã§ãããã³ã³ããããšã«1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¯å€æŽãããŠããŸããããéçºè ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãªãã£ã¹ããã»ã¹ãå¿ èŠãšãããŠãŒã¶ãŒã«äŒãã«è¡ããŸããã
Docker Createã«ããã³ã³ãããŒã©ã€ããµã€ã¯ã«ç®¡çã®æ¹å
docker run image_nameã³ãã³ãã¯ãã³ã³ãããŒãäœæãããã®äžã§ããã»ã¹ãéå§ããŸãã å€ãã®ãŠãŒã¶ãŒã¯ãã³ã³ããã®ã©ã€ããµã€ã¯ã«ãããæ£ç¢ºã«å¶åŸ¡ããããã«ããããã®ã¿ã¹ã¯ãåé¢ããããšãæ±ããŠããŸãã docker createã³ãã³ãã¯ãããå¯èœã«ããŸãã
äŸïŒ
éå§ããã«ã¯ã次ãå®è¡ããŸãã
ãããã£ãŠã docker createã³ãã³ãã¯ãã©ã€ããµã€ã¯ã«ã管çããããã«docker startããã³docker stopã³ãã³ãã䜿çšããæè»æ§ããŠãŒã¶ãŒããã³/ãŸãã¯ããã»ã¹ã«äžããŸãã
äŸïŒ
ãã³ã³ããã¬ã€ã€ãäœæããã³ã³ããIDã衚瀺ããŸãããéå§ããŸãããdocker create -t -i fedora bash
éå§ããã«ã¯ã次ãå®è¡ããŸãã
docker start -a -i <container_id>
ãããã£ãŠã docker createã³ãã³ãã¯ãã©ã€ããµã€ã¯ã«ã管çããããã«docker startããã³docker stopã³ãã³ãã䜿çšããæè»æ§ããŠãŒã¶ãŒããã³/ãŸãã¯ããã»ã¹ã«äžããŸãã
ã»ãã¥ãªãã£ãªãã·ã§ã³--security-opt
ãã®ãªãªãŒã¹ã§ã¯ãæ°ãããã©ã°--security-optãè¿œå ããããŠãŒã¶ãŒãã«ã¹ã¿ã ã©ãã«ãšSELinuxããã³AppArmorãããã¡ã€ã«ãã«ã¹ã¿ãã€ãºã§ããããã«ãªããŸããã
ããšãã°ãã³ã³ããããã»ã¹ãApacheããŒãã§ã®ã¿ãªãã¹ã³ã§ããããã«ãã次ã®ããªã·ãŒã衚瀺ãããŸãã
ãã®æ©èœã®å©ç¹ã®1ã€ã¯ãSELinuxããã³AppArmorããµããŒãããã«ãŒãã«ã§ç¹æš©ã¢ãŒãã䜿çšããã«ããŠãŒã¶ãŒãdockerã³ã³ãããŒã§dockerã³ã³ãããŒãå®è¡ã§ããããã«ãªã£ãããšã§ãã ã³ã³ããã«ç¹æš©ãäžããªãããšã«ãããæœåšçãªè åšã®æ»æ察象é åãå€§å¹ ã«åæžã§ããŸãã
ããšãã°ãã³ã³ããããã»ã¹ãApacheããŒãã§ã®ã¿ãªãã¹ã³ã§ããããã«ãã次ã®ããªã·ãŒã衚瀺ãããŸãã
docker run --security-opt label:type:svirt_apache -i -t centos bash
ãã®æ©èœã®å©ç¹ã®1ã€ã¯ãSELinuxããã³AppArmorããµããŒãããã«ãŒãã«ã§ç¹æš©ã¢ãŒãã䜿çšããã«ããŠãŒã¶ãŒãdockerã³ã³ãããŒã§dockerã³ã³ãããŒãå®è¡ã§ããããã«ãªã£ãããšã§ãã ã³ã³ããã«ç¹æš©ãäžããªãããšã«ãããæœåšçãªè åšã®æ»æ察象é åãå€§å¹ ã«åæžã§ããŸãã
1.4
ãã®ãªãªãŒã¹ã§ã¯ãã»ãã¥ãªãã£ãå€§å¹ ã«æ¹åãããŠããŸãã
1.5
IPv6ãµããŒã
ã³ã³ããããšã«ãæ°ãããã©ã°--ipv6ã䜿çšããŠipv6ã¢ãã¬ã¹ãå²ãåœãŠãããšãã§ããŸãã ã³ã³ãããŒå
ã§ãipv6ã¢ãã¬ã¹ã解決ã§ããŸãã
èªã¿åãå°çšã³ã³ãã
--read-onlyãã©ã°ã䜿çšããããšã«ãããã³ã³ãããã¡ã€ã«ã·ã¹ãã ãèªã¿åãå°çšã«ããããšãã§ããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³ããã¡ã€ã«ãæžã蟌ãããšãã§ããã³ã³ããå
ã®å Žæãå¶éã§ããŸãã ãã®æ©èœãããªã¥ãŒã ãšçµã¿åãããŠäœ¿çšââãããšãã³ã³ããã管çããæ¢ç¥ã®å Žæã«ã®ã¿ããŒã¿ãèšé²ããããã«ã§ããŸãã
çµ±èšçšã®API
ã³ã³ããã®CPUãã¡ã¢ãªããããã¯ãŒã¯IOããã£ã¹ã¯IOã«é¢ããããŒã¿ãæäŸããçµ±èšçšã®APIããããŸãã ãããã£ãŠãã³ã³ãããç£èŠã§ããããã«ãªããŸããã
ã¢ã»ã³ããªã«äœ¿çšããDockerfileãæå®ããæ©èœ
æãèŠæ±ã®å€ãæ©èœã®1ã€ãå®è£
ãããŸãã-ããã©ã«ãã§ãã¡ã€ã«ã ãã§ãªãã Dockerãã«ãã䜿çšããæ©èœã docker build -fã䜿çšãããšãã€ã¡ãŒãžããã«ããããã¡ã€ã«ãæå®ã§ããŸãã ããšãã°ããã¹ãçšãšæ¬çªçšã«å¥ã
ã®Dockerfileã䜿çšã§ããããã«ãªããŸããã
ç»åã®ãªãŒãã³ä»æ§
ããã§ãç»åã®ä»æ§ãå
¬éãããŸãã ãããã¯ãç»åå
ã«äœãã©ã®ããã«å«ãŸããŠããããç解ããã®ã«åœ¹ç«ã¡ãŸãã
1.6
ããã§ãäžé£ã®dockerãŠãŒãã£ãªãã£ãæçµçã«å¥åã®Docker EngineãRegistryãComposeãSwarmãããã³Machineã«åœ¢æãããŸãã äœæã«ã€ããŠã¯ãèšäºã®æ¬¡ã®ã»ã¯ã·ã§ã³ã§èª¬æããŸãã ãã®ä»ã®ãŠãŒãã£ãªãã£ã«ã€ããŠã¯ã次ã®èšäºã§èª¬æããŸãã
ã³ã³ãããšç»åã®ã©ãã«
ã©ãã«ã䜿çšãããšããŠãŒãã£ãªãã£ã§äœ¿çšã§ããã³ã³ãããšç»åã«ãŠãŒã¶ãŒå®çŸ©ã®ã¡ã¿ããŒã¿ãè¿œå ã§ããŸãã
ãã®ã³ã°ãã©ã€ããŒ
3ã€ã®ãªãã·ã§ã³ãå«ãæ°ãããªãã·ã§ã³--log-driverãç»å ŽããŸãã ã
ãŸãããµãŒãããŒãã£ã®ãã¬ãŒã«æ¥ç¶ã§ãããã®ã³ã°APIãç»å ŽããŸããã
- json-fileïŒããã©ã«ãïŒ
- syslog
- ãªã
ãŸãããµãŒãããŒãã£ã®ãã¬ãŒã«æ¥ç¶ã§ãããã®ã³ã°APIãç»å ŽããŸããã
é£æ³ç»åèå¥åïŒãã€ãžã§ã¹ã
ã€ã¡ãŒãžãããŠã³ããŒãããã«ãããŸãã¯å®è¡ãããšãã«ã åå空é/ãªããžããªïŒã¿ã°ãŸãã¯åãªããªããžããªã®åœ¢åŒã§ããããæå®ã§ããŸãã ããã€ãžã§ã¹ãããšåŒã°ããæ°ããèå¥åã䜿çšããŠã åå空é/ãªããžããª@ãã€ãžã§ã¹ããšããæ§æã®ã³ã³ãããããŠã³ããŒãããã«ããããã³èµ·åã§ããããã«ãªããŸããã ãã€ãžã§ã¹ã-ç»åå
ã®ã³ã³ãã³ããžã®äžå€ã®ãªã³ã¯ã
ãã€ãžã§ã¹ãã䜿çšããããã®åªãããŠãŒã¶ãŒã±ãŒã¹-ããããšæŽæ°ã ã»ãã¥ãªãã£æŽæ°ããã°ã©ã ããªãªãŒã¹ããå Žåã¯ãã»ãã¥ãªãã£æŽæ°ããã°ã©ã ãšå ±ã«ã€ã¡ãŒãžã®ãã€ãžã§ã¹ããæå®ããŠãæŽæ°ããã°ã©ã ããµãŒããŒã«ã€ã³ã¹ããŒã«ãããŠããããšã確èªã§ããŸãã
ãã€ãžã§ã¹ãã䜿çšããããã®åªãããŠãŒã¶ãŒã±ãŒã¹-ããããšæŽæ°ã ã»ãã¥ãªãã£æŽæ°ããã°ã©ã ããªãªãŒã¹ããå Žåã¯ãã»ãã¥ãªãã£æŽæ°ããã°ã©ã ãšå ±ã«ã€ã¡ãŒãžã®ãã€ãžã§ã¹ããæå®ããŠãæŽæ°ããã°ã©ã ããµãŒããŒã«ã€ã³ã¹ããŒã«ãããŠããããšã確èªã§ããŸãã
--cgroup-parent
ã³ã³ããã¯ãåå空éãæ©èœãããã³cgroupã®çµã¿åããã§æ§æãããŸãã Dockerã¯ãä»»æã®åå空éãšæ©èœããµããŒãããããã«äœ¿çšãããŠããŸããã ãã©ã°--cgroup-parentã䜿çšããŠcgroupã®ãµããŒããè¿œå ããŸããã ç¹å®ã®cgroupãã³ã³ããã«æž¡ãããšãã§ããŸãã ããã«ãããã³ã³ããã§cgroupãäœæããã³ç®¡çã§ããŸãã cgroupã®ãªãœãŒã¹ãå®çŸ©ããå
±éã®èŠªã°ã«ãŒãã«ã³ã³ãããé
眮ã§ããŸãã
ãŠãªã
ãããŸã§ã®ãšãããã³ã³ããã¯dockerããŒã¢ã³ããulimitèšå®ãç¶æ¿ããŠããŸãã ulimitã䜿çšãããšãããã»ã¹ã®äœ¿çšãå¶éã§ããŸãã çç£è² è·ã§ã¯å¶éãéåžžã«é«ããªãå ŽåããããŸãããã³ã³ããã«ã¯çæ³çã§ã¯ãããŸããã æ°ãããªãã·ã§ã³ã䜿çšãããšãdockerããŒã¢ã³ãæ§æãããšãã«ãã¹ãŠã®ã³ã³ãããŒã®ulimitèšå®ãæå®ã§ããŸãã次ã«äŸã瀺ããŸãã
ãããã®èšå®ã¯ãã³ã³ãããäœæãããšãã«ãªãŒããŒããŒãã§ããŸãã
ãã®ã³ãã³ãã¯ããã¹ãŠã®ã³ã³ããã«å¯ŸããŠ1024ã®ãœããå¶éãš2048ã®åããã»ã¹ã®ããŒãå¶éãèšå®ããŸãã ç°ãªããã©ã¡ãŒã¿ãŒã«å¯ŸããŠãªãã·ã§ã³ãè€æ°å䜿çšã§ããŸããdocker -d --default-ulimit nproc=1024:2048
--default-ulimit nproc=1024:2048 --default-ulimit nofile=100:200
ãããã®èšå®ã¯ãã³ã³ãããäœæãããšãã«ãªãŒããŒããŒãã§ããŸãã
docker run -d -ulimit nproc=2048:4096 httpd
ã³ãããããã³ã€ã³ããŒãæã«dockerfileã¹ããŒãã¡ã³ãã䜿çšã§ããããã«ãªããŸãã
ããã§ãç»åå
šäœãåæ§ç¯ããããšãªãããã®å Žã§ç»åãå€æŽã§ããŸãã ããã¯commit-exchangeããã³import --changeé¢æ°ã«ãã£ãŠå¯èœã«ãªããæ°ããã€ã¡ãŒãžã«é©çšããå€æŽãæå®ã§ããŸãã é©çšã§ãããµããŒããããŠããã³ãããããã³ã€ã³ããŒãã®æé ã以äžã«ç€ºããŸã ã
1.7
ãã®ãªãªãŒã¹ã«ã¯ãæžãæãããããããã¯ãŒã¯ããã³ããªã¥ãŒã ãµãã·ã¹ãã ãå®å®æ§ã®åäžãZFSãã©ã€ããŒãå«ãŸããŠããŸãã
Dockeräœæ
åæ£ã¢ããªã±ãŒã·ã§ã³ã¯éåžžãé£æºããŠåäœããããã€ãã®å°ããªãµãŒãã¹ã§æ§æãããŠããŸãã Dockerã¯ãããã®ã¢ããªã±ãŒã·ã§ã³ãåå¥ã®ã³ã³ãããŒã«å€æããäžç·ã«ãã€ã³ãããŸãã Docker Composeã§ã¯ãåã³ã³ãããæ§ç¯ãèµ·åã管çãã代ããã«ã1ã€ã®ãã¡ã€ã«ã«ãã¹ãŠã®äŸåé¢ä¿ãæã€ãã«ãã³ã³ããã¢ããªã±ãŒã·ã§ã³ãå®çŸ©ããåäžã®upã³ãã³ãã§ãã®ã¢ããªã±ãŒã·ã§ã³ãèµ·åã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ã®æ§é ãšæ§æããŸãšããŠãããšãã©ãã§ãç°¡åã«ç¹°ãè¿ãå®è¡ã§ããŸãã
Composeã®äœ¿çšã¯ãéåžž3ã€ã®ã¹ãããã§æ§æãããŸãã
- Dockerfileã§ã¢ããªã±ãŒã·ã§ã³ç°å¢ãå®çŸ©ããŸãã
- ã¢ããªã±ãŒã·ã§ã³ãdocker-compose.ymlãã¡ã€ã«ã§æ©èœããããã«å¿ èŠãªãµãŒãã¹ãå®çŸ©ããŠãåé¢ãããç°å¢ã§äžç·ã«å®è¡ã§ããããã«ããŸãã
- docker-compose upã³ãã³ããå®è¡ããŸãã Docker Composeã¯ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸãã
Composeã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ã管çã§ããŸãã
- ãµãŒãã¹ã®éå§ãåæ¢ãããã³åæ§ç¯
- å®è¡äžã®ãµãŒãã¹ã®ã¹ããŒã¿ã¹ã衚瀺ãã
- å®è¡äžã®ãµãŒãã¹ã®ãã°ããããŒããã£ã¹ãããŸã
- ãµãŒãã¹ã§å¿ èŠãªã³ãã³ããå®è¡ããŸãã
docker-compose.yml
docker-compose.ymlãã¡ã€ã«ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãdockerã«ãããã€ããããã®ã«ãŒã«ãå«ãŸããŠããŸãã
dockerã®åãµãŒãã¹â compose.ymlã«ã¯ãå°ãªããšã1ã€ã®ã€ã¡ãŒãžïŒ image ïŒãŸãã¯ãã«ãããã¹ã¯ãªããïŒ build ïŒãå«ãŸããŠããå¿ èŠããããŸãã ä»ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯ã docker runã³ãã³ãã®ãã©ã¡ãŒã¿ãŒãšåæ§ã«ãªãã·ã§ã³ã§ãã
docker runãšåæ§ã«ãDockerfileã§æå®ããããªãã·ã§ã³ïŒCMDãEXPOSEãVOLUMEãENVãªã©ïŒã¯ããã©ã«ãã§å®è¡ãããŸããdocker-compose.ymlã§ããããç¹°ãè¿ãå¿ èŠã¯ãããŸããã
å©çšå¯èœãªdocker â compose.ymlãªãã·ã§ã³ã®ãªã¹ãã¯ã å ¬åŒããã¥ã¡ã³ãã«èšèŒãããŠããŸã ã
çè«ããå®è·µã«ç§»ããPHPãšMySQLã§Apacheã®docker-composeãäœæããŸãããã
web: image: trukhinyuri/apache-php ports: - "80:80" - "443:443" volumes: - ./apache/www/:/var/www/ # - ./apache/conf/sites-enabled/:/etc/apache2/sites-enabled/ links: - db restart: always db: image: centurylink/mysql:latest volumes: - ./mysql/conf/:/etc/mysql/conf.d/ - ./mysql/data/:/var/lib/mysql/ environment: MYSQL_ROOT_PASSWORD: ********** # MYSQL_DATABASE: wordpress restart: always
LAMPããããã€ããããã®docker-compose.xmlãæžããããã«
ããŠã³ãããããã©ã«ããŒã«ããµã€ããã¡ã€ã«ãApacheæ§æããµã€ãããŒã¿ããŒã¹ãé 眮ããŸãã ãµã€ããæ°ããå Žåã¯ãããŒã¿ããŒã¹ã®ååã䜿çšããŠç°å¢å€æ°ã®ã³ã¡ã³ãã解é€ã§ããŸããã³ã³ããã®èµ·åæã«äœæãããŸãã ããã§ããµãŒããŒã«éåžžã«è¿ éã«å±éã§ããããŒã¿ãã«Webãµã€ããã§ããŸããã
- ãã®ãã¡ã€ã«ã§ã¯ã webãšdbã® 2ã€ã®dockerã³ã³ãããå®çŸ©ããŸãã
- ãã«ãå ã®ã€ã¡ãŒãžãŸãã¯Dockerfileãã¡ã€ã«ãæå®ããŸãã ïŒæ¢è£œã®ç»åã¯hub.docker.comã§èŠã€ããããšãã§ããŸãïŒ
- äœãèµ·ãã£ãŠããåžžã«åèµ·åããå¿ èŠãããããšãåç»åã«ç€ºããŸãã
- dbã³ã³ããã®å Žåãç°å¢å€æ°ã䜿çšããŠããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããã®ãã¹ã¯ãŒããæå®ããŸãïŒç°å¢å€æ°ã¯Dockerhub ã®ã€ã¡ãŒãžã®ããã¥ã¡ã³ãããåŠç¿ããŸãã ïŒã
- åã€ã¡ãŒãžã§ããã¹ãäžã®ããŒã¿ãšèšå®ãä¿åãããŠãããã©ã«ããŒãããŠã³ãããŸããããã«ãããDockerã®ã¢ããªã±ãŒã·ã§ã³ã«è§Šããããšãªãç°¡åã«ããã¯ã¢ããããã³å€æŽã§ããŸãã
- Webã€ã¡ãŒãžã§ã¯ã dbã€ã¡ãŒãžãžã®ãªã³ã¯ãæäŸããŸãã ãããã£ãŠã dbãã¹ãã¯/ etc / hostsãã¡ã€ã«ã«èªåçã«è¿œå ãããéããŠãããã¹ãŠã®ããŒã¿ããŒã¹ããŒãã䜿çšå¯èœã«ãªããŸãã Webã¢ããªã±ãŒã·ã§ã³ããããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããå Žåã dbãã¹ããMySQLãµãŒããŒãšããŠæå®ãããšãWebã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ãæ€åºããŸãã
- Webã³ã³ããã§ã¯ãå€éšããŒã80ããã³443ã転éããŠããããã¯ãŒã¯çµç±ã§ãµã€ãã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã
ããŠã³ãããããã©ã«ããŒã«ããµã€ããã¡ã€ã«ãApacheæ§æããµã€ãããŒã¿ããŒã¹ãé 眮ããŸãã ãµã€ããæ°ããå Žåã¯ãããŒã¿ããŒã¹ã®ååã䜿çšããŠç°å¢å€æ°ã®ã³ã¡ã³ãã解é€ã§ããŸããã³ã³ããã®èµ·åæã«äœæãããŸãã ããã§ããµãŒããŒã«éåžžã«è¿ éã«å±éã§ããããŒã¿ãã«Webãµã€ããã§ããŸããã
InfoboxCloudã§ãµãŒããŒãäœæãã Dockerãã€ã³ã¹ããŒã«ããèšäºã®åé ã§æå®ããåäžã®ã³ãã³ãã䜿çšããŠæ§æãããšããŸãã dockerã§ã©ã³ããã©ã«ããŒãã³ããŒããã ãã§ãâ compose.xmlããµã€ãããã³ããŒã¿ããŒã¹ãã©ã«ããŒãã³ãã³ããå®è¡ããŸã
docker-compose up -d
LAMPã¹ã¿ãã¯ãäžæããç§ãã¡ã®ãµã€ãã¯æ¢ã«åäœããŸãã ãšãŠãç°¡åïŒ ãµã€ããå¥ã®ãµãŒããŒã«ç§»åãããã10å°ã®ãµãŒããŒã«å±éããŸããïŒ LAMPãã©ã«ããŒãå¥ã®ãµãŒããŒã«ã³ããŒããŠdockerãå®è¡ããã ãã§ãããäžåºŠäœæããŸãã
ãããã£ãŠã dockerããã³composeã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ããã³ã·ã¹ãã å šäœãæºåæžã¿ã®ç°å¢ã«ããã¯ãããããã®ãããã€ã¡ã³ãã®æ§æãèŠå®ã§ããŸãã ãã®å Žåãå±éã¯1ã€ã®ããŒã ã§è¡ãããæºåãæŽã£ãŠããªããŠãŒã¶ãŒã§ãå®è¡ã§ããŸãã InfoboxCloudïŒããã³äžè¬çã«ã¯IaaSã¯ã©ãŠãïŒã§ã®è€éãªã·ã¹ãã ã®å±éãPaaSã®ã·ã³ãã«ãã§è¡ãããŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã¹ãŠã®åŽé¢ãå¶åŸ¡ããŸãã ããã¯ã OnlyOfficeã䜿çšããå±éæ¹æ³ã§ãã
composeã䜿çšããŠåãããã€ãããšãã«éè€ãã€ã³ãããŠã³ããšã©ãŒãçºçããå Žå
ãã®å Žåãäœæãããã³ã³ããã確èªããŠãã ããã ãããè¡ãã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
docker ps -a
docker-compose.ymlã§èª¬æãããŠããã³ã³ããã®ã»ãã«ãå¥åŠãªååã®ã³ã³ããã衚瀺ãããŸãã ãã®å Žåãååã¯ã335698fa2d_lamp_db_1ãã§ãã
次ã®ã³ãã³ãã§åé€ããŸãïŒ
335698fa2d_lamp_db_1ã¯ãå¥åŠãªååã®ã³ã³ããã®ååã«çœ®ãæããŸããdocker rm 335698fa2d_lamp_db_1
ãã®åŸãcomposeã¯æ£åžžã«åãããã€ãããŸãã
ãããã«
次ã®èšäºã§ã¯ãDockerã®ä»ã®äŸ¿å©ãªãŠãŒãã£ãªãã£ã«ã€ããŠæ€èšããŸãã èšäºã«ééããèŠã€ããå ŽåããŸãã¯è³ªåãããå Žåã¯ãPMãŸãã¯ã¡ãŒã«ã§ãé£çµ¡ãã ãã ã Habréã«ã³ã¡ã³ããæ®ããªãå Žåã¯ã ã³ãã¥ããã£ã«æžã蟌ã¿ãŸãã
Dockerã®äœ¿çšã«æåããŸããïŒ