試行錯誤のための Docker 活用術

試行錯誤のための Docker 活用術

PyCon Kyushu in Okinawa 2019

A61adad507d7bc0ee5b52ebe333abed7?s=128

Yuki Ishikawa

May 18, 2019
Tweet

Transcript

  1. ࢼߦࡨޡͷͨΊͷ%PDLFS׆༻ज़ 1Z$PO,ZVTIVJO0LJOBXB !IPUP

  2. None
  3. ஌ͬͯ΄͍͜͠ͱ w %PDLFS͸γεςϜ։ൃͷͨΊ͚ͩͷ΋ͷͰ͸ͳ͍ w σʔλ෼ੳ ػցֶशΛߦ͏ࡍͷࢼߦࡨޡͷͨΊͷπʔϧͱͯ͠ศར

  4. ࿩͢͜ͱ  %PDLFSͱ͸ͳʹ͔ NJO   %PDLFSಋೖʹΑͬͯಘΒΕΔ΋ͷ NJO  

    %PDLFSಋೖͷצॴ NJO   %PDLFSςΫχοΫ̐બ NJO   σϞ ͕࣌ؒ༨Ε͹
  5. ࿩͞ͳ͍͜ͱ w %PDLFSͷࡉ͔͍࢖͍ํ w ίϚϯυΦϓγϣϯ΍%PDLFSpMFͷه๏ͳͲ w γεςϜ։ൃͷจ຺Ͱͷ%PDLFS w ΦʔέετϨʔγϣϯ ,VCFSOFUFT

    ͳͲ
  6. ͓લ୭Αʁ

  7. !IPUP ͪΎΒσʔλגࣜձࣾ σʔλΞφϦετ ԭೄࡏॅ Ҡॅ̎೥໨  1Z$PO,ZVTIVӡӦϝϯόʔ

  8. %PDLFSͱ͸ͳʹ͔

  9. ·͡Ίʁʹղઆ͢Δ%PDLFS

  10. %PDLFS w ίϯςφܕͷԾ૝Խπʔϧ w ϗετ04ͱΧʔωϧΛڞ༗͢Δ w -JOVYͰ͔͠ಈ͔ͳ͍ ˞  w

    ىಈ͕ര଎ ˞%PDLFS%FTLUPQ NBD04 8JOEPXT Ͱ͸ɺ-JOVY7.Λ
 ɹ࡞ͬͯͦͷ্Ͱ%PDLFS&OHJOFΛಈ͔͍ͯ͠Δ ϋʔυ΢ΣΞ 04Χʔωϧ %PDLFSΤϯδϯ ίϯςφϓϩηε ίϯςφϓϩηε ϋʔυ΢ΣΞ ϋΠύʔόΠβ 04Χʔωϧ ϓϩηε ϓϩηε 04Χʔωϧ ϋΠύʔόΠβܕ ίϯςφܕ
  11. Πϝʔδͱίϯςφ ʮΠϝʔδʯΛىಈ SVO ͢Δͱʮίϯςφʯ͕Ͱ͖Δ Πϝʔδ ίϯςφ ίϯςφ ίϯςφ %PDLFSpMF CVJME

    SVO ྫɿ1ZUIPOͷΠϝʔδΛىಈ͢Δͱɺ1ZUIPO͕ಈ͘ίϯςφ͕Ͱ͖Δ
  12. ΠϝʔδΛ࡞Δ w Πϝʔδʹରͯ͠ૢ࡞Λద༻ͨ͠΋ͷΛ
 ৽͍͠Πϝʔδͱͯ͠อଘ͢Δ w มߋΛੵΈॏͶͯ৽͍͠ΠϝʔδΛ
 ࡞͍ͬͯ͘ w %PDLFSpMFΛॻ͍ͯϏϧυ͢Δ ΞϓϦέʔγϣϯ͕

    ಈ͘Πϝʔδ EPDLFSCVJMEUNZBQQJNBHF
  13. ΠϝʔδΛڞ༗͢Δ w ίϯςφϨδετϦͱݺ͹ΕΔ
 αʔϏεͰΠϝʔδΛڞ༗Ͱ͖Δ w %PDLFSެࣜͷίϯςφϨδετϦ͕
 %PDLFS)VC Πϝʔδ Πϝʔδ QVTI

    QVMM
  14. ίϯςφΛىಈ͢ΔࡍͷΦϓγϣϯ w ؀ڥม਺Λઃఆ w ϘϦϡʔϜΛϚ΢ϯτ w ϙʔτΛׂΓ౰ͯ FUD ίϯςφ Πϝʔδ

    EPDLFSSVOJUa F%"5"#"4&@63-NZTRMa W QXE BQQa Qa NZBQQJNBHFa QZUIPOBQQQZ
  15. पลπʔϧ w %PDLFS$PNQPTF w ෳ਺ͷίϯςφΛ·ͱΊͯىಈ͢ΔͨΊͷπʔϧ w ,VCFSOFUFT w ίϯςφӡ༻ͷͨΊͷπʔϧ ΦʔέετϨʔγϣϯπʔϧͱ΋

    w σϓϩΠ εέʔϦϯά ϩʔυόϥϯγϯά w ػցֶशӡ༻ج൫ .-0QT Ͱ΋Α͘࢖ΘΕΔ
  16. ͳΔ΄ͲΘ͔ΒΜ

  17. งғؾͰཧղ͢Δ%PDLFS ˞େ͍ʹओ؍ؚ͕·ΕΔઆ໌

  18. 2ʮ7JSUVBM#PYΈ͍ͨͳ΋Μʁʯ w ޿͘ʮԾ૝Խٕज़ʯͱ͍͏ҙຯͰ͸ͦ͏ w ༻్ͱͯ͠ʮϗετ04ͷ্Ͱήετ04Λಈ͔ٕ͢ज़ʯ͔ͱ͍͏ͱɺ
 ͦΕͱ͸ͪΐͬͱงғؾ͕ҧ͏

  19. "ʮ%PDLFS͸+BWBͱಉ͡ʯ ʮ࣮ߦՄೳͳΧλϚϦ ΞϓϦέʔγϣϯ Λ࡞Δʯͱ͍͏఺Ͱಉ͡ +BWB %PDLFS +BWBͷίʔυΛॻ͘ %PDLFSpMFΛॻ͘ ίϯύΠϧ͢Δ KBSϑΝΠϧ͕Ͱ͖Δ

    Ϗϧυ͢Δ Πϝʔδ͕Ͱ͖Δ +BWBϥϯλΠϜ +3& Ͱ࣮ߦ͢Δ
 ϓϩηε͕ಈ͘ ίϯςφϥϯλΠϜͰ࣮ߦ͢Δ
 ίϯςφ͕ಈ͘
  20. ྫ(JU-BC w IUUQTBCPVUHJUMBCDPN w Φʔϓϯιʔεͷ(JUϦϙδτϦϗεςΟϯάπʔϧ w (JU)VCΈ͍ͨͳ΍ͭ ࡶ  w

    ࣗલͷαʔόͰಈ͔ͤΔ
  21. (JU-BCΛಈ͔͢ํ๏ ͜ΕΒͷιϑτ΢ΣΞΛ ద੾ʹΠϯετʔϧ͠ɺ ద੾ʹಈ࡞͢ΔΑ͏ʹઃఆ͠ɺ ӡ༻͢Δ ΞϓϦέʔγϣϯຊମ

  22. ʘ ΍͹͍ ʗ

  23. %PDLFSͰ(JU-BCΛಈ͔͢ํ๏ %PDLFSΠϝʔδ த਎͸Α͘Θ͔Βͳ͍͕ɺͱʹ͔͘ ࣮ߦ͢Ε͹(JU-BC͕ಈ͘ΧλϚϦ $ docker pull gitlab/gitlab-ce (JU-BCެ͕ࣜఏڙ͍ͯ͠ΔϏϧυࡁΈΠϝʔδΛ %PDLFS)VC͔Βμ΢ϯϩʔυ

    EPDLFSQVMM (JU-BC͕ಈ͘ίϯςφ ࣮ߦ EPDLFSSVO σʔλͷอଘઌ ετϨʔδ Ϛ΢ϯτ (JU-BC͕ಈ͍ͨʂʂʂ
  24. ʘ ͍͢͝ ʗ

  25. ষ·ͱΊ %PDLFS͸+BWB ޠฐ͔͠ͳ͍

  26. %PDLFSಋೖʹΑͬͯ
 ಘΒΕΔ΋ͷ

  27. ʮࢼߦࡨޡʯͱ͸ w ͜ͷ࿩ͷதͰͷʮࢼߦࡨޡʯ
 ʮσʔλ෼ੳ΍ػցֶशʹऔΓ૊Ήࡍͷ࣮ݧϓϩηεʯͷ͜ͱ w ΞΧσϛοΫϏδωε͸໰Θͳ͍

  28. σʔλʹର͢Δࢼߦࡨޡ w ʮσʔλʯ͔Βظ଴͢Δʮ݁ՌʯΛಘ͍ͨ w ͦͷͨΊʹʮσʔλʯʹద༻͢Δ
 ʮΞϓϩʔνʯΛࢼߦࡨޡ͍ͨ͠ w ͦͷͨΊʹʮΞϓϩʔνʯΛ࣮ݱ͢ΔͨΊͷ
 ʮ؀ڥʯΛ࡞Δඞཁ͕͋Δ σʔλ

    ݁Ռ" ݁Ռ# Ξϓϩʔν" Ξϓϩʔν# ؀ڥ
  29. ྫɿ೔ຊޠͷจষσʔλ͔Β୯ޠͷ෼ࢄදݱΛ࡞Γ͍ͨ ͦΕͧΕΛࢼͨ͢ΊʹͦΕͧΕͷ؀ڥߏங͕͍Δ .F$BC +6."/ 4FOUFODF1JFDF FUD 8PSE7FD GBTU5FYU FUD ੨ۭจݿ

    5XJUUFS FUD 8JLJQFEJB ʷ ʷ σʔλ ݁Ռ τʔΫφΠβ ෼ࢄදݱ ΞϧΰϦζϜ Ϟσϧֶशʹ࢖͏ ίʔύε
  30. ͋Γ͕ͪͳ໰୊ w "ΛೖΕͯΈ͕ͨμϝͩͬͨ w #ΛೖΕͯΈ͕ͨμϝͩͬͨ w $ΛೖΕͯΈͨΒ͏·͍ͬͨ͘ w $͕ಈ͘؀ڥΛ࠶ݱ͠Α͏ͱͯ͠΋Ͱ͖ͳ͍PSͱͯ΋େม w

    ґଘؔ܎͕͙ͪΌ͙ͪΌʹͳ͍ͬͯΔ w ʮ͜ͷαʔόͰͳΒಈ͔ͤ·͢ʂʂʂʯ
  31. None
  32. %PDLFSಋೖʹΑͬͯಘΒΕΔ΋ͷ ˣ ʮ؀ڥͷ࠶ݱੑʯ

  33. ʮ؀ڥͷ࠶ݱੑʯ͕͋Δ͜ͱͷྑ͞ w ϩʔϧόοΫ͕༰қ w յΕͨΒίϯςφΛফͯ͠࡞Γ௚ͤ͹ྑ͍ w ؾ݉Ͷͳ͘؀ڥΛյͤΔɺνϟϨϯδ͠΍͍͢ w ϙʔλϒϧ w

    %PDLFSpMF΋͘͠͸ΠϝʔδΛڞ༗͢Δ͚ͩͰಉ͡؀ڥ͕࡞ΕΔ w νʔϜϝΠτ΍ސ٬ͷ؀ڥͰಉ͡΋ͷΛ͙͢ʹಈ͔ͤΔ w ؀ڥͦͷ΋ͷΛόʔδϣϯ؅ཧԼʹஔ͚Δ w %PDLFSpMFΛόʔδϣϯ؅ཧ͢Ε͹ͦΕ͕ʮ؀ڥߏஙͷखॱॻʯʹͳΔ
  34. %PDLFSಋೖͷצॴ

  35. ͨͩ%PDLFSΛ࢖͑͹ྑ͍Θ͚Ͱ͸ͳ͍ ϋʔυ΢ΣΞ 04Χʔωϧ %PDLFSΤϯδϯ 6CVOUVίϯςφ πʔϧ πʔϧ πʔϧ ґଘύοέʔδ ґଘύοέʔδ

    ṖεΫϦϓτ தؒσʔλ ϩάσʔλ தؒσʔλ ͳʹ΋Θ͔Βͳ͍
  36. ؾΛ͚ͭΔ΂͖͜ͱ w ίϯςφΛεςʔτϨεʹอͭ w ͜·ΊʹߏஙखॱΛηʔϒ͢Δ

  37. ίϯςφΛεςʔτϨεʹอͭ w ʮ؀ڥͷ࠶ݱੑʯͷԸܙͷҰͭ͸ʮΧδϡΞϧʹഁյͰ͖Δʯ w ίϯςφ಺ʹॏཁͳσʔλΛอ࣋͢Δ εςʔτϑϧʹ͢Δ ͱɺ
 ίϯςφΛΧδϡΞϧʹഁյͰ͖ͳ͍ʂʂ w ίϯςφΛফ͢ͱॏཁͳσʔλ͝ͱফ͑ͯ͠·͏ͨΊ

    w ʮίϯςφ͸ϓϩηεʯͱߟ͑ํΛ͍ͯ͠Ε͹ɺ
 ʮ͍ͭফ͑ͯ΋͓͔͘͠ͳ͍΋ͷʯͱ͍͏͜ͱ͕ཧղ͠΍͍͢͸ͣ
  38. ίϯςφΛεςʔτϨεʹอͭ w ॏཁͳσʔλ΍࡞ۀϩάΛ
 ίϯςφ಺ʹอଘ͠ͳ͍ w ফ͑ͨΒࠔΔσʔλ͸
 ʮϚ΢ϯτͨ͠ετϨʔδʯ͔
 ʮίϯςφ֎ͷ%#ʯʹอଘ͢Δ Ϛ΢ϯτͨ͠
 ετϨʔδ

    ίϯςφ ֎෦
 %#
  39. ͜·ΊʹߏஙखॱΛηʔϒ͢Δ w ࢼߦ͕͏·͍ͨ͘͘ͼʹɺʮ͜Ε͕࠷৽ͷ͏·͍ͬͨ͘؀ڥʯͱ͍͏
 ηʔϒϙΠϯτΛ࡞Δ w %PDLFSpMFΛॻ͍ͯΠϝʔδΛ࡞Γ௚͢ͷ͕ཧ૝త w ߏஙखॱΛγΣϧεΫϦϓτʹϝϞ͓͍ͯͯ͠ɺ͋ͱͰ·ͱΊͯ
 %PDLFSpMFʹҠ͢ɺͱ͍͏΍ΓํͰ΋ྑ͍

  40. ؾΛ͚ͭΔ΂͖͜ͱ w ίϯςφΛεςʔτϨεʹอͭ w ͜·ΊʹߏஙखॱΛηʔϒ͢Δ

  41. %PDLFSςΫχοΫ̐બ

  42. ςΫχοΫ΋͘͡  "OBDPOEBΛϕʔεʹ͢Δͱָ  +VQZUFSΛ࢖͏ͱ͖͸JOJUͨ͠ํ͕͍͍  ίϯςφ಺͔Β(16Λ࢖͏ํ๏  (6*ΞϓϦ΋%PDLFSͰىಈͰ͖Δ

  43. ςΫχοΫ΋͘͡  "OBDPOEBΛϕʔεʹ͢Δͱָ  +VQZUFSΛ࢖͏ͱ͖͸JOJUͨ͠ํ͕͍͍  ίϯςφ಺͔Β(16Λ࢖͏ํ๏  (6*ΞϓϦ΋%PDLFSͰىಈͰ͖Δ

  44. 2ʮΑ͘࢖͏πʔϧΛશ෦٧ΊࠐΜͩ
 %PDLFSΠϝʔδΛ࡞͓͚ͬͯ͹
 ྑ͍Μ͡Όͳ͍ͷʁʁʁʯ

  45. "ͦ͏ͩͶ

  46. "OBDPOEB w σʔλ෼ੳ ػցֶशͰΑ͘࢖͏πʔϧ͕
 ·ͱΊͯೖ͍ͬͯΔσΟετϦϏϡʔγϣϯ w ʮ1ZUIPOͷϥΠϒϥϦूʯͰ͸ͳ͍ w "OBDPOEB͸ެࣜͷ%PDLFS*NBHF͕ެ։͞Ε͍ͯΔ EFCJBOϕʔε

     w IUUQTIVCEPDLFSDPNSDPOUJOVVNJPBOBDPOEB w "OBDPOEBΛϕʔεʹ෼ੳ؀ڥΛ࡞Δͱͱͯ΋ָ Ҿ༻ɿIUUQTXXXBOBDPOEBDPNEJTUSJCVUJPO
  47. "OBDPOEBͷ᠘ w "OBDPOEBΛೖΕͯύεΛ௨͢ 1"5)PQUDPOEBCJO1"5) ͱɺ
 ͍͔ͭ͘ͷγεςϜίϚϯυ্͕ॻ͖͞ΕΔ w QZUIPO DVSM PQFOTTMͳͲ

    w "OBDPOEB؀ڥ֎ͷΞϓϦέʔγϣϯʹӨڹΛ༩͑Δ͜ͱ͕͋Δ
  48. "OBDPOEBͷ᠘ w 2ʮͳͥͦΜͳ͜ͱΛ͢Δ͔ʁʯ w "ʮ"OBDPOEB͸σΟετϦϏϡʔγϣϯ͔ͩΒʯ w "OBDPOEB͸σΟετϦϏϡʔγϣϯ಺Ͱґଘؔ܎Λղܾ͢ΔػೳΛ
 ఏڙ͢Δ΋ͷͰ͋ͬͯɺ֎෦ͱ؀ڥΛ෼཭͢Δ΋ͷͰ͸ͳ͍ w ʲࢀߟʳ"OBDPOEB͸&OWJSPONFOU*TPMBUJPO5PPM

    ؀ڥ෼཭πʔϧ Ͱ͸ͳ͍2JJUB
 IUUQTRJJUBDPNUZJUFNTEEEGDBDCBEB
  49. %PDLFS࢖͑͹Α͘ͳ͍ʁ w "OBDPOEBΛ࢖ͬͯΔγεςϜʹ
 ೖΕΔͷ͸ؾ͕Ҿ͚Δ w ͳΒίϯςφͷதʹด͡ࠐΊͯ
 ͠·͑͹Α͘ͳ͍ʁ w ίϯςφʹด͡ࠐΊΔ͜ͱͰ
 ྑ͍ײ͡ʹ؀ڥ͕෼཭Ͱ͖Δ

    ίϯςφ ϋʔυ΢ΣΞ ϗετ04 %PDLFSΤϯδϯ ϗετ04ͷ 1"5)ʹ ׯব͠ͳ͍ ✖
  50. ςΫχοΫ΋͘͡  "OBDPOEBΛϕʔεʹ͢Δͱָ  +VQZUFSΛ࢖͏ͱ͖͸JOJUͨ͠ํ͕͍͍  ίϯςφ಺͔Β(16Λ࢖͏ํ๏  (6*ΞϓϦ΋%PDLFSͰىಈͰ͖Δ

  51. ΈΜͳେ޷͖ ʁ 
 +VQZUFS w 8FC6*Ͱ1ZUIPOͳͲͷίʔυΛ
 ΠϯλϥΫςΟϒʹ࣮ߦͰ͖Δπʔϧ w ࢼߦࡨޡͷڧ͍ຯํ w

    ·ͩ+VQZUFS/PUFCPPL࢖ͬͯΔਓ͸
 +VQZUFS-BCʹҠߦ͠Α͏
  52. 5IF;PNCJF3FBQJOH1SPCMFN %PDLFSʹ͸;PNCJF3FBQJOHͱݺ͹ΕΔ໰୊͕͋Δ Docker ͷ৔߹ɺಛʹߟྀͤͣϓϩηεΛ࣮ߦͤ͞ΔͱΤϯτϦʔϙΠϯτͱͯ͠ઃఆͨ͠ϓϩηε͕ PID 1 Ͱಈ࡞͠·͢ɻ Linux Ͱ͸ىಈ࣌ʹ࠷ॳʹىಈ͢Δ init

    ϓϩηεʹ PID 1 ׂ͕ΓৼΒΕɺPID 1 ͷϓϩηεʹ͍ͭͯ͸ಛघͳߟྀ͕͞Εɺ σϑΥϧτͰγάφϧΛແࢹ͢Δઃఆͱͳ͍ͬͯΔΑ͏Ͱ͢ɻ ͦͷͨΊɺ docker stop ίϚϯυͳͲͰ SIGTERM γάφϧΛૹͬͯ΋ϓϩηε͕ఀࢭ͞ΕͣɺҰఆ࣌ؒޙʹλΠϜΞ΢τͯ͠ SIGKILL Ͱڧ੍ऴྃ͠·͢ɻ Ҿ༻ɿ%PDLFSͱJOJUͱίϯςφΦʔέετϨʔγϣϯͰͷઃఆʹ͍ͭͯEFGZBTVIBSV TFMG  IUUQZBTVIBSVIBUFOBCMPHDPNFOUSZ
  53. +VQZUFSͷ৔߹ɺى͖Δ໰୊ w +VQZUFSͰ;PNCJF3FBQJOH໰୊͕
 ൃੜ͢Δͱɺ͢΂ͯͷΧʔωϧ͕
 Ϋϥογϡ͢Δ +VQZUFS਌ϓϩηε 1*% Χʔωϧϓϩηε Χʔωϧϓϩηε Χʔωϧϓϩηε

    4*(5&3.ΛૹΔ ແࢹ͞ΕΔ λΠϜΞ΢τͯ͠
 4*(,*--Ͱڧ੍ऴྃ Χʔωϧϓϩηε͕
 Ϋϥογϡ͢Δ
  54. ରԠࡦ w γάφϧΛϋϯυϦϯάͰ͖ΔJOJU༻ϓϩηεΛΤϯτϦϙΠϯτʹ͢Δ w +VQZUFSެࣜͷ%PDLFSΠϝʔδͰ͸UJOJ͕࢖ΘΕ͍ͯΔ w %PDLFSҎ߱ ίϯςφىಈ࣌ʹJOJUΦϓγϣϯΛࢦఆ͢Δ w %PDLFSຊମʹUJOJ͕औΓࠐ·Ε͍ͯΔ

  55. ςΫχοΫ΋͘͡  "OBDPOEBΛϕʔεʹ͢Δͱָ  +VQZUFSΛ࢖͏ͱ͖͸JOJUͨ͠ํ͕͍͍  ίϯςφ಺͔Β(16Λ࢖͏ํ๏  (6*ΞϓϦ΋%PDLFSͰىಈͰ͖Δ

  56. (16ͱ͸ w άϥϑΟοΫͷॲཧʹಛԽͨ͠ϓϩηοα w $16ͱൺֱͯ͠ ୯७ͳฒྻԋࢉΛߴ଎ʹߦ͏͜ͱ͕Ͱ͖ΔͨΊɺ
 ۙ೥Ͱ͸൚༻ܭࢉʹ΋࢖ΘΕΔ͜ͱ͕ଟ͘ͳ͖ͬͯͨ (1(16  w

    ಛʹ/7*%*"ࣾͷ(16Ͱ͸$6%" DV%//ͱ͍ͬͨϥΠϒϥϦ͕
 ެ։͞Ε͓ͯΓɺσΟʔϓϥʔχϯάͷܭࢉʹར༻͞ΕΔ͜ͱ͕ଟ͍ w Ҏ߱ͷεϥΠυͰ͸ɺ(16ͱ͍͏ϫʔυ͸ಛʹ໌ࣔ͞Εͯ
 ͍ͳ͍ݶΓ/7*%*"ࣾͷ(16Λࢦ͢ɺͱ͍͏͜ͱʹ͢Δ
  57. /7*%*"%PDLFS w ௨ৗɺ%PDLFSίϯςφ಺͔Β͸
 (16ʹΞΫηεͰ͖ͳ͍
 /7*%*"υϥΠό͕ར༻Ͱ͖ͳ͍  w /7*%*"͕ࣾެ։͍ͯ͠Δ
 /7*%*"%PDLFSΛ࢖͏͜ͱͰ
 ίϯςφ಺͔ΒͰ΋υϥΠό͕


    ར༻Ͱ͖ΔΑ͏ʹͳΔ w /7*%*"%PDLFSΛ࢖͓͏ Ҿ༻ɿ&OBCMJOH(16TJOUIF$POUBJOFS3VOUJNF&DPTZTUFNc/7*%*"%FWFMPQFS#MPH IUUQTEFWCMPHTOWJEJBDPNHQVDPOUBJOFSTSVOUJNF
  58. (16Λѻ͑ΔΠϝʔδΛ࡞Δ ͲΜͳΠϝʔδͰ΋(16͕ѻ͑ΔΘ͚Ͱ͸ͳ͘ɺҎԼͷ͍ͣΕ͔ͷํ๏Ͱ
 ΠϝʔδΛ࡞Δඞཁ͕͋Δ w /7*%*"͕ެ։͍ͯ͠ΔOWJEJBDVEBΠϝʔδΛϕʔεʹͯ͠࡞Δ w ؆୯ w $6%"͕ѻ͑ΔΠϝʔδΛࣗ࡞͢Δ w

    ଞͷϕʔεΠϝʔδ΋࢖͑Δ w ࢀߟɿ/7*%*"(16͕࢖͑Δ%PDLFSΠϝʔδͷ࡞Γํ2JJUB
 IUUQTRJJUBDPNIPUPJUFNTCFFBFEC⒎
  59. ςΫχοΫ΋͘͡  "OBDPOEBΛϕʔεʹ͢Δͱָ  +VQZUFSΛ࢖͏ͱ͖͸JOJUͨ͠ํ͕͍͍  ίϯςφ಺͔Β(16Λ࢖͏ํ๏  (6*ΞϓϦ΋%PDLFSͰىಈͰ͖Δ

  60. (6*ΞϓϦ΋%PDLFSͰىಈͰ͖Δ w %PDLFSͰ(6*ΞϓϦΛಈ͔͍ͨ͠ͱࢥͬͨ͜ͱ͸ͳ͍Ͱ͔͢ʁ w ͳ͍Ͱ͢ΑͶ

  61. 98JOEPX4ZTUFN 9 w (6*Λѻ͏ͨΊͷϓϩτίϧ w ΫϥΠΞϯταʔόϞσϧ w σΟεϓϨΠͳͲͷσόΠεଆ͕αʔό w (6*ΞϓϦέʔγϣϯଆ͕ΫϥΠΞϯτ

    w αʔόΫϥΠΞϯτؒͷ௨৴͸ҟͳΔϚγϯؒͰ͋ͬͯ΋ಈ࡞͢Δ w ҟͳΔΞʔΩςΫνϟɾҟͳΔ04ؒͰ͋ͬͯ΋໰୊ͳ͍
  62. 9ϓϩτίϧͷ࢓૊Έ 9ΞϓϦ σΟεϓϨΠ  9αʔό 9ΫϥΠΞϯτ σΟεϓϨΠMPDBMIPTUʹ ΢Οϯυ΢Λද͍ࣔͨ͠ ΢Οϯυ΢͕ ඳը͞ΕΔ

  63. %PDLFS %PDLFSΛ࢖ͬͨ৔߹ 9ΞϓϦ σΟεϓϨΠ  9αʔό 9ΫϥΠΞϯτ σΟεϓϨΠMPDBMIPTU͕ ݟ౰ͨΒͳ͍ɾɾɾ

  64. %PDLFS ղܾࡦ 9ΞϓϦ σΟεϓϨΠ  9αʔό 9ΫϥΠΞϯτ σΟεϓϨΠMPDBMIPTU͕ ݟ͔ͭͬͨʂʂʂ ΢Οϯυ΢͕

    ඳը͞ΕΔ UNQ9VOJY 9αʔό͕-JTUFO͍ͯ͠Δ ιέοτΛίϯςφʹϚ΢ϯτ͢Δ ˞ 9αʔόʹ઀ଓ͢ΔͨΊͷೝূ৘ใ d9BVUIPSJUZ ΋ίϯςφଆʹڞ༗͢Δඞཁ͕͋Δ ˞ ιέοτΛϚ΢ϯτͤͣͱ΋ɺϗετ04ͷ9αʔόʹ௚઀ΞΫηεͰ͖ΔͳΒͦΕͰ΋͍͍
  65. %&.0

  66. ͕࣌ؒ͋Ε͹

  67. ·ͱΊ

  68. ·ͱΊ  w %PDLFS͸+BWB ޠฐ  w ʮίϯςφ͸ϓϩηεʯ w %PDLFSಋೖʹΑͬͯʮ؀ڥͷ࠶ݱੑʯ͕ಘΒΕΔ

    w ϩʔϧόοΫ͕༰қ ϙʔλϒϧ ؀ڥΛόʔδϣϯ؅ཧͰ͖Δ
 ͳͲͷϝϦοτ͕͋Δ w %PDLFSΛ͏·͘ѻ͏ʹ͸ίπ͕͍Δ w ίϯςφΛεςʔτϨεʹอͭ ͜·ΊʹߏஙखॱΛηʔϒ͢Δ
  69. ·ͱΊ  w %PDLFSͷςΫχοΫ w "OBDPOEBͱ૬ੑ͕͍͍ w +VQZUFSίϯςφΛ࡞Δࡍ͸;PNCJF3FBQJOH1SPCMFNʹ஫ҙ w (16

    $6%" ΍σΟεϓϨΠ (6*ΞϓϦ ͳͲ΋ѻ͑Δ
  70. ஌ͬͯ΄͍͜͠ͱ ࠶ܝ w %PDLFS͸γεςϜ։ൃͷͨΊ͚ͩͷ΋ͷͰ͸ͳ͍ w σʔλ෼ੳ ػցֶशΛߦ͏ࡍͷࢼߦࡨޡͷͨΊͷπʔϧͱͯ͠ศར