Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

Ryo Tomidokoro

June 10, 2017
Tweet

More Decks by Ryo Tomidokoro

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. ίϯςφϨδετϦ
    ໊લ ྉۚ ಛ௃
    Docker Cloud ༗ྉ ݩTutum
    Gitlab ແྉ
    private repo΋OK
    ͨ·ʹམͪΔ
    quay.io ༗ྉ ൃԻ͸[ki:]
    ACS EC2࢖͏ͳΒແྉ awsίϚϯυͰ؆୯ೝূ
    GCP ༗ྉ
    CloudStorageͱωοτ
    ϫʔΫԼΓʹ՝ۚ
    ػೳ͸େࠩͳ͍ɻར༻͠΍͍͢ॴͰྑ͍ɻ

    View Slide

  13. ຊ೔ͷ࠷ॏཁࣄ߲

    View Slide

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

    View Slide

  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
    όʔδϣϯͱ࢖͑Δจ๏ͷؔ܎͕΍΍͍͜͠

    View Slide

  16. ϨδετϦΛ༻ҙͨ͠ΒΞϓϦͷ४උ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    4XBSN.PEFແ

    View Slide

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

    View Slide

  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

    View Slide

  39. Ξϯνύλʔϯ
    $*͸ɺޙͰઃఆ͢Ε͹͍͍
    DPNQPTFͷίϚϯυ͕Ұ෦ඇରԠͩͬͨΓ
    ಋೖ͸ࢥ͍௨Γʹ͍͔ͳ͍

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. ͦΖͦΖ·ͱΊ·͢

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. ͦΖͦΖࢼ࣌͠Ͱ͢

    View Slide

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

    View Slide