Slide 1

Slide 1 text

Docker ϋϯζΦϯ جૅฤ1 # גࣜձࣾΤΞʔΫϩʔθοτ ࣾ಺ษڧձ Vol.1 @takasp 2018೥8݄17೔

Slide 2

Slide 2 text

࿩͢͜ͱ • Docker ΛऔΓר͘എܠ • ίϯςφٕज़ͷ֓ཁ • Docker ͷίϚϯυ • Docker ͷίϚϯυΛ࢖ͬͨϋϯζΦϯ

Slide 3

Slide 3 text

Docker ΛऔΓר͘എܠ

Slide 4

Slide 4 text

෺ཧαʔόʔ͔ΒԾ૝Խ΁ • ෺ཧαʔόʔ
 ωοτϫʔΫ΍ηΩϡϦςΟ͕҆ఆ͢ΔσʔληϯλʔͰͷ
 ӡ༻͕޿͕Δɻ
 ͔͠͠ɺϋʔυ΢ΣΞނোͷϦεΫ΍ௐୡίετ͕ඞཁɻ • Ծ૝αʔόʔ
 ෺ཧαʔόʔ্ʹෳ਺ͷԾ૝αʔόʔ͕࣮ߦͰ͖Δ
 ϋΠύʔόΠβʔ͕ొ৔ɻ
 ϦιʔεΛޮ཰తʹѻ͑ɺOS Πϝʔδͷ࠶ར༻΍εϖοΫมߋ͕
 ॊೈʹߦ͑ΔΑ͏ʹͳͬͨɻ

Slide 5

Slide 5 text

Ծ૝Խ͔ΒΫϥ΢υ΁ • ඼࣭ͷߴ͍αʔϏεΛਝ଎ʹఏڙ͢ΔͨΊʹɺ
 ΠϯϑϥΛॊೈʹௐ੔Ͱ͖ΔҰͭͷબ୒ࢶͱͯ͠ొ৔ͨ͠ɻ • Ϋϥ΢υ
 - ར༻ऀࣗ਎Ͱ͍ͭͰ΋ඞཁͳ͚ͩར༻Ͱ͖Δɻ
 - ωοτϫʔΫΛ௨ͯ͡ར༻Ͱ͖Δɻ
 - Ϧιʔε͕ந৅Խ͞Ε͍ͯͯɺͲ͜ʹϦιʔε͕࣮ࡏ͢Δͷ͔ ؾʹͤͣར༻Ͱ͖Δɻ
 - ೚ҙͷλΠϛϯάͰεέʔϧͰ͖Δɻ

Slide 6

Slide 6 text

Ϋϥ΢υΞʔΩςΫνϟ • SaaS
 ϒϥ΢βͳͲΛ௨ͯ͠ΞϓϦ͕ར༻Ͱ͖ɺϦιʔεΛҙࣝ͢Δඞཁ͕ͳ͍ɻ • FaaS
 ؔ਺୯ҐͷίʔυΛσϓϩΠ͢Δ͚ͩͰɺϋʔυ΢ΣΞ΍ OS Λҙࣝ͢Δඞཁ͕ͳ͍ɻ
 ؔ਺ʹ͸ඞཁͳϦΫΤετͷΈ͕౉͞Εɺ࣮ߦͨ݁͠Ռ͕Ϩεϙϯε͞ΕΔɻ • PaaS
 Ϋϥ΢υࣄۀऀ͕༻ҙͨ͠ɺݴޠɾϥΠϒϥϦɾπʔϧΛར༻ͯ͠։ൃ͕Ͱ͖ɺ
 σϓϩΠ΍࣮ߦ؀ڥͷઃఆมߋ͕Ͱ͖Δɻ • IaaS
 Ծ૝αʔόʔ΍ετϨʔδɺωοτϫʔΫͳͲͷجຊతͳϦιʔεͷ࡞੒ɺར༻͕Ͱ͖ɺ ͦͷ؀ڥͰσϓϩΠɾ࣮ߦ͕Ͱ͖Δɻ

Slide 7

Slide 7 text

ϖοτͱՈச • ϖοτ
 ҰඖҰඖʹ໊લΛ͚ͭͯՄѪ͕Δɻ
 ὎ো֐͕ൃੜ͠ͳ͍Α͏ʹɺαʔόʔҰ୆ͣͭʹ໊લΛ͚ͭɺ
 ৴པੑΛߴΊΔɻௐࢠ͕ѱͦ͏Ͱ΋खΛՃ͑ͯେ੾ʹ͍ͯ͠Δɻ • Ոச
 පؾʹͳͬͯ΋ࡴॲ෼ͯ͠଍Γͳ͚Ε͹ങ͍଍͢ɻ
 ὎ෳ਺୆ͷαʔόʔΛ৑௕ߏ੒ʹͯ͠ɺௐࢠ͕ѱ͚Ε͹མͱ͠ɺ ৽͍͠αʔόʔΛ௥Ճ͢Δɻ

Slide 8

Slide 8 text

΢ΥʔλʔϑΥʔϧͱΞδϟΠϧ • ΢ΥʔλʔϑΥʔϧ
 ޻ఔΛ෼͚ɺ্ྲྀ͔ΒԼྲྀ΁ྲྀ͠ɺ֤޻ఔͰ
 ࣮֬ͳ΋ͷΛ࡞Γ඼࣭Λ޲্ͤ͞ΔͷͰ͕͔͔࣌ؒΔɻ
 ͕࣌ؒܦͭʹͭΕมԽ͢Δཁ๬ʹରԠ͢Δͷ͕೉͍͠ɻ • ΞδϟΠϧ
 ඞཁ࠷খݶͷཁ݅ΛՃ͑ͨ੒Ռ෺Λ࡞ͬͯϦϦʔε͠ɺ ϑΟʔυόοΫΛड͚ͯܧଓతͳ։ൃΛ܁Γฦ͢ɻ

Slide 9

Slide 9 text

DevOps • ։ൃͱӡ༻͕࿈ܞ͠ɺ༷ʑͳख๏ͱจԽΛऔΓೖΕɺ αʔϏεվળͷ࣌ؒΛ୹ॖ͠ɺਝ଎ʹ
 Ϗδωεχʔζʹ౴͑Δ͜ͱ͕໨తɻ • νϟοτπʔϧ΍՝୊؅ཧɺόʔδϣϯ؅ཧɺ
 CI πʔϧɺΠϯϑϥࣗಈςετπʔϧɺ
 ϞχλϦϯάπʔϧΛ૊Έ߹Θͤͯ PDCA Λճ͢ɻ

Slide 10

Slide 10 text

Infrastructure as a Code • ΠϯϑϥͷίʔυԽ͢Δɻ • Πϯϑϥͷઃఆɾߏ੒ΛςΩετϕʔεͰ
 ؅ཧ͢Δɻ • Ϋϥ΢υ͕ఏڙ͢Δ API ͱ࿈ܞͯ͠ߏ੒Λ
 อͭ͜ͱ͕Ͱ͖Δɻ

Slide 11

Slide 11 text

CI/CD • CIʢܧଓతΠϯςάϨʔγϣϯʣ
 ΞϓϦΛ௥Ճमਖ਼ͷͨͼʹςετΛͯ͠
 ಈ͘ίʔυΛҡ࣋͢Δɻ • CDʢܧଓతσϦόϦʔʣ
 ػೳ௥Ճ͝ͱʹΞϓϦΛσϓϩΠͯ͠
 ར༻ऀͷϑΟʔυόοΫΛૣΊΔɻ

Slide 12

Slide 12 text

͜ΕΒͷมભΛܦͯ • ։ൃ΍εςʔδϯάɺຊ൪؀ڥͱ͍͏ϓϥοτϑΥʔϜΛ
 ލ͍Ͱʮ࣮֬ʹͲ͜Ͱ΋ಈ͘ΞϓϦʯΛ࡞Δ͜ͱ͕େมʹͳͬͨɻ • Ͳ͜Ͱ΋ಉ͡Ծ૝ΠϝʔδΛ࢖͏ͷ͸ݱ࣮తͰ͸ͳ͘ɺ
 ߏ੒؅ཧπʔϧΛར༻ͯ͠΋ৗʹ׬શͳঢ়ଶΛ࠶ݱ͢Δͷ͸
 ೉͍͠ɻ • ؀ڥΛ໰Θͣʹɺؒҧ͍ͳ͘ΞϓϦΛ࣮ߦ͠ɺ
 ։ൃऀ΍ӡ༻ऀ͕ʮ؆୯ʹʯѻ͑ΔΑ͏ʹͱొ৔ͨ͠ͷ͕ 
 Docker ͱ͍͏ٕज़ɻ

Slide 13

Slide 13 text

ίϯςφٕज़ͷ֓ཁ

Slide 14

Slide 14 text

ίϯςφͱ͸ • ϗετ OS ্ʹ࿦ཧతͳ۠ըΛ࡞ΓɺΞϓϦʹ ඞཁͳϥΠϒϥϦ΍ΞϓϦΛ·ͱΊͯɺݸผͷ αʔόʔͷΑ͏ʹ࢖͑ΔΑ͏ʹͨ͠΋ͷɻ • ϦιʔεΛ࿦ཧతʹ෼཭͠ɺෳ਺ͷίϯςφͰ ڞ༗ͯ͠࢖༻͢Δɻ

Slide 15

Slide 15 text

Ծ૝Խͱίϯςφ ίϯςφ Ծ૝Խ ϋʔυ΢ΣΞ ϋΠύʔόΠβʔ Ծ૝؀ڥ ϛυϧ΢ΣΞ ΞϓϦ ήετ04 Ծ૝؀ڥ ϛυϧ΢ΣΞ ΞϓϦ ήετ04 ϋʔυ΢ΣΞ ϗετ04 ίϯςφϥϯλΠϜ ίϯςφ ϛυϧ΢ΣΞ ΞϓϦ ίϯςφ ϛυϧ΢ΣΞ ΞϓϦ

Slide 16

Slide 16 text

ίϯςφͱ͍͏֓೦ࣗମ͸ ੲ͔Βଘࡏ͢Δ…

Slide 17

Slide 17 text

ίϯςφͷྺ࢙ • FreeBSD Jail • Solaris Containers • Linux Containers (LXC)

Slide 18

Slide 18 text

Docker ͱ͸ • Docker ࣾʢچ dotCloud ࣾʣ͕։ൃͨ͠ OSSɻ • ίϯςφٕज़Λ࢖ͬͨΞϓϦͷ࣮ߦ؀ڥΛ
 ߏஙɾӡ༻͢ΔͨΊͷϓϥοτϑΥʔϜɻ • ΞϓϦʹඞཁͳϑΝΠϧΛίϯςφͱͯ͠·ͱΊɺ Πϝʔδͱͯ͠ڞ༗͢Δɻ • ϙʔλϏϦςΟ͕͋Γɺૉૣ࣮͘ߦͰ͖Δɻ

Slide 19

Slide 19 text

ίϯςφͱ͍͏֓೦͕Ұؾʹ ීٴͨ͠ͷ͕ Docker

Slide 20

Slide 20 text

Docker ͷྑ͍ͱ͜Ζ • Ծ૝ϚγϯΑΓ OS ىಈͳͲͷΦʔόʔϔου͕
 গͳܰ͘ྔɻ • ։ൃऀ͕ΠϝʔδΛ࡞Ε͹ӡ༻ऀ͸࣮ߦ͢Δ͚ͩɻ • Πϝʔδͷ഑෍͕؆୯ɻ • εέʔϧ͠΍͍͢ɻ • ҧ͏ͱ͜ΖͰ͍࣋ͬͯͬͯ΋ಈ͘ɻ

Slide 21

Slide 21 text

Docker ͷػೳ • ΠϝʔδΛ࡞ΔػೳʢBuildʣ • ΠϝʔδΛڞ༗͢ΔػೳʢShipʣ • ίϯςφΛಈ͔͢ػೳʢRunʣ

Slide 22

Slide 22 text

ΠϝʔδΛ࡞ΔػೳʢBuildʣ • Πϝʔδ͸ΞϓϦΛ࣮ߦ͢ΔͨΊʹඞཁͳΞϓϦɺ ϥϯλΠϜɺϥΠϒϥϦɺઃఆϑΝΠϧΛؚΜͩ ύοέʔδɻ • ҰͭͷΠϝʔδʹҰͭͷΞϓϦΛೖΕɺ
 ෳ਺ͷίϯςφΛ૊Έ߹Θͤͯߏங͢Δ͜ͱ͕
 ਪ঑͞Ε͍ͯΔɻ

Slide 23

Slide 23 text

ΠϝʔδΛڞ༗͢ΔػೳʢShipʣ • ΠϝʔδΛ Docker ϨδετϦͰڞ༗Ͱ͖Δɻ • ެ։͞Ε͍ͯΔΠϝʔδΛݩʹϥΠϒϥϦɺ ΞϓϦΛೖΕͨΠϝʔδΛॏͶͯΠϝʔδΛ ࡞͍ͬͯ͘ɻ • ࡞ͬͨΠϝʔδΛެ։ͯ͠ڞ༗͢Δ͜ͱ͕
 Ͱ͖Δɻ

Slide 24

Slide 24 text

ίϯςφΛಈ͔͢ػೳʢRunʣ • Docker Πϝʔδ͕͋Ε͹ɺDocker ϥϯλΠϜ͕
 ೖͬͯೖΕ͹Ͳ͜Ͱ΋ίϯςφ͕ಈ͔ͤΔɻ • ҰͭͷΠϝʔδ͔Βෳ਺ͷίϯςφΛ
 ಈ͔͢͜ͱ΋Ͱ͖Δɻ

Slide 25

Slide 25 text

֓೦ͷิ଍

Slide 26

Slide 26 text

Dockerfile • ϕʔεͱͳΔΠϝʔδɺίϯςφ಺Ͱߦ͏ૢ࡞ɺ ؀ڥม਺ͳͲͷઃఆɺίϯςφ಺Ͱಈ࡞͢Δ
 ϓϩηεΛؚΜͩߏ੒৘ใΛఆٛ͢ΔϑΝΠϧɻ • docker image build ίϚϯυͰ 
 Dockerfile ΛݩʹΠϝʔδΛ࡞੒͢Δɻ

Slide 27

Slide 27 text

Docker ϨδετϦ • Docker ΠϝʔδΛެ։ɾڞ༗͢ΔϨδετϦɻ • ެࣜͱͯ͠ Docker Hub ͕ެ։͞Ε͍ͯΔɻ • ࣗલͰϨδετϦΛཱͯΔ͜ͱ΋Մೳɻ • جຊతʹ͸ Docker Hub ʹެ։͞Ε͍ͯΔ
 ΠϝʔδΛݩʹ࡞੒͢Δɻ

Slide 28

Slide 28 text

Docker Hub • https://hub.docker.com/

Slide 29

Slide 29 text

ެࣜͷϦϙδτϦ • Docker ࣾͷݕࠪࡁΈͷϦϙδτϦɻ • ެࣜϕϯμʔ͔ΒΠϝʔδ͕ఏڙ͞Ε͍ͯΔɻ
 nginx, httpd, redis, mongo, ubuntu… • Dockerfile Λॻ͘ͱ͖ͷࢀߟʹ΋ͳΔɻ

Slide 30

Slide 30 text

ωοτϫʔΫ • αʔόʔͷ NIC ͕ docker0 ͱ͍͏Ծ૝ϒϦοδʹ
 ઀ଓ͞ΕΔɻ • 172.17.0.0/16 ͷαϒωοτϚεΫΛ࣋ͭ
 ϓϥΠϕʔτ IP ͕ίϯςφͷ eth0 ʹׂΓ౰ͯΒΕΔɻ • ίϯςφͷ eth0 ͸ɺϗετ OS ʹ࡞੒͞Εͨ
 Ծ૝NICʢvethxxxxxxʣͱϖΞͰׂΓ౰ͯΒΕΔɻ

Slide 31

Slide 31 text

ωοτϫʔΫߏ੒ ϗετ04 ίϯςφ ίϯςφ FUIʢ෺ཧ/*$ʣ EPDLFSʢԾ૝ϒϦοδʣ FUI FUI WFUIYYYYYYʢԾ૝/*$ʣ WFUIYYYYYYʢԾ૝/*$ʣ

Slide 32

Slide 32 text

·ͣ͸৮ͬͯΈΑ͏

Slide 33

Slide 33 text

Hello world Ͱಈ࡞֬ೝ͠Α͏ EPDLFSDPOUBJOFSSVOIFMMPXPSME ҎԼͷίϚϯυͰ hello-world Λදࣔ͢Δɻ

Slide 34

Slide 34 text

web αʔόʔΛಈ͔ͯ͠ΈΑ͏ • nginx ͷΠϝʔδΛऔಘ͢Δɻ
 • ΠϝʔδΛ֬ೝ͢Δɻ
 
 nginx ͱ͍͏໊લͷΠϝʔδ͕μ΢ϯϩʔυ͞Εɺ
 ༰ྔ͕ 109 MB ͱ͍͏͜ͱ͕Θ͔Δɻ EPDLFSJNBHFQVMMOHJOY EPDLFSJNBHFMT

Slide 35

Slide 35 text

nginx Λಈ͔ͯ͠ΈΑ͏ • nginx ͷΠϝʔδ͔Β nginx Λىಈ͢Δɻ
 nginx ͱ͍͏ΠϝʔδΛ࢖ͬͯɺweb ͱ͍͏
 ίϯςφ໊Ͱ 80 ϙʔτͰͷΞΫηεΛڐՄ͍ͯ͠Δɻ
 
 
 
 EPDLFSDPOUBJOFSSVOOBNFXFCEQOHJOY Φϓγϣϯ OBNFίϯςφͷ໊લΛࢦఆ͢Δɻ EEFUBDIίϯςφΛόοΫάϥ΢ϯυͰ࣮ߦ͢Δɻ QQVCMJTIϗετ04ͱίϯςφͷϙʔτΛϚοϐϯά͢Δɻ

Slide 36

Slide 36 text

nginx ͷಈ࡞֬ೝͯ͠ΈΑ͏ • ϒϥ΢β͔Β http://localhost:80/ ʹΞΫηεͯ͠ τοϓը໘͕දࣔ͞ΕͨΒಈ࡞֬ೝ׬ྃɻ

Slide 37

Slide 37 text

nginx ͷঢ়ଶΛ֬ೝͯ͠ΈΑ͏ • nginx ͷαʔόʔͷঢ়ଶΛ֬ೝ͢Δɻ
 
 web ͱ͍͏໊લͷίϯςφͰ nginx ͷϓϩηε͕ ىಈ͠ɺ80 ϙʔτΛసૹ͍ͯ͠Δ͜ͱ͕Θ͔Δɻ
 
 
 EPDLFSDPOUBJOFSMT

Slide 38

Slide 38 text

nginx ίϯςφΛఀࢭͯ͠ΈΑ͏ • web ίϯςφΛఀࢭ͢Δɻ • ίϯςφͷঢ়ଶΛ֬ೝ͢Δɻ
 -a ΦϓγϣϯΛ෇༩͢Δͱఀࢭ͍ͯ͠Δ
 ίϯςφͷঢ়ଶΛऔಘͰ͖Δɻ
 STATUS ͕ Exited ʹͳ͍ͬͯΔ͜ͱ͕෼͔Δɻ EPDLFSDPOUBJOFSTUPQXFC EPDLFSDPOUBJOFSMTB

Slide 39

Slide 39 text

nginx ίϯςφΛ࡟আͯ͠ΈΑ͏ • web ίϯςφΛఀࢭ͢Δɻ • ίϯςφͷঢ়ଶΛ֬ೝ͢Δɻ
 web ίϯςφ͕࡟আ͞Εɺଘࡏ͠ͳ͍͜ͱ͕
 ෼͔Δɻ
 EPDLFSDPOUBJOFSSNXFC EPDLFSDPOUBJOFSMTB

Slide 40

Slide 40 text

ຊεϥΠυͰ঺հ͢ΔίϚϯυ

Slide 41

Slide 41 text

Docker ίϚϯυ • docker image pull • docker image ls • docker image rm • docker image prune • docker container run • docker container create • docker container logs • docker container ls • docker container start • docker container stop • docker container rm • docker container attach • docker container prune • docker container exec • docker container cp • docker network ls • docker network create • docker network connect • docker network disconnect • docker network rm • docker system prune

Slide 42

Slide 42 text

Πϝʔδͷૢ࡞

Slide 43

Slide 43 text

ΠϝʔδΛऔಘ͢Δ • λά໊Λলུ͢Δͱ latest ͕࢖༻͞ΕΔ ɻ • ࣮ࡍʹར༻͢Δ࣌͸ɺͲͷΑ͏ͳόʔδϣϯ͕ಈ࡞ ͍ͯ͠Δ͔൑அͰ͖ͳ͍ͷͰɺlatest ͸࢖༻͠ͳ͍ɻ
 
 EPDLFSJNBHFQVMMΠϝʔδ໊<λά໊> VCVOUVΠϝʔδΛऔಘ͢Δྫ EPDLFSJNBHFQVMMVCVOUV

Slide 44

Slide 44 text

ΠϝʔδΛදࣔ͢Δ • ΠϝʔδΛ࡞੒͢ΔͱҰҙͷΠϝʔδ ID ͕
 ෇༩͞ΕΔɻ EPDLFSJNBHFMT<Φϓγϣϯ><ϦϙδτϦ໊> Φϓγϣϯ
 BBMMதؒΠϝʔδ΋ؚΊͯશͯͷΠϝʔδΛදࣔ͢Δɻ

Slide 45

Slide 45 text

ΠϝʔδΛ࡟আ • ෳ਺ͷΠϝʔδΛ࡟আ͢Δ࣌͸εϖʔεͰ۠੾Δɻ • ະ࢖༻ͷΠϝʔδΛશͯ࡟আ͢Δʹ͸
 EPDLFSJNBHFSN<Φϓγϣϯ>Πϝʔδ໊<Πϝʔδ໊> VCVOUVΠϝʔδΛ࡟আ͢Δྫ EPDLFSJNBHFSNVCVOUV EPDLFSJNBHFQSVOFB

Slide 46

Slide 46 text

ίϯςφͷىಈɾఀࢭɾ࡟আ

Slide 47

Slide 47 text

ίϯςφͷϥΠϑαΠΫϧ %PDLFSίϯςφ εφοϓ γϣοτ ࡞੒ %PDLFSίϯςφ εφοϓ γϣοτ ϓϩηε ىಈ %PDLFSίϯςφ εφοϓ γϣοτ ఀࢭ %PDLFSίϯςφ εφοϓ γϣοτ ࡟আ docker container create ίϯςφ࡞੒ docker container run ίϯςφ࡞੒ɾىಈ docker container stop ίϯςφఀࢭ Docker Πϝʔδ docker container start ίϯςφىಈ docker container rm ίϯςφ࡟আ docker container start ίϯςφىಈ

Slide 48

Slide 48 text

ίϯςφ࡞੒ • ಛఆͷλΠϛϯάͷϑΝΠϧ΍σΟϨΫτϦ Λ࣋ͬͨίϯςφΛ࡞੒͢Δɻ • ىಈ͢Δ४උ͕੔ͬͨίϯςφ͕࡞੒͞ΕΔɻ EPDLFSDPOUBJOFSDSFBUFa <Φϓγϣϯ>Πϝʔδ໊<λά໊><ίϚϯυ><Ҿ਺> TBNQMFΠϝʔδΛ࡞੒͢Δྫ EPDLFSDPOUBJOFSDSFBUFTBNQMFWCBTI

Slide 49

Slide 49 text

ίϯςφ࡞੒ɾىಈ • ίϯςφΛ࡞Γɺىಈ͢Δɻ Φϓγϣϯ OBNFίϯςφͷ໊લΛࢦఆ͢Δɻ EEFUBDIίϯςφΛόοΫάϥ΢ϯυͰ࣮ߦ͢Δɻ JJOUFSBDUJWFඪ४ೖྗΛ։͘ɻ UUUZ୺຤σόΠεΛ࢖͏ɻ QQVCMJTIϗετ04ͱίϯςφͷϙʔτΛϚοϐϯά͢Δɻ SNίϯςφऴྃ࣌ʹίϯςφΛࣗಈ࡟আ͢Δɻ OFU઀ଓ͢ΔίϯςφͷωοτϫʔΫΛࢦఆ͢Δɻ
 FFOW؀ڥม਺Λઃఆ͢Δɻ EPDLFSDPOUBJOFSSVOa <Φϓγϣϯ>Πϝʔδ໊<λά໊><ίϚϯυ>

Slide 50

Slide 50 text

ίϯςφ࡞੒ɾىಈ FDIPίϚϯυΛ࣮ߦ͢Δྫ EPDLFSDPOUBJOFSSVOOBNFTBNQMFDFOUPTFDIPIFMMP όοΫάϥ΢ϯυͰQJOHίϚϯυΛ࣮ߦ͢Δྫ EPDLFSDPOUBJOFSSVOEOBNFTBNQMFDFOUPTQJOHMPDBMIPTU CBTIίϚϯυΛ࣮ߦͯ͠ίϯςφ಺ʹೖΔྫ EPDLFSDPOUBJOFSSVOOBNFTBNQMFJUDFOUPTCBTI

Slide 51

Slide 51 text

ίϯςφͷϩά֬ೝ • ίϯςφͷϩάΛ֬ೝ͢Δɻ EPDLFSDPOUBJOFSMPHT<Φϓγϣϯ>ίϯςφ໊ Φϓγϣϯ GGPMMPXϩάग़ྗΛଓ͚Δɻ UBJMϩάͷ຤ඌΛදࣔ͢Δɻ

Slide 52

Slide 52 text

ίϯςφͷىಈ • ఀࢭதͷίϯςφΛىಈ͢Δɻ EPDLFSDPOUBJOFSTUBSU<Φϓγϣϯ>ίϯςφ໊<ίϯςφ໊> TBNQMFίϯςφΛىಈ͢Δྫ EPDLFSDPOUBJOFSTUBSUTBNQMF

Slide 53

Slide 53 text

ίϯςφͷఀࢭ • ىಈ͍ͯ͠ΔίϯςφΛఀࢭ͠·͢ɻ • ίϯςφΛ࡟আ͢Δ࣌͸ίϯςφΛఀࢭͯ͠ ͓͘ඞཁ͕͋Δɻ EPDLFSDPOUBJOFSTUPQ<Φϓγϣϯ>ίϯςφ໊<ίϯςφ໊> TBNQMFίϯςφΛఀࢭ͢Δྫ EPDLFSDPOUBJOFSTUPQTBNQMF

Slide 54

Slide 54 text

ίϯςφͷ࡟আ • ఀࢭ͍ͯ͠ΔίϯςφΛ࡟আ͢Δɻ • ఀࢭதͷશίϯςφΛ࡟আ͢Δʹ͸
 docker container prune EPDLFSDPOUBJOFSSN<Φϓγϣϯ>ίϯςφ໊<ίϯςφ໊> TBNQMFίϯςφΛ࡟আ͢Δྫ EPDLFSDPOUBJOFSSNTBNQMF

Slide 55

Slide 55 text

ίϯςφͷωοτϫʔΫ

Slide 56

Slide 56 text

ωοτϫʔΫͷදࣔ EPDLFSOFUXPSLMT<Φϓγϣϯ> ωοτϫʔΫҰཡΛදࣔ͢Δྫ EPDLFSOFUXPSLMT

Slide 57

Slide 57 text

ωοτϫʔΫͷ࡞੒ • σϑΥϧτ͸ bridge υϥΠό͕࢖༻͞ΕΔɻ
 ΦʔόʔϨΠωοτϫʔΫ͸
 ෳ਺ϗετؒωοτϫʔΫɻ EPDLFSOFUXPSLDSFBUF<Φϓγϣϯ>ωοτϫʔΫ໊ ωοτϫʔΫΛ࡞੒͢Δྫ EPDLFSOFUXPSLDSFBUFESJWFSCSJEHFNZOFU Φϓγϣϯ EESJWFSωοτϫʔΫϒϦοδ·ͨ͸ΦʔόʔϨΠΛࢦఆ͢Δɻ

Slide 58

Slide 58 text

ωοτϫʔΫͷ઀ଓɾ੾அ ωοτϫʔΫ઀ଓ
 EPDLFSOFUXPSLDPOOFDU<Φϓγϣϯ>a ωοτϫʔΫ໊ίϯςφ໊ TBNQMFίϯςφΛNZOFUωοτϫʔΫʹ઀ଓ͢Δྫ EPDLFSOFUXPSLDPOOFDUNZOFUTBNQMF ωοτϫʔΫ੾அ
 EPDLFSOFUXPSLEJTDPOOFDU<Φϓγϣϯ>a ωοτϫʔΫ໊ίϯςφ໊

Slide 59

Slide 59 text

ωοτϫʔΫͷ઀ଓɾ੾அ • ωοτϫʔΫͷ઀ଓ͸ɺίϯςφͷىಈ࣌ʹ ߦ͏͜ͱ΋Ͱ͖Δɻ OHJOYΛTBNQMFίϯςφͱ͍͏໊લͰ ɹNZOFUωοτϫʔΫʹ઀ଓͯ͠ىಈ͢Δྫ EPDLFSDPOUBJOFSSVOEOBNFTBNQMFJUa OFUNZOFUOHJOY

Slide 60

Slide 60 text

ωοτϫʔΫͷ࡟আ • ࡟আ͢Δʹ͸ɺ઀ଓதͷશͯͷίϯςφ͕
 ੾அ͞Ε͍ͯΔඞཁ͕͋Δɻ EPDLFSOFUXPSLSN<Φϓγϣϯ>ωοτϫʔΫ໊ ωοτϫʔΫΛ࡟আ͢Δྫ EPDLFSOFUXPSLSNNZOFU

Slide 61

Slide 61 text

Քಇίϯςφ΁ͷૢ࡞

Slide 62

Slide 62 text

Քಇίϯςφ΁ͷ઀ଓ • Քಇ͍ͯ͠Δίϯςφʹ઀ଓ͢Δɻ • ൈ͚Δʹ͸ Ctrl + p, Ctrl + q Λೖྗ͢Δɻ EPDLFSDPOUBJOFSBUUBDI<Φϓγϣϯ>ίϯςφ໊ TBNQMFίϯςφʹ઀ଓ͢Δྫ EPDLFSDPOUBJOFSBUUBDITBNQMF

Slide 63

Slide 63 text

ՔಇίϯςφͰίϚϯυ࣮ߦ • Քಇ͍ͯ͠ΔίϯςφͰ৽ͨʹϓϩηεΛ
 ࣮ߦ͢Δɻ EPDLFSDPOUBJOFSFYFD<Φϓγϣϯ>ίϯςφ໊ίϚϯυ<Ҿ਺> TBNQMFίϯςφʹCBTIίϚϯυΛ࣮ߦ͢Δྫ EPDLFSDPOUBJOFSFYFDJUTBNQMFCBTI Φϓγϣϯ EEFUBDIίϯςφΛόοΫάϥ΢ϯυͰ࣮ߦ͢Δɻ JJOUFSBDUJWFඪ४ೖྗΛ։͘ɻ UUUZ୺຤σόΠεΛ࢖͏ɻ

Slide 64

Slide 64 text

ϑΝΠϧΛίϐʔ ίϯςφ͔Βϗετ04΁ͷϑΝΠϧίϐʔ
 EPDLFSDPOUBJOFSDQίϯςφ໊ίϯςφ಺ͷϑΝΠϧύεa ϗετ04ͷσΟϨΫτϦύε ϗετ04͔Βίϯςφ΁ͷϑΝΠϧίϐʔ
 EPDLFSDPOUBJOFSDQϗετ04ͷσΟϨΫτϦύεa ίϯςφ໊ίϯςφ಺ͷϑΝΠϧύε ϗετ04͔Βίϯςφ΁ͷϑΝΠϧΛίϐʔ͢Δྫ EPDLFSDPOUBJOFSDQOHJOYDPOGOHJOYFUDOHJOYOHJOYDPOG

Slide 65

Slide 65 text

ෆཁͳΠϝʔδɾίϯςφΛ Ұׅ࡟আ • ࢖༻͍ͯ͠ͳ͍Πϝʔδɾίϯςφɾ
 ϘϦϡʔϜɾωοτϫʔΫΛҰׅͰ࡟আ͢Δɻ EPDLFSTZTUFNQSVOF<Φϓγϣϯ> Φϓγϣϯ BBMM࢖༻͍ͯ͠ͳ͍ϦιʔεΛશͯ࡟আ͢Δɻ GGPSDFڧ੍తʹ࡟আ͢Δɻ

Slide 66

Slide 66 text

ϋϯζΦϯ

Slide 67

Slide 67 text

͓୊ • ubuntu:18.04 ͱ mysql:5.7 ΛϕʔεΠϝʔδʹͨ͠ίϯςφΛ
 ىಈ͢Δɻ • ubuntu ίϯςφʹ͸ɺapt-get Ͱ mysql-clientΛ
 Πϯετʔϧ͢Δɻ • ωοτϫʔΫΛ৽ن࡞੒ͯͦ͠ΕͧΕͷίϯςφͰ
 ಉ͡ωοτϫʔΫʹ઀ଓ͢Δɻ • ubuntu ίϯςφ͔Β mysql ίϚϯυΛ࢖༻ͯ͠
 mysql ίϯςφͷ MySQL ʹ઀ଓ͢Δɻ

Slide 68

Slide 68 text

ubuntu ίϯςφΛىಈ͢Δ • ubuntu ίϯςφΛىಈ͢Δɻ • ubuntu ίϯςφͷঢ়ଶΛ֬ೝ͢Δɻ EPDLFSDPOUBJOFSSVOEOBNFNZTRMDMJJUa VCVOUVCBTI EPDLFSDPOUBJOFSMT

Slide 69

Slide 69 text

ubuntu ίϯςφʹ
 mysql-client ΛΠϯετʔϧ͢Δ • ubuntu ίϯςφʹΞλον͢Δɻ • ubuntu ίϯςφʹ mysql-client ΛΠϯετʔϧ
 ͯ͠ɺubuntu ίϯςφ͔Βൈ͚͓ͯ͘ɻ EPDLFSDPOUBJOFSBUUBDINZTRMDMJ BQUHFUVQEBUFBQUHFUJOTUBMMZNZTRMDMJFOU $USM Q $USM R

Slide 70

Slide 70 text

ωοτϫʔΫΛ࡞੒ͯ͠
 ઀ଓ͢Δ • ωοτϫʔΫΛ࡞੒͢Δɻ • ubuntu ίϯςφΛ࡞੒ͨ͠ωοτϫʔΫʹ
 ઀ଓ͢Δɻ EPDLFSOFUXPSLDSFBUFNZOFU EPDLFSOFUXPSLDPOOFDUNZOFUNZTRMDMJ

Slide 71

Slide 71 text

mysql ίϯςφΛىಈͯ͠
 ࡞੒ͨ͠ωοτϫʔΫʹ઀ଓ͢Δ • mysql ίϯςφΛىಈͯ͠ɺ
 ىಈ࣌ʹ࡞੒ͨ͠ωοτϫʔΫΛࢦఆ͢Δɻ • MYSQL_ALLOW_EMPTY_PASSWORD ͱ͍͏ ؀ڥม਺͕ඞཁͳͷͰ yes Λࢦఆ͍ͯ͠Δɻ EPDLFSDPOUBJOFSSVOEOBNFNZTRMOFUNZOFUa F.:42-@"--08@&.15:@1"44803%ZFTNZTRM

Slide 72

Slide 72 text

ubuntu ίϯςφ͔Β
 mysql ίϯςφʹ઀ଓ͢Δ • ubuntu ίϯςφʹΞλον͢Δɻ • ubuntu ίϯςφ͔Β mysql ίϚϯυΛ࢖༻͠ ͯ mysql ίϯςφͷ MySQL ʹ઀ଓ͢Δɻ EPDLFSDPOUBJOFSBUUBDINZTRMDMJ ˌNZTRMINZTRM

Slide 73

Slide 73 text

MySQL ͷίϯςφΛىಈͯ͠
 ผͷίϯςφ͔Β MySQL ʹ
 ઀ଓ͢Δ͜ͱ͕Ͱ͖ͨʂ

Slide 74

Slide 74 text

͍͞͝ʹ

Slide 75

Slide 75 text

Docker ͕࢖͑Ε͹ Πϯϑϥͷ஌ࣝ͸͍Βͳ͍ʁ

Slide 76

Slide 76 text

No

Slide 77

Slide 77 text

Linux ΍ωοτϫʔΫ౳ͷ ஌͕ࣝෆཁʹͳΔΘ͚Ͱ͸ͳ͍ɻ

Slide 78

Slide 78 text

Docker Λ཈͓͑ͯ͘ͱ ؀ڥߏஙָ͕ʹͳΔ͠ɺ ϛυϧ΢ΣΞΛࢼ͢ͷ΋
 ָʹͳΔɻ

Slide 79

Slide 79 text

దࡐదॴΛཧղͯ͠ Docker ͱ͍͏Ұͭͷٕज़Λ ࢖ͬͯΈΑ͏ɻ

Slide 80

Slide 80 text

·ͱΊ

Slide 81

Slide 81 text

·ͱΊ • Docker पลΛऔΓר͘എܠ͕͋Δɻ • Docker ͷ֓೦Λ཈͑ͨɻ • ͋Δఔ౓ Docker ίϚϯυʹ৮Εͨɻ • Docker Λ֮͑ͨͱͯ͠΋ Linux ΍
 ωοτϫʔΫ౳ͷ஌ࣝ͸ඞཁɻ

Slide 82

Slide 82 text

جૅฤ1 ͓ΘΓ ࣍ճ͸ Dockerfile ΍ docker-compose ʹ
 ৮ΕΔͷͰָ͓͠Έʹʂ

Slide 83

Slide 83 text

Appendix

Slide 84

Slide 84 text

ࢀߟจݙ • DevOpsಋೖࢦೆ Infrastructure as CodeͰνʔϜ։ൃɾαʔϏεӡ༻Λޮ཰Խ͢Δ • ϓϩάϥϚͷͨΊͷDockerڭՊॻ ୈ2൛ Πϯϑϥͷجૅ஌ࣝ&ίʔυʹΑΔ؀ڥߏஙͷࣗ ಈԽ • ίϯςφɾϕʔεɾΦʔέετϨʔγϣϯ Docker/KubernetesͰ࡞ΔΫϥ΢υ࣌୅ͷγε ςϜج൫ • https://docs.docker.com/ • http://blogs.itmedia.co.jp/narisako/2014/07/post-047f.html • https://www.slideshare.net/zembutsu/introduction-to-docker-management-and- operations-basic • https://knowledge.sakura.ad.jp/15940/