Dockerを本番で使ってみて分かったこと

 Dockerを本番で使ってみて分かったこと

Dockerで開発、ステージ、本番へのリリースから運用までを一通り行った結果、どのようなことに注意して開発すべきか、どのような構成をとるべきか、どうやって本番リリースするのかについてまとめます。Laravel, Lumenを使っていたため、PHPで開発を行っている方たちにとっても、本番導入を検討するにあたって良い目安になるかと思います。

F04982ad61107b5408ad139966596316?s=128

Ryo Tomidokoro

June 10, 2017
Tweet

Transcript

  1. DockerΛຊ൪Ͱ࢖ͬͯΈͯ෼͔ͬͨ͜ͱ PHPΧϯϑΝϨϯε෱Ԭ2017 *OOPWBUPS+BQBO*OD ෋ॴ྄ &OHJOFFS

  2. ͓஌Βͤ εϥΠυ͸SpeakerDeckʹΞοϓ͠·͕͢… ࡱӨ౳΋ࣗ༝ʹͯ͠௖͍ͯ໰୊͋Γ·ͤΜ !IBOIBO

  3. ίϯςφʹڵຯ͋Γ·͔͢ʁ

  4. ໌Δͦ͏ͳະདྷ ೥ࠒ͔Βͣͬͱ্ঢ܏޲ʹ͋Δ

  5. Ξϯέʔτ w։ൃͰίϯςφ %PDLFS Λ࢖͍ͬͯΔʁ wຊ൪ͰίϯςφΛӡ༻͍ͯ͠Δʁ

  6. ࠓ೔͓࿩͢Δ͜ͱ ࢲ͸͜͏΍ͬͨΑʂͷ࿩Ͱ͢

  7. ׂͱී௨ͷ1)1FSͰ΋ ΦϯϥΠϯυΩϡϝϯτͱॻ੶ΛཔΓʹ %PDLFSΛ࢖ͬͨ։ൃʙຊ൪·Ͱ Ͱ͖Δ࣌୅ʹͳΓ·ͨ͠

  8. ࠓ೔͓࿩͢Δ͜ͱ ͜ΕͳΒࢲͰ΋ग़དྷͦ͏ͩͳʂ ͬͯࢥͬͯ͘ΕͨΒخ͍͠Ͱ͢ɻ

  9. ։ൃ εςʔδ ຊ൪ ӡ༻ ࠓίί

  10. ԿΑΓ΋·ͣඞཁͳ͜ͱ

  11. ίϯςφϨδετϦ ίϯςφ։ൃͷ த৺ɻ

  12. ίϯςφϨδετϦ ໊લ ྉۚ ಛ௃ Docker Cloud ༗ྉ ݩTutum Gitlab ແྉ

    private repo΋OK ͨ·ʹམͪΔ quay.io ༗ྉ ൃԻ͸[ki:] ACS EC2࢖͏ͳΒແྉ awsίϚϯυͰ؆୯ೝূ GCP ༗ྉ CloudStorageͱωοτ ϫʔΫԼΓʹ՝ۚ ػೳ͸େࠩͳ͍ɻར༻͠΍͍͢ॴͰྑ͍ɻ
  13. ຊ೔ͷ࠷ॏཁࣄ߲

  14. EPDLFSͷഁյతมߋ w dWͰϏϧυͯ͠ϨδετϦʹQVTI w WdͰ͸QVMMग़དྷͳ͍ɻ IUUQEPDTEPDLFSKQFOHJOFCSFBLJOH@DIBOHFTIUNM

  15. EPDLFSDPNQPTFͷόʔδϣϯ Compose Engine จ๏ ~1.6.x 1.09 v1 1.6.x~ 1.10 v2

    1.6.x~ 1.12 v2.1 1.9.x~ 1.13~ v3 όʔδϣϯͱ࢖͑Δจ๏ͷؔ܎͕΍΍͍͜͠
  16. ϨδετϦΛ༻ҙͨ͠ΒΞϓϦͷ४උ

  17. ΞϓϦέʔγϣϯͷߏ੒ ΞϓϦɺϦϙδτϦɺ%PDLFSpMF͕ݪଇ WBHSBOU࢖ͬͨ։ൃͱײ֮ͱͯ͠͸ಉ͡

  18. ΞϓϦέʔγϣϯͷߏ੒ %PDLFSpMFνϥݟ த਎͸టष͍

  19. ΞϓϦέʔγϣϯͷߏ੒ ඞཁͳϛυϧ΢ΣΞ͸ DPNQPTFͰఆٛ

  20. ΞϓϦέʔγϣϯͷߏ੒ EPDLFSDPNQPTFͷத਎ ࣗ෼ͷΞϓϦ͸CVJME طଘΠϝʔδ͸QVMM

  21. ΞϓϦέʔγϣϯͷߏ੒ ͦͷଞͷϙΠϯτ wઃఆ৘ใ͸؀ڥม਺͔Β wωοτϫʔΫઃఆ΋ग़དྷΔ wDPNQPTFϑΝΠϧ͸ܧঝ΍JODMVEF͕Մೳ

  22. Ξϯνύλʔϯ ίϯςφىಈ࣌ʹίϯςφͷத਎Λॻ׵ XFC্ʹɺ͜ͷखͷํ๏͕ྑ͘ॻ͍ͯ͋Δ wDPNQPTFSJOTUBMM wOQNJOTUBMM wHJUQVMM

  23. ෳ਺ΞϓϦ։ൃͷ৔߹ ґଘΞϓϦ͸ϨδετϦܦ༝ͰQVMM ͜Ε͕ϨδετϦ͕࠷ॳʹඞཁͳཧ༝

  24. Ξϯνύλʔϯ ϦϙδτϦͰ%PDLFSpMFΛूத؅ཧ $*ͮ͠Β͍͠ɺ؀ڥߏஙखॱ͕ෳࡶ

  25. ࢀߟ৘ใ -BSBWFMTLFMUPO https://github.com/hanhan1978/docker-laravel54-skelton

  26. ࢀߟ৘ใ EPDLFSGPSNBD஗͍໰୊ https://blog.hanhans.net/2017/05/23/docker-for-mac-slow/ ׬ᘳͱ͸ݴ͑ͳ͍͕ɺղফ͞Εͭͭ͋Δ

  27. ࢀߟ৘ใ DPNQPTFSJOTUBMMͷΩϟογϡ https://blog.hanhans.net/2017/02/25/docker-cache-composer-install/

  28. ։ൃ εςʔδ ຊ൪ ӡ༻ ࠓίί

  29. ίϯςφͷ࣮ߦ؀ڥΛ४උ ϚωʔδυɾαʔϏε ࣗલͰ४උ OR

  30. ϚωʔδυɾαʔϏε (,&(PPHMF$POUBJOFS&OHJOF %PDLFS$MPVE4XBSN.PEF #&5"

  31. ࣗલͰ४උ $PSF04 ,VCFSOFUFT .FTPT σϑΝΫτελϯμʔυɻུশ͸,4 ౷߹తͳίϯςφ࣮ߦ؀ڥͰϦιʔεϞχλ΋෇ଐ ࢲ͸࢖ͬͨ͜ͱͳ͍ɻ ͱΓ͋͑ͣ,4ͱྑ͘ൺֱ͞ΕͯΔɻ 4XBSN.PEFͰ࢖͍ͬͯΔྫ͸Կ͔݅ݟ͔͚ͨɻ ,4ΑΓ΋γϯϓϧ

    ˠ6QEBUF͕සൟ͗͢ΔͷͰࣗલӡ༻͸͓קΊ͠ͳ͍
  32. ࣗ෼͕΍ͬͨ͜ͱ ,VCFSOFUFTXJUILVCFBXT "84Ͱ͖ͪΜͱ͓ۚΛ͔͚ΒΕΔͳΒ(PPE w"84্ʹࣗಈͰ,4Λઃஔ w$PSF04νʔϜ͕ϝϯς wઃఆมߋɺΠϯελϯε௥Ճɺߋ৽΋ίϚϯυҰൃ wNMBSHFYΈ͍ͨͳߏ੒͕ਪ঑

  33. Ξϯνύλʔϯ ͋Δఔ౓ͷن໛͕ແ͍ͱ,4͸໪ମແ͍ɻ

  34. ݸਓత͓קΊ %PDLFS$MPVEͷ4XBSN.PEF͸༷ࢠݟ (,&(PPHMF$POUBJOFS&OHJOF

  35. ։ൃ εςʔδ ຊ൪ ӡ༻ ࠓίί

  36. όονδϣϒ ࣮ߦ؀ڥຖʹιϦϡʔγϣϯ͕ҟͳΔ ,VCFSOFUFT$SPO+PCT .FTPT$ISPOPT ະݕূ  4XBSN.PEFແ

  37. ࣮ߦ؀ڥඇґଘͷδϣϒ DSPOઐ༻ίϯςφ͔ΒXFCIPPLΛୟ͘ ͪΐͬͱ໘౗͚ͩͲɺ࣮ߦ؀ڥʹࠨӈ͞Εͳ͍

  38. $* CI Engine Compose Circle CI 1.09 (1.12) ࣗྗಋೖ Travis

    CI 1.12.3 ࣗྗಋೖ Codeship 17.3 ࠷৽ Docker-Cloud 17.3 ࠷৽ Shippable 1.09 (beta 1.10) ࣗྗಋೖ πʔϧຖʹରԠঢ়گ͸ϚνϚν https://speakerdeck.com/hanhan1978/sok-dockerwoshi-tutaphpapurikai-fa-tocinituite
  39. Ξϯνύλʔϯ $*͸ɺޙͰઃఆ͢Ε͹͍͍ DPNQPTFͷίϚϯυ͕Ұ෦ඇରԠͩͬͨΓ ಋೖ͸ࢥ͍௨Γʹ͍͔ͳ͍

  40. $*ϑΝʔετ $*ͷߟ͑ํ ॳظஈ֊͔Β$*Λઃఆͯ͠ݒ೦Λ෷͏ʂ ଞͷਓͷઃఆΛਅࣅΔɾύΫΔ

  41. ͓קΊͷ$* 5SBWJT$* %PDLFS$MPVE $PEFTIJQ ຊՈɻ(JUIVC࿈ܞͱ͔͍͢͝؆୯ɻ 7FSTJPO௥ਵ͕ૣ͍ɻίϛϡχςΟʔ͕׆ൃɻ ͳΜ͔ͩΜͩ௵͕͠ޮ͘

  42. ϩάܥ αʔόϩά ΞϓϦέʔγϣϯϩά qVFOUEίϯςφΛར༻ جຊతʹ͸ඪ४ग़ྗɻ Τϥʔ͸TMBDL΁ɻͦͷଞ͸ඪ४ग़ྗɻ EPDLFSMPHTίϚϯυͰࢀর͢ΔͷͰجຊ͸ඪ४ग़ྗ

  43. ৘ใͷΩϟονΞοϓ TMBDLνϟϯωϧ .-ొ࿥ %PDLFSXFFLMZ %PDLFS ,4ڞʹଘࡏ

  44. ৘ใͷΩϟονΞοϓ ͦͷिͷ࿩୊ͷهࣄ·ͱΊ

  45. ͦΖͦΖ·ͱΊ·͢

  46. νΣοΫϦετ ίϯςφϨδετϦΛ४උ ϦϙδτϦɺ̍ΞϓϦɺ%PDLFSpMF ىಈίϚϯυͰΰχϣΰχϣېࢭ ίϯςφͷ࣮ߦ؀ڥબఆ όονॲཧͷํܾࣜఆ $*πʔϧͷબఆઃఆ ϩάऩूઃఆ ΞϓϦέʔγϣϯͷΤϥʔ௨஌ ϦιʔεͷϞχλϦϯά

  47. ·ͩ·ͩམͱ݀͠͸ଟ͍

  48. Ͱ΋ ࢥͬͨΑΓશવ҆ఆͯ͠·͢ʂ

  49. ͦΖͦΖࢼ࣌͠Ͱ͢

  50. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠