Dockerを本番導入するにあたり得た知見

 Dockerを本番導入するにあたり得た知見

JAWS-UG横浜 #10 - Docker での発表資料です

1e8c5eaf563f965d3ba48b0054b1d955?s=128

Shoichiro Nagai(shnagai)

July 19, 2017
Tweet

Transcript

  1. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ +"846(ԣ඿%PDLFS $POOFIJUPJODӬҪউҰ࿠ %PDLFSΛຊ൪ಋೖ͢Δʹ͋ͨΓಘͨ஌ݟ

  2. ࣗݾ঺հ ӬҪউҰ࿠ @twitter shnagai Connehito inc. ΠϯϑϥΤϯδχΞ http://kobitosan.hatenablog.com/ http://qiita.com/nagais ৬ྺɿ


    SIerɹɹɹɹ3೥ Ұٳɹɹɹ 7೥ ίωώτ ࠓ೥5݄͔Β
  3. ϚϚϦͷαʔϏε঺հ ϚϚϦ2 ϚϚΛࢧ͑Δ2"ΞϓϦ  ೥ʹग़࢈ͨ͠ঁੑͷਓʹਓ͕ ձһొ࿥
 
 ϚϚϦ ϚϚΛࢧ͑Δ8FCϝσΟΞ 


    
 ˞೥݄࣌఺
 ݄ؒར༻ऀɿ໿ສਓ
 ݄ؒ౤ߘ਺ɿສ݅Ҏ্
 ݄ؒӾཡ਺ɿ໿ԯ17
 
 
 
 
 
 
 

  4. ΞδΣϯμ w ίωώτͰͷ%PDLFSࣄ৘ w ΦʔέετϨʔγϣϯπʔϧͱͯ͠ͷ&$4 w %PDLFSӡ༻Ͱಘͨ஌ݟ

  5. ίωώτͰͷ%PDLFSࣄ৘

  6. ͳͥ%PDLFS w ։ൃ؀ڥͷվળͱͯ͠%PDLFSΛಋೖͯ͠੒Ռग़ͨ
 ʲ։ൃ؀ڥվળͱͯ͠%PDLFSΛಋೖͨ͠࿩ʳ
 IUUQUFDIDPOOFIJUPDPNFOUSZ  w ຊ൪΋%PDLFSԽͨ͠Βྑͦ͞͏ w ग़དྷΔͱ͜Ζ͔Β%PDLFSΛಋೖ͍ͯ͜͠͏

  7. %PDLFSԽ͞Ε͍ͯΔ΋ͷ w %#εΩʔϚ؅ཧπʔϧͷ࣮ߦ؀ڥ
 &$PO%PDLFSˠɹ&$4
 ࣮ߦ࣌ʹҰ౓͚ͩඞཁʹͳΔͷͰίϯςφ͸࢖͍ࣺͯ w 8FCΞϓϦέʔγϣϯͷεςʔδϯά؀ڥ
 &$4 5SBWJT$*
 ։ൃ؀ڥͱಉ͡%PDLFSΠϝʔδΛεςʔδϯά؀ڥʹల։

  8. ౰ॳͷΞʔΩςΫνϟ

  9. ίϯςφͷ഑උɾϥΠϑαΠΫϧճ͢ͷ ݁ߏେมɻɻɻ

  10. w %PDLFS͸ͱͯ΋ศར w ͕ͩɺίϯςφͷϥΠϑαΠΫϧΛճ͢ͷ͸΍΍໘౗
 खಈͰ΍Ζ͏ͱ͢Δͱ͜Μͳεςοϓ͕ɺɺ
 
 ϩʔΧϧϚγϯ Ϗϧυˠ&$3QVTI 
 EPDLFSCVJMEUYYELSFDSBQOPSUIFBTUBNB[POBXTDPNIPHFEEMMBUFTU

    
  BXTFDSHFUMPHJOSFHJPOBQOPSUIFBTU 
 EPDLFSQVTIYYELSFDSBQOPSUIFBTUBNB[POBXTDPNIPHFEEMMBUFTU
 &$ &$3QVMMˠچίϯςφഁغˠίϯςφىಈ 
  BXTFDSHFUMPHJOSFHJPOBQOPSUIFBTU 
 EPDLFSQVMMYYELSFDSBQOPSUIFBTUBNB[POBXTDPNIPHFEEMMBUFTU
 EPDLFSLJMMIPHFEEM
 EPDLFSSNIPHFEEM
 EPDLFSSVOEOBNFIPHFEEMYYELSFDSBQOPSUIFBTUBNB[POBXTDPNIPHFEEMMBUFTU
 ΦʔέετϨʔγϣϯͷਏΈ
  11. ΦʔέετϨʔγϣϯ૚Λ
 Կͱ͔͍ͨ͠

  12. &$4 "NB[PO&$$POUBJOFS4FSWJDF ʹ
 ΦʔέετϨʔγϣϯ૚Λ೚ͤΑ͏

  13. w "84͕ఏڙ͍ͯ͠Δ
 ϚωʔδυαʔϏεͳͷͰӡ༻͕ෆཁ
 BXTίϚϯυͰૢ࡞Մೳ
 &$3ͱ͍͏%PDLFSΠϝʔδͷϦϙδτϦ΋͋Δ wίϯςφͷӡ༻Λશͯ೚ͤΒΕΔ
 ԼهͷͭͷཁૉΛఆٛ͢Δ͜ͱͰίϯςφͷϥΠϑαΠΫϧΛճͤΔ
 ΫϥελɾɾίϯςφΛཱͯΔϗετΛ؅ཧ
 λεΫఆٛɾɾͲΜͳίϯςφΛཱͯΔ͔
 αʔϏεɾɾίϯςφΛ͍ͭ͘഑උ͢Δ͔΍&-#ͱͷ࿈ܞ

    wಈతϙʔτϚοϐϯά
 ಉ͡छྨͷίϯςφΛಉҰͷϗετʹෳ਺ཱͯΒΕΔ
 IUUQEPDTBXTBNB[PODPNKB@KQFMBTUJDMPBECBMBODJOHMBUFTUBQQMJDBUJPOUVUPSJBMUBSHFUFDT DPOUBJOFSTIUNM
 &$4ͷ͍͍ͱ͜Ζ
  14. &$4ޙͷΞʔΩςΫνϟ

  15. &$4ɾɾϋϚͬͨϙΠϯτू

  16. w ԼهͷͭͷίϯϙʔωϯτͰ&$4͸ߏ੒͞ΕΔɻ
 ͜ΕΒͷ૬͕ؔதʑཧղग़དྷͣҰ౓͸ఘΊͨɻɻɻ
 
 λεΫ
 %PDLFSίϯςφ
 λεΫఆٛ
 ɹ%PDLFSίϯςφͷىಈύϥϝʔλ౳ EPDLFSDPNQPTFZNM૬౰ 


    αʔϏε
 ɹλεΫΛ·ͱΊΔάϧʔϓ λεΫىಈ਺"-#࿈ܞ"VUPTDBMFͷઃఆ౳ 
 Ϋϥελ
 ɹλεΫΛಈ͔͢ϗετ &$ ͷू߹ମΛఆٛ "VUP4DBMMJOH(SPVQPSΧελϜ&$ 
 ᶃ&$4ͷ֤ίϯϙʔωϯτͷ૬ؔΛཧղ͢Δͷ͕೉͍͠
  17. w &$4Ϋϥελ͸ɺΫϥελ࡞੒࣌ʹ"VUP4DBMMJOHάϧʔ ϓΛ࡞Δ
 "VUP4DBMMJOHάϧʔϓ͸͍Βͳ͍͔ΒɺϢʔβσʔλͰىಈ࣌ʹࣄલॲཧͨ͠&$ ͚ͩͰΫϥελΛߏ੒͍ͨ͠
 ˠۭͷΫϥελΛ࡞ͬͯɺ&$͸ޙ͔Βඥ෇͚͍ͨ
 
 (6*ͩͱ͜ͷνΣοΫϘοΫεΛ͍ΕΔ͚ͩͳͷʹதʑؾ͚ͮͳ͔ͬͨɻɻɻ
 
 


    
 
 
 
 ᶄΧελϚΠζͨ͠Πϯελϯε͚ͩͰΫϥελΛߏ੒͍ͨ͠
  18. w αʔϏεͷσϓϩΠ͸ऴΘ͍ͬͯΔͷʹɺ"-#্Ͱ׬શ ͳτϥϑΟοΫͷ੾ΓସΘΓ͕ى͖ͳ͍
 αʔϏεΛσϓϩΠ͢Δͱɺ&$4αʔϏε্͸৽چͭͷσϓϩΠλεΫ͕ڞଘ͢Δ
 ৽نαʔϏεͷσϓϩΠ͸13*."3:Ͱཱ͕ͪ͋Δ͕ɺچσϓϩΠͷݩʹ࣮ߦ͞Εͯ ͍ΔλεΫ͸໾ׂ͕ऴΘΔ·Ͱফ͑ͳ͍
 "-#഑ԼʹλεΫ͕͍Δ৔߹ͷ໾ׂ"-#ͷτϥϑΟοΫάϧʔϓʹॴଐ͢Δ͜ͱ
 
 "-#Ͱ͸ɺESBJOJOHঢ়ଶ طଘίωΫγϣϯͷҡ࣋͢Δ

    ΛσϑΥϧτͰTҡ࣋ ͢ΔઃఆͩͬͨͷͰɺ࣮࣭σϓϩΠऴྃޙ͔ΒT͸αʔϏεͷσϓϩΠ͸ऴΘΒ ͳ͍ɻɻ
 
 ESBJOJOHঢ়ଶ͸ɺT΋͋Ε͹े෼ͳͷͰ"-#ଆͰઃఆ஋Λม͑Δ͜ͱͰEFQMPZ͕ߴ ଎Խɻɻ ᶅ"-#࿈ܞͷ&$4αʔϏεͰσϓϩΠ׬͕ྃ஗͍
  19. w ࡟আର৅ͷΫϥελʹɺλεΫ ίϯςφ ͕ಈ͍͍ͯΔ ৔߹͸ɺΫϥελ͸࡟আग़དྷͳ͍ɻɻ
 αʔϏεͰλεΫͷඞཁ਺Λʹ͢ΔˠλεΫফ͑Δ
 Ϋϥελ্Ͱಈ͍͍ͯΔλεΫ͕ʹͳΔ
 Ϋϥελͷ࡟আ͕ग़དྷΔ
 
 ͦΕͧΕͷґଘؔ܎͕Θ͔͍ͬͯΕ͹؆୯͕ͩɺதʑཧ

    ղग़དྷͳ͔ͬͨɻɻ ᶆ&$4Ϋϥελͷ࡟আํ๏
  20. ֶशίετ͸ਖ਼௚͔͔Δ͕ ઌʑଓ͘ӡ༻Λߟ͑Δͱ&$4Φεεϝ

  21. %PDLFSΛӡ༻ͯ͠ಘͨ஌ݟ

  22. w ႈ౳ੑΛશ͘ؾʹ͠ͳͯ͘Α͍ͷ͕࠷ߴ
 DIFG BOTJCMF TIFMMTDSJQUႈ౳ੑΛ୲อ͢Δͷ͕ਏ͔ͬͨɻɻ
 %PDLFS͸ΠϛϡʔλϒϧͳͷͰɺ౓૸Δ͜ͱΛؾʹ͠ͳ͍͍ͯ͘ w ؆୯ͳهड़
 36/ͰTIFMMίϚϯυΛ௲͍ͬͯ͘ܗࣜͳͷͰ୭Ͱ΋ಡΊΔ
 


    ᶃ%PDLFSGJMF࠷ߴ
  23. w ։ൃ؀ڥͰಈ͍ͨ΋ͷΛͦͷ··ผ؀ڥʹҠૹग़དྷΔ
 ࣮ߦ؀ڥͱΞϓϦέʔγϣϯίʔυΛύοέʔδԽͯ࣋ͪ͠ӡͿ
  ྫ &#࢖͏ͱɺFCFYUFOTJPOTͷ಺༰ΛϩʔΧϧͰ࠶ݱͤ͞Δਏ͋͞Δ
 
 ຊ൪͚ͩͰग़ΔΤϥʔ։ൃ؀ڥͰ͸ಈ͘Έ͍ͨͳਏ͍ӡ༻͔Βͷղ์
 ਖ਼֬ʹ͍͏ͱɺΤϥʔͷ੾Γ෼͚͔ΒίϯςφԽ͍ͯ͠Δ෦෼Λ੾Γ཭ͯ͠ߟ͑ΒΕ Δɻ


    ࣮ߦ؀ڥ͸Ұॹ %PDLFSΠϝʔδ ͔ͩΒɺຊ൪ͱ։ൃ؀ڥͷࠩҟ͸ͳΜ͚ͩͬͱ͍͏ εςοϓʹ͙͍͚͢Δɻ ᶄϙʔλϏϦςΟ
  24. w %PDLFSGJMFΛಡΊ͹શͯཧղग़དྷΔঢ়ଶΛ࡞Δ
 ϕʔεΠϝʔδ͸ผͰ؅ཧ͠ɺͦͷ಺༰͸Θ͔Βͳ͍Έ͍ͨͳঢ়ଶ͸࡞Βͳ͍ɻɻ
 શͯ͸ɺ։ൃ؀ڥͰ࠶ݱग़དྷɺ͔ͭΠϝʔδΛͦͷ··͍͚࣋ͬͯΔΑ͏ʹɻ w ίϯςφͷத਎͸ɺ୭Ͱ΋ߋ৽ग़དྷΔମ੍ʹ
 ͜Ε·Ͱͷ04΍ϛυϧ΢ΣΞͷϨΠϠ͸Πϯϑϥ͕؅ཧΈ͍ͨͳੈքͱͷܾผ
 
 ᶅ%PDLFSΠϝʔδ͸ந৅Խ͠ͳ͍ํ͕Αͦ͞͏

  25. w &$4؀ڥͰͷ%PDLFSίϯςφσϓϩΠϑϩʔ
 %PDLFSGJMFͷ࡞੒͸ϩʔΧϧͷ։ൃ؀ڥͰ׬݁
 σϓϩΠ࣌ʹඞཁͳࣄ ։ൃ؀ڥͰ࡞ͬͨ%PDLFSΠϝʔδΛ"84্ʹ഑උ͢Δ 
 ɹ%PDLFSGJMFϏϧυ&$3ʹQVTIλεΫఆٛͷ৽ϦϏδϣϯ࡞੒αʔϏεߋ৽ w &$4ͷσϓϩΠ෦෼͸ɺFDTEFQMPZ͕ྑͦ͞͏
 ৽͍͠ίϯςφͷ഑උλεΫఆٛͷ৽ϦϏδϣϯ࡞੒αʔϏεߋ৽͕ඞཁ


    ͜ͷ෦෼ΛࣗಈԽͯ͘͠ΕΔπʔϧ
 FDTEFQMPZ͸ɺFDTDMJΛ࢖ͬͯॻ͔Ε͍ͯΔͷͰɺಡΈ΍͍͢
 ऴྃΛ଴ͬͯ͘ΕΔ FDTDMJͷEFTDSJCFTFSWJDFTTFSWJDFTEFQMPZNFOU͕ʹͳΔͷΛ؂ࢹ 
 ʲαϯϓϧίϚϯυʳ
 FDTEFQMPZU λεΫߋ৽ͷλΠϜΞ΢τ஋ DE<Ϋϥελ໊>O<αʔϏε໊>J<%PDLFSϦϙδτϦͷ63-> 
 ˞IUUQTHJUIVCDPNTJMJOUFSOBUJPOBMFDTEFQMPZ ᶆ&$4؀ڥͰͷσϓϩΠϕετϓϥΫςΟε
  26. %PDLFSΛಋೖͯ͠ɺ ݁ہԿ͕͏Ε͔ͬͨ͠ͷ͔

  27. ґଘؔ܎Λҙࣝͨ͠ਏ͍γεςϜӡ༻
 ϩʔΧϧ0,ˠຊ൪ʜ
 ܦݧଇ͔Βಋ͔ΕΔ͜ͷ໾ׂͩͬͨΒ͋ͷαʔόͰ͠ΐ
 ˣ
 Ұͭͷίϯϙʔωϯτ͚ͩΛߟ͑Δ
 ָͳγεςϜӡ༻ʹਐԽ
 ϩʔΧϧ0,ˠຊ൪0, ׬શʹಉ͡΋ͷ͕ಈ͘ 
 ίϯςφػೳ


    ίϯςφͷ഑උ͸&$4ʹ͓೚ͤͦ͜ʹ಄࢖Θͳ͍
  28. w %PDLFSΛಋೖ͢Δ͜ͱͰɺ͜Ε·Ͱͷਏ͍γεςϜӡ༻ ͔Β୤٫ग़དྷΔ෦෼͕͋Δ w %PDLFSGJMF͸Φʔϓϯʹ୭Ͱ΋৮ΕΔΑ͏ͳӡ༻Λ͠ͳ ͍ͱࢫຯ͕൒ݮ͢Δɻ w %PDLFSΦʔέετϨʔγϣϯπʔϧͱͯ͠ɺ"84Λ࢖ͬ ͍ͯΔͳΒ&$4͕ྑͦ͞͏ ·ͱΊ