åã®èšäºã§ã
Dockerãšã¯ äœããDockerfileã䜿çšããŠã³ã³ãããŒéã§éä¿¡ããæ¹æ³ã«ã€ããŠã¯æ¢ã«èª¬æããŸã
ã ã

ãããã®èšäºã¯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ãéžæãããµãŒããŒã®äœæãå®äºããŸãã

ãã®åŸããµãŒããŒã«ã¢ã¯ã»ã¹ããããã®ããŒã¿ãé»åã¡ãŒã«ã§éä¿¡ãããŸãã
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ãµãŒãã¹ãéå§ããã¹ã¿ãŒãã¢ããã«è¿œå ããŸãã
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>
ãã°ã®æçµè¡ãåºåããããã§ãã³ã³ãããã°ã®æåŸã®è¡ã衚瀺ã§ããŸãã
以åã¯ããã°å
šäœã衚瀺ããã³ãã³ãã䜿çšããŠãã°ã衚瀺ããŠããŸããã
docker logs <container_id>
次ã®ã³ãã³ãã䜿çšããŠãããšãã°ãã°ã®æåŸã®10è¡ã衚瀺ã§ããŸãã
docker logs --tail 10 <container_id>
ãŸãããã°å
šäœãèªã¿åããã«ããã°ã«è¿œå ãããŠããå
容ãç£èŠããããšãã§ããŸãã
docker logs --tail 0 -f <container_id>
Dockerã³ã³ãããæ§ç¯ãããšãã«ã³ã³ããã¹ããšããŠtarãã¡ã€ã«ããµããŒãããã§ãã³ã³ããã¹ããšããŠtarã¢ãŒã«ã€ãã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 ã³ãã³ãã«è¿œå ãããŸãã
- 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ãå°å
¥ãããŸããããããã®ãã©ã°ã䜿çšãããšãã³ã³ããã®èš±å¯å
容ãããæ£ç¢ºã«å¶åŸ¡ã§ããŸãã
ããšãã°ãã³ã³ããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¹ããŒã¿ã¹ã倿Žããã«ã¯ïŒ
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ã»ãã·ã§ã³ãäœæããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
docker exec -it ubuntu_bash bash
äž»ãªæšå¥šã¢ãããŒãã§ãããã³ã³ããããšã«1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¯å€æŽãããŠããŸããããéçºè
ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãªãã£ã¹ããã»ã¹ãå¿
èŠãšãããŠãŒã¶ãŒã«äŒãã«è¡ããŸããã
Docker Createã«ããã³ã³ãããŒã©ã€ããµã€ã¯ã«ç®¡çã®æ¹ådocker run image_nameã³ãã³ãã¯ãã³ã³ãããŒãäœæãããã®äžã§ããã»ã¹ãéå§ããŸãã å€ãã®ãŠãŒã¶ãŒã¯ãã³ã³ããã®ã©ã€ããµã€ã¯ã«ãããæ£ç¢ºã«å¶åŸ¡ããããã«ããããã®ã¿ã¹ã¯ãåé¢ããããšãæ±ããŠããŸãã
docker createã³ãã³ãã¯ãããå¯èœã«ããŸãã
äŸïŒ
docker create -t -i fedora bash
ãã³ã³ããã¬ã€ã€ãäœæããã³ã³ããIDã衚瀺ããŸãããéå§ããŸããã
éå§ããã«ã¯ã次ãå®è¡ããŸãã
docker start -a -i <container_id>
ãããã£ãŠã
docker createã³ãã³ãã¯ãã©ã€ããµã€ã¯ã«ã管çããããã«docker startããã³docker stopã³ãã³ãã䜿çšããæè»æ§ããŠãŒã¶ãŒããã³/ãŸãã¯ããã»ã¹ã«äžããŸãã
ã»ãã¥ãªãã£ãªãã·ã§ã³--security-optãã®ãªãªãŒã¹ã§ã¯ãæ°ãããã©ã°
--security-optã远å ããããŠãŒã¶ãŒãã«ã¹ã¿ã ã©ãã«ãšSELinuxããã³AppArmorãããã¡ã€ã«ãã«ã¹ã¿ãã€ãºã§ããããã«ãªããŸããã
ããšãã°ãã³ã³ããããã»ã¹ã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ãç»å ŽããŸãã ã
- json-fileïŒããã©ã«ãïŒ
- syslog
- ãªã
ãŸãããµãŒãããŒãã£ã®ãã¬ãŒã«æ¥ç¶ã§ãããã®ã³ã°APIãç»å ŽããŸããã
飿³ç»åèå¥åïŒãã€ãžã§ã¹ãã€ã¡ãŒãžãããŠã³ããŒãããã«ãããŸãã¯å®è¡ãããšãã«ã åå空é/ãªããžããªïŒã¿ã°ãŸãã¯åãªããªããžããªã®åœ¢åŒã§ããããæå®ã§ããŸãã ããã€ãžã§ã¹ãããšåŒã°ããæ°ããèå¥åã䜿çšããŠã åå空é/ãªããžããª@ãã€ãžã§ã¹ããšããæ§æã®ã³ã³ãããããŠã³ããŒãããã«ããããã³èµ·åã§ããããã«ãªããŸããã ãã€ãžã§ã¹ã-ç»åå
ã®ã³ã³ãã³ããžã®äžå€ã®ãªã³ã¯ã
ãã€ãžã§ã¹ãã䜿çšããããã®åªãããŠãŒã¶ãŒã±ãŒã¹-ããããšæŽæ°ã ã»ãã¥ãªãã£æŽæ°ããã°ã©ã ããªãªãŒã¹ããå Žåã¯ãã»ãã¥ãªãã£æŽæ°ããã°ã©ã ãšå
±ã«ã€ã¡ãŒãžã®ãã€ãžã§ã¹ããæå®ããŠãæŽæ°ããã°ã©ã ããµãŒããŒã«ã€ã³ã¹ããŒã«ãããŠããããšã確èªã§ããŸãã
--cgroup-parentã³ã³ããã¯ãåå空éãæ©èœãããã³
cgroupã®çµã¿åããã§æ§æãããŸãã Dockerã¯ãä»»æã®åå空éãšæ©èœããµããŒãããããã«äœ¿çšãããŠããŸããã ãã©ã°
--cgroup-parentã䜿çšããŠcgroupã®ãµããŒãã远å ããŸããã ç¹å®ã®cgroupãã³ã³ããã«æž¡ãããšãã§ããŸãã ããã«ãããã³ã³ããã§cgroupãäœæããã³ç®¡çã§ããŸãã cgroupã®ãªãœãŒã¹ãå®çŸ©ããå
±éã®èŠªã°ã«ãŒãã«ã³ã³ãããé
眮ã§ããŸãã
ãŠãªã ãããŸã§ã®ãšãããã³ã³ããã¯dockerããŒã¢ã³ããulimitèšå®ãç¶æ¿ããŠããŸãã ulimitã䜿çšãããšãããã»ã¹ã®äœ¿çšãå¶éã§ããŸãã çç£è² è·ã§ã¯å¶éãéåžžã«é«ããªãå ŽåããããŸãããã³ã³ããã«ã¯çæ³çã§ã¯ãããŸããã æ°ãããªãã·ã§ã³ã䜿çšãããšãdockerããŒã¢ã³ãæ§æãããšãã«ãã¹ãŠã®ã³ã³ãããŒã®ulimitèšå®ãæå®ã§ããŸããæ¬¡ã«äŸã瀺ããŸãã
docker -d --default-ulimit nproc=1024:2048
ãã®ã³ãã³ãã¯ããã¹ãŠã®ã³ã³ããã«å¯ŸããŠ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ãæžããããã«- ãã®ãã¡ã€ã«ã§ã¯ã 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ãã§ãã
次ã®ã³ãã³ãã§åé€ããŸãïŒ
docker rm 335698fa2d_lamp_db_1
335698fa2d_lamp_db_1ã¯ãå¥åŠãªååã®ã³ã³ããã®ååã«çœ®ãæããŸãã
ãã®åŸãcomposeã¯æ£åžžã«åãããã€ãããŸãã
ãããã«
次ã®èšäºã§ã¯ãDockerã®ä»ã®äŸ¿å©ãªãŠãŒãã£ãªãã£ã«ã€ããŠæ€èšããŸãã èšäºã«ééããèŠã€ããå ŽåããŸãã¯è³ªåãããå Žåã¯ãPMãŸãã¯
ã¡ãŒã«ã§ãé£çµ¡ãã ãã ã Habréã«ã³ã¡ã³ããæ®ããªãå Žåã¯ã
ã³ãã¥ããã£ã«æžã蟌ã¿ãŸãã
Dockerã®äœ¿çšã«æåããŸããïŒ