Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Dockerはじめの一歩 / The first step of Docker
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ihcomega56
April 22, 2021
Technology
1.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dockerはじめの一歩 / The first step of Docker
JFrog webinar
ihcomega56
April 22, 2021
More Decks by ihcomega56
See All by ihcomega56
JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
ihcomega56
1
190
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
2.1k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.7k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
280
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.5k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
350
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
580
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6.9k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.9k
Other Decks in Technology
See All in Technology
Don't write the architecture only in the prompt.
neohsu
0
260
Adversary Infrastructure Hunting101
disconinja
0
180
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
130
2拠点SRE活動始めてみた | sogaoh's LT @ ホンマでっかSRE勉強会 #3
sogaoh
PRO
0
180
SLOを阻む不安
sraku2159
0
110
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
280
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
1
140
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
870
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
130
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
340
AIテスト自動化と評価駆動開発EDD
happysamurai294
0
100
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
4
600
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Building AI with AI
inesmontani
PRO
1
1.3k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
750
How to train your dragon (web standard)
notwaldorf
96
6.9k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
500
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
660
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
870
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
550
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
Discover your Explorer Soul
emna__ayadi
2
1.3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
820
Transcript
None
2 ͡Ίʹ • ࢿྉͱಈըޙ΄Ͳެ։͠·͢ ϝʔϧͰ͓Βͤ͠·͢ • ࣭;00.ͷઐ༻ػೳΛͬͯਵ࣌ॻ͖ࠐΜͰ͍ͩ͘͞ • ;00.ͷνϟοτࣗ༝ʹ͓͍͍ͩ͘͞ •
5XJUUFS͕͖ͳํ +'SPHͰπΠʔτ͓ئ͍͠·͢ !"#$%& '()*+, -./01
3 ࣗݾհ Α͜ͳ "ZBOB:PLPUB • +'SPHͷ%FWFMPQFS"EWPDBUF • લ৬·ͰओʹόοΫΤϯυͷ։ൃ ʢ4*FS ࠂձࣾ
ূ݊ελʔτΞοϓʣ • (8͕͙ͦ͢͜ʹʂ !"#$$%&' (#)*+,%-.
ʮ͡ΊͷҰาʯγϦʔζ ಛ • ಛఆͷٕज़ʹ͍ͭͯɺΠϥετྫ͑Λͬͯઆ໌͠·͢ • ࣄΛֶͿ࣌֓ཁશମ૾Λ͔ͬͯΒਂງΓ͍ͨ͠ɺ ͰࣗྗͰ࢝ΊΔͷ͕ۤख ࠳ંͪ͠Ό͏ ʹΦεεϝͰ͢
• ͱʹ͔ࣗ͘Β৮ͬͯಈ͔ͯ͠Έ͍ͨʹΓͳ͍͔ʜ աڈ࡞ • ,VCFSOFUFT͡ΊͷҰา IUUQTTQFBLFSEFDLDPNJIDPNFHBUIFGJSTUTUFQPGLVCFSOFUFT • (JU (JU)VC(JU)VC"DUJPOT͡ΊͷҰา IUUQTTQFBLFSEFDLDPNJIDPNFHBUIFGJSTUTUFQPGHJUHJUIVCBOEHJUIVCBDUJPOT
ࠓͷςʔϚ%PDLFSೖʂ
%PDLFSΛ͏ͨΊͷ ΠϝʔδΛ௫ΜͰཉ͍͠ʂ طʹ͍ͬͯΔํ͓͞Β͍ࣝͷཧʹ
͘͠ΈΛৄ͘͠ ԐͰΘ͔Δίϯςφ IUUQTTQFBLFSEFDLDPNUTVZPBNPOLFZTHVJEFUPDPOUBJOFS /01 23456 789:;<
%PDLFSͱ !"#$%
ίϯςφͱ ιϑτΣΞͷίʔυͱґଘؔΛͯ͢ύοέʔδԽ࣮͠ߦ ڥ͔Βִ͢Δ͜ͱͰɺ͋ΒΏΔΠϯϑϥ্ͰΞϓϦέʔγϣϯ ͷૉૣ҆͘ఆ࣮ͨ͠ߦΛՄೳʹ͢Δͷ ࢀߟ IUUQTXXXEPDLFSDPNSFTPVSDFTXIBUDPOUBJOFS IUUQTXXXJCNDPNDMPVEMFBSODPOUBJOFSJ[BUJPO IUUQTDMPVEHPPHMFDPNDPOUBJOFST
ಥવͰ͕͢ɺ
ࠓ͔Β৽͍͠νʔϜͰ ࣄΛ͢Δ͜ͱʹͳͬͨͱ͠Α͏
։ൃڥߏங͢ΔΑͶ ։ൃऀ͡Όͳ͍߹͝ΊΜͳ͍͞ ࣄʹඞཁͳ४උηοτΞοϓΛ Πϝʔδ͍ͯͩ͘͠͞
օ͞Μͷࢥ͏ ʮ։ൃڥߏஙʯ ͱʁ
ʮ͏ͪ%PDLFSͬͯ։ൃͯ͠Δ͔Β γϡοͱڥ࡞ͬͪΌͬͯʙʯ ͳͲͱݴΘΕͨΒ
ώϠοͱ͢Δʁ خ͘͠ͳΔʁ
%PDLFSͷͳ͍։ൃڥߏங ։ൃ ؤுΔͧ
%PDLFSͷͳ͍։ൃڥߏங ڥߏங खॱͰ͢ ։ൃ ؤுΔͧ
%PDLFSͷͳ͍։ൃڥߏங ڥߏங खॱͰ͢ ઃ ఆ ϑ Ν Π ϧ
Λ ॻ ͖ ͑ Δ ݴ ޠ ͷ ։ ൃ Ω ο τ Λ Π ϯ ε τ ʔ ϧ ͢ Δ σ ʔ λ ϕ ʔ ε Λ Π ϯ ε τ ʔ ϧ ͢ Δ σ ʔ λ ϕ ʔ ε ͷ ς ʔ ϒ ϧ Ϣ ʔ β ʔ Λ ༻ ҙ ͢ Δ σ ʔ λ Λ ొ ͢ Δ *%& ς Ω ε τ Τ σ Ο λ Λ Π ϯ ε τ ʔ ϧ ͢ Δ ͦ ͷ ଞ ඞ ཁ ͳ ϛ υ ϧ Σ Ξ Λ ༻ ҙ ͢ Δ
%PDLFSͷͳ͍։ൃڥߏங Τϥʔ͕ ग़ͨ खॱॻ͕ ݹ͍ ྡͷਓͱ Կ͔ҧ͏ όʔδϣϯ ҧͬͨ
ઃ ఆ ϑ Ν Π ϧ Λ ॻ ͖ ͑ Δ ݴ ޠ ͷ ։ ൃ Ω ο τ Λ Π ϯ ε τ ʔ ϧ ͢ Δ σ ʔ λ ϕ ʔ ε Λ Π ϯ ε τ ʔ ϧ ͢ Δ σ ʔ λ ϕ ʔ ε ͷ ς ʔ ϒ ϧ Ϣ ʔ β ʔ Λ ༻ ҙ ͢ Δ σ ʔ λ Λ ొ ͢ Δ *%& ς Ω ε τ Τ σ Ο λ Λ Π ϯ ε τ ʔ ϧ ͢ Δ ͦ ͷ ଞ ඞ ཁ ͳ ϛ υ ϧ Σ Ξ Λ ༻ ҙ ͢ Δ
%PDLFSͷͳ͍։ൃڥߏங %PDLFS্Ͱಈ͔͢νϟϯεʂ ઃ ఆ ϑ Ν Π ϧ Λ
ॻ ͖ ͑ Δ ݴ ޠ ͷ ։ ൃ Ω ο τ Λ Π ϯ ε τ ʔ ϧ ͢ Δ σ ʔ λ ϕ ʔ ε Λ Π ϯ ε τ ʔ ϧ ͢ Δ σ ʔ λ ϕ ʔ ε ͷ ς ʔ ϒ ϧ Ϣ ʔ β ʔ Λ ༻ ҙ ͢ Δ σ ʔ λ Λ ొ ͢ Δ *%& ς Ω ε τ Τ σ Ο λ Λ Π ϯ ε τ ʔ ϧ ͢ Δ ͦ ͷ ଞ ඞ ཁ ͳ ϛ υ ϧ Σ Ξ Λ ༻ ҙ ͢ Δ
%PDLFSͷ͋Δ։ൃڥߏங %PDLFSΛ Π ϯ ε τ ʔ ϧ ͢
Δ %PDLFSΠ ϝ ʔ δ Λ औ ಘ ͢ Δ ͜͏ͳΔ͔ ઃ ఆ ϑ Ν Π ϧ Λ ॻ ͖ ͑ Δ ݴ ޠ ͷ ։ ൃ Ω ο τ Λ Π ϯ ε τ ʔ ϧ ͢ Δ *%& ς Ω ε τ Τ σ Ο λ Λ Π ϯ ε τ ʔ ϧ ͢ Δ
ͭͣͭΠϯετʔϧ͢Δ ίϯςφಋೖલ ։ൃڥߏங =>?6@ AB;C9D EFGH 04 ݴޠ ύοέʔδ
Ϛωʔδϟʔ σʔλϕʔε ϛυϧΣΞ
·ͱΊͯऔಘ͢Δ ίϯςφಋೖޙ ։ൃڥߏங ίϯςφ ݴޠ ύοέʔδ Ϛωʔδϟʔ σʔλϕʔε ίϯςφ
ίϯςφΤϯδϯ 04 σʔλ ೖΓ ϛυϧΣΞ
ۃͳ IJKLM NOPQR EFS43H ͜ΕͰ։ൃڥߏங͕ࡁΜ͡Ό͏ த͔ΒΜʂ 04 ίϯςφΤϯδϯ ίϯςφ
ίϯςφͱ ιϑτΣΞͷίʔυͱґଘؔΛͯ͢ύοέʔδԽ࣮͠ߦڥ͔Βִ ͢Δ͜ͱͰɺ͋ΒΏΔΠϯϑϥ্ͰΞϓϦέʔγϣϯͷૉૣ҆͘ఆͨ͠ ࣮ߦΛՄೳʹ͢Δͷ ࠶ܝ ͭ·Γ • ඞཁͳΞϓϦέʔγϣϯ σʔλϕʔεͦͷଞϛυϧΣΞɺ
ࣗͰ࡞ͬͨΞϓϦͳͲ ͱͦͷઃఆΛͻͱ·ͱΊʹͯ͠ • ಈ͔͍ͨ͠Πϯϑϥ ڥߏஙͷ߹ɺ։ൃ͢ΔਓͷϚγϯ ্ Ͱ͙͢ʹ࣮ߦͰ͖Δ
ίϯςφͷϝϦοτ • ؆୯ͳखॱͰ࣮ݱ͍ͨ͠ڥΛ࡞Ͱ͖Δ • ಉ͡ઃఆͰಉ͡ڥΛԿͰ࡞Ͱ͖ΔͷͰ • ϝϯόʔͷ૿һʹରԠ͍͢͠ • ڥ͝ͱʹ݁Ռ͕ҟͳͬͯ͠·͏ͷΛආ͚ΒΕΔ
• ઃఆͨ͠༰͕ͦͷ··࣮ݱ͞ΕΔͷͰɺखॱॻͱҧ͏͜ͱʹ ·͞ΕΔՄೳੑ͘ͳΔ
ͪΖΜڥߏங͕ ָʹͳΔ͚ͩ͡Όͳ͍
ผͷϝϦοτΛΔͨΊʹ ؆୯ͳྺ࢙ͷΛʜ
͔ͭͯͷ։ൃ • ͭͷ ཧ αʔόʔ্ͰෳͷΞϓϦέʔγϣϯΛՔಇͤ͞Δ • ಉ͡ڥͰಈ͘ΞϓϦέʔγϣϯಉ͕࢜ӨڹΛ༩͑߹ͬͨΓɺ ϦιʔεΛୣ͍߹ͬͨΓͯ͠͠·͏ 04
ΞϓϦέʔ γϣϯ ΞϓϦέʔ γϣϯ ΞϓϦέʔ γϣϯ αʔόʔ
ԾϚγϯͷ಄ • ԾԽιϑτΣΞΛ༻͍ͯɺͷαʔόʔʹෳͷԾత ͳαʔόʔ ԾϚγϯ Λߏங͢Δ • ԾϚγϯຖʹڥ 04ɺϛυϧΣΞɺΞϓϦέʔγϣϯ
͕Ͱ͖ɺཧϚγϯʹΑΔӡ༻ΑΓϝϦοτ͕େ͖͍ ͨΊਁಁͨ͠ • 04ͷΠϯετʔϧىಈ͕ඞཁͳɺϋʔυΣΞϦιʔε ࣌ؒΛ ൺֱత ଟ͘ཁ͢Δ Θͨ͠ ιϑτΣΞͷྗ ·ΔͰ ʂ ྫ αʔόʔͷ ԾԽ
• ίϯςφͰ࣮ݱ͍ͯ͠ΔͷԾԽͷҰछͰ͋Δ • αʔόʔΛԾԽ͢ΔͱϋʔυΣΞ͕ෳ͋Δ͔ͷΑ͏ʹ ݟ͑ΔͷͰɺ͜ΕΛʮϋʔυΣΞϨϕϧͷԾԽʯͱݺͿ • ίϯςφಉҰ04্ͰԾԽΛ࣮ݱ͢Δʮ04ϨϕϧͷԾ Խʯʹ͋ͨΔ ίϯςφʹΑΔԾԽ
ϗετ04 ίϯςφΤϯδϯ ίϯςφ ΞϓϦ ΞϓϦ ΞϓϦ ίϯςφ ΞϓϦ ΞϓϦ ϋΠύʔόΠβʔ 7. ΞϓϦ ΞϓϦ ΞϓϦ 7. ΞϓϦ ΞϓϦ ήετ04 ήετ04 ·ΔͰ ผʑͷ αʔόʔʂ ·ΔͰ ผʑͷ 04ʂ ϋʔυΣΞ Ϩϕϧͷ ԾԽ 04Ϩϕϧͷ ԾԽ αʔόʔ αʔόʔ ˞ॴҦʮϋΠύʔόΠβʔܕʯͷਤɻ04ͱઐ༻ιϑτΛ͏ʮϗετܕʯ͋Δ
• ϋʔυΣΞελοΫ04 ͷϑϧػೳ Λؚ·ͣɺΞϓϦ έʔγϣϯͱґଘؔͷΈΛύοέʔδԽ͢ΔͨΊ • ىಈ͕͍࣌ؒ • ύοέʔδͷαΠζ͕খ͍͞ •
༻͢ΔϋʔυΣΞϦιʔε͕খ͍͞ ˠࡢࠓͷιϑτΣΞ։ൃͷτϨϯυͱϚον͢Δ • Ϋϥυ • %FW0QT • $*$% • ϚΠΫϩαʔϏε ͳͲ ίϯςφʹΑΔԾԽͷϝϦοτ TUV<
• ཧαʔόʔΛ͏ͷʹൺΔͱύϑΥʔϚϯε͕Լ ͢Δ • ରԠ͍ͯ͠ͳ͍04ϓϥοτϑΥʔϜ্Ͱ͑ͳ͍ • ͲΜͳΞϓϦέʔγϣϯͰίϯςφԽͰ͖ΔΘ͚Ͱͳ͍ ίϯςφʹΑΔԾԽͷσϝϦοτ WXY
Z[\]9^ _`a SbKcdEb
%PDLFSͱ • ίϯςφΛͬͯΞϓϦέʔγϣϯͷ࡞औಘɺஔɺ࣮ߦ ͳͲΛߦ͏ͨΊͷϓϥοτϑΥʔϜɻίϯςφΤϯδϯͷͭ ͭ·ΓɺίϯςφΛ͏ͨΊͷͷͩʂ • -JOVYɺ8JOEPXTɺ.BDͰ͑Δ • ΦʔϓϯιʔειϑτΣΞ
• (Pݴޠ • ʹEPU$MPVE͕ࣾ։ൃ ͦͷޙ%PDLFSࣾʹ໊ࣾΛมߋ͠ɺ ࠓ%PDLFS͕ࣾ։ൃɺཧ͍ͯ͠Δ eBf]Y gh1Pi5jk lmnmod^ pG5qr
͔͜͜Β நతͳίϯςφͷͰͳ͘ %PDLFSͷΛ͍ͯ͘͠Α
ΞϓϦέʔγϣϯΛ 04ͷ্Ͱ͡Όͳͯ͘ ίϯςφ্Ͱಈ͔ͤΔͬͯ ֶΜ͚ͩͲ
ͦΕΛ%PDLFSͰͲ͏Δͷʁ
%PDLFSͷΞʔΩςΫνϟ • %PDLFSσʔϞϯ͕ίϯςφͷཧ࣮ߦΛߦ͏ • Ϣʔβʔ%PDLFSΫϥΠΞϯτͱΓͱΓ͢Δ͜ͱͰؒతʹ σʔϞϯͰΓ͍ͨ͜ͱΛ࣮ݱ͢Δ • ʑͷ։ൃΛ͢Δ্ͰσʔϞϯͱΫϥΠΞϯτͷҧ͍͋·Γ ҙࣝ͠ͳ͍
%PDLFS ΫϥΠΞϯτ %PDLFSσʔϞϯ ίϯ ςφ ίϯ ςφ ίϯ ςφ ίϚϯυΛ ͏ %PDLFSΤϯδϯ
• ίϯςφΛ࡞͢ΔͨΊͷ໋ྩ͕ೖͬͨύοέʔδ • طʹଘࡏ͢ΔͷΛ͏͜ͱɺ࡞Δ͜ͱͰ͖Δ • Πϝʔδ͕࣮ߦঢ়ଶʹͳͬͨΠϯελϯε͕ίϯςφ %PDLFSΠϝʔδ %PDLFS Πϝʔδ
࣮ߦڥͱͯ͠"MQJOF ܰྔͷ-JOVY Λͬͯʂ +BWBͱ(SBEMFΛΠϯετʔϧͯ͠ʂ ࣮ߦϑΝΠϧ͜ͷσΟϨΫτϦʹஔͯ͠ʂ +BWBΞϓϦέʔγϣϯΛ࣮ߦͯ͠ʂ
·ͣطଘͷΠϝʔδΛ ͏ํ๏Λ௫ΜͰ͍͜͏
͜ͷࢿྉͰͷ%PDLFSίϚϯυͷѻ͍ํ • ͜ΕҎ߱ɺઆ໌ʹؔ࿈͢ΔίϚϯυΛ্هϑΥʔϚοτͰεϥΠυʹهࡌ ͠·͢ • ίϚϯυͷ໊લΛհ͢ΔʹͱͲΊɺҾΦϓγϣϯͳͲΛৄ͘͠આ໌ ͢Δ͜ͱ ΄ͱΜͲ ͠·ͤΜ
• ࠓΠϝʔδΛ௫Ή͜ͱ͕తͰ͋ΔͨΊ • ίϚϯυͷ۩ମతͳ͍ํखΛಈ͔͞ͳ͍ͱʹ͔ͭͳ͍ͱߟ͑ΔͨΊ ίϯςφΛ࡞ɾ࣮ߦ͢Δ docker run
ϥΠϒϥϦͷ%PDLFSΠϝʔδΛ͏ • %PDLFS্Ͱಈ͘ΞϓϦέʔγϣϯͷ Πϝʔδ͕ͨ͘͞Μެ։͞Ε͍ͯΔ • ࠷Ұൠతͳެ։ઌ͕ʮ%PDLFS)VCʯͱ͍͏ϨδετϦ طʹ͋Δ%PDLFSΠϝʔδΛ͏ᶃ s+*t%&uvwxyY Az9{1|}~6
•€•‚GYƒ„… †•€‡ˆ{C‡P ‰‚GŠ ίϯςφΛ࡞ɾ࣮ߦ͢Δ docker run σϑΥϧτϑΥΞάϥϯυ ࣮ߦɻόοΫάϥϯυʹ͢Δ ʹEΦϓγϣϯΛ͚ͭΔ
• %PDLFSΠϝʔδΛอɾ͢ΔͨΊͷج൫Λࢦ͢ • %PDLFS)VCྨࣅͷαʔϏεΛ༻ͨ͠ΓɺϓϥΠϕʔτͳ ϨδετϦΛߏஙͨ͠Γ͢Δ͜ͱ͕Ͱ͖Δ • docker run Λ࣮ߦ͢Δͱɺ·ͣϩʔΧϧ͔Β֘ΠϝʔδΛ ୳͠ɺͳ͚ΕϨδετϦΑΓऔಘ͢Δ
%PDLFSϨδετϦ
%PDLFSϨδετϦ %PDLFSΠϝʔδΛμϯϩʔυ͢Δ docker pull %PDLFSΠϝʔδΛΞοϓϩʔυ͢Δ docker push %PDLFSϨδετϦʹϩάΠϯ͢Δ docker
login %PDLFSΠϝʔδΛݕࡧ͢Δ docker search
ҎԼͷ͍ͣΕ͔ͰΠϝʔδΛಛఆ͢Δ • *% • Πϝʔδ໊<λά໊> • Πϝʔδ໊<!μΠδΣετ> %PDLFSΠϝʔδͷಛఆ
࡞ͨ͠%PDLFSΠϝʔδΛผͷڥͰ͏ • ςετڥͰ2"͕ྃͨ͠ΞϓϦέʔγϣϯΛຊ൪ڥʹ σϓϩΠ͍ͨ͠ͱ͖ • ՔಇதͷΞϓϦέʔγϣϯʹ͕ݟ͔ͭͬͨͨΊҎલͷ όʔδϣϯʹ͍ͨ͠ͱ͖ طʹ͋Δ%PDLFSΠϝʔδΛ͏ᶄ 4‚6
‹SF1 Œ•Mdb ίϯςφΛ࡞ɾ࣮ߦ͢Δ docker run σϑΥϧτϑΥΞάϥϯυ ࣮ߦɻόοΫάϥϯυʹ͢Δ ʹEΦϓγϣϯΛ͚ͭΔ
Α͘͏ίϯςφͷૢ࡞ ίϯςφΛҰཡදࣔ͢Δ docker ps ࣮ߦ த ఀࢭ த ίϯςφΛఀࢭ͢Δ
docker stop ίϯςφΛىಈ͢Δ docker start ࣮ߦதͷίϯςφͰίϚϯυΛ࣮ߦ͢Δ docker exec ίϯ ςφ ࣮ߦதͷίϯςφͷϩάΛग़ྗ͢Δ docker logs ίϯςφΛআ͢Δ docker rm ରఀࢭதͷίϯςφɻ ಈ͍͍ͯΔͷΛࢭΊΔ࣌ GΦϓγϣϯΛ͚ͭΔ ͪΐͬͱ͓ͨ͠ࢼ͠ ௐࠪʹ͏͜ͱ͕ଟ͍ ର࣮ߦதͷίϯςφɻ ࢭ·͍ͬͯΔͷݟΔ࣌ BΦϓγϣϯΛ͚ͭΔ ίϯςφ͔ΒΠϝʔδΛੜ͢Δ docker commit ೖॻ αΠτ ͰΑ͘͏ͱ ॻ͔Ε͍ͯͨΓ͢Δ͕ɺ ͋·ΓΘͳ͍ײ֮ʜ
• ෳίϯςφΛ࣮ߦ͢Δπʔϧ • :".-ϑΝΠϧʹઃఆΛॻ͍ͯ͏ %PDLFS$PNQPTF
Πϝʔδͷ͍ํ͕ ͳΜͱͳ͔͖ͬͯͨ͘ʜʁ
࣍Πϝʔδͷࣗ࡞ʹઓʂ
• %PDLFSGJMFͱ͍͏ϑΝΠϧΛ࡞͢Δ • %PDLFSGJMF্ʹ࣮ݱ͍ͨ͜͠ͱΛهड़͠ɺϏϧυͱ͍͏࡞ۀΛ ߦ͏ͱ%PDLFSΠϝʔδ͕ੜ͞ΕΔ • طଘͷ%PDLFSΠϝʔδΛϕʔεͱ͠ɺͦΕΛΧελϚΠζ͢Δ ͷ͕Ұൠతͳ࡞ΓํͰ͋Δ %PDLFSΠϝʔδΛ࡞Δ
%PDLFSGJMF Ϗϧυ %PDLFS Πϝʔδ %PDLFSΠϝʔδΛϏϧυ͢Δ docker build
%PDLFSGJMFͷॻ͖ํ FROM nginx:latest COPY ./index.html /usr/share/nginx/html/index.html ඞͣϑΝΠϧ໊%PDLFSGJMFͱ͢Δ %PDLFS͕Ϗϧυ༻ϑΝΠϧΛ໊લͰผ ͢ΔͨΊ
%PDLFSGJMFͰ͑Δ ίϚϯυ s+*t%&Ž#•%ƒ O•6‘G’“ ”•Rk5 –—6’GqP<
• FROM ϕʔεͱͳΔΠϝʔδΛࢦఆ͢Δ • RUN Ϗϧυ࣌ʹίϯςφͰίϚϯυΛ࣮ߦ͢Δ • ENV ,FZ7BMVFܗࣜͰڥมΛࢦఆ͢Δ •
ADD, COPY ΠϝʔδϑΝΠϧΛίϐʔ͢Δ • CMD, ENTRYPOINT ίϯςφىಈ࣌ʹ࣮ߦ͢ΔίϚϯυҾΛ ͋ ࢦఆ͢Δ جຊతͳ%PDLFSGJMFͷίϚϯυ s+*t%&6˜™G =ešB›@ƒ œ•ž™q1 Ÿ 6Š¡¢3r
• LABEL • EXPOSE • VOLUME • USER • WORKDIR
• ARG • ONBUILD • STOPSIGNAL • HEALTHCHECK • SHELL ͦͷଞͷ%PDLFSGJMFͷίϚϯυ £¤5¥¦^ §¨EdEbr
• ʮԿΛͬͯͲΜͳ͜ͱΛͲΜͳ෩ʹ࣮ݱ͍͔ͨ͠ʯ͕໌֬ʹ ͳ͍ͬͯΕɺௐͳ͕Βهड़͍͚ͯ͠େৎʂ • จ๏͕ޡ͍ͬͯͨΒϏϧυ࣌ʹΤϥʔʹͳΔ͠ɺ࣮ߦͯ͠Έͯ ؒҧ͍ͬͯͨΒͤྑ͍ • %PDLFSͷίϚϯυ͕ࢦ͢ͷ৭ʑ͋ΔͷͰɺࣗͷதͰྨ ͯ͠ΈΔͱࠓԿ͍ͯ͠Δ͔͔Γ͍͢ •
%PDLFSGJMFʹॻ͘ͷ • ίϯςφΛૢ࡞͢Δͷ • ΠϝʔδΛૢ࡞͢Δͷ • ϦϙδτϦʹର͠ૢ࡞͢Δͷ ίϚϯυͱฉ͘ͱͦ͠͏͚ͩͲ M©’ª«^P ¬-6®¯Gq“ C°A±B› U°9PE²™S ³´EFP zABYšµBƒ ¶i·‚’SY^ ¸¹
• ઃఆͷશମ૾ৄࡉ໌֬Ͱ͔Γ͍͢ • όʔδϣϯཧͰ͖Δ ͪΖΜόʔδϣϯͷߦ͖དྷڞಉฤू ͕͘͢͠ͳΔ • ༰ΛγΣΞ͍͢͠ • ಉ͡ઃఆΛ࠶ݱͰ͖Δ
• ώϡʔϚϯΤϥʔ͕ى͜Γʹ͍͘ ʮ*OGSBTUSVDUVSFBT$PEFʯ ͳͥઃఆΛϑΝΠϧʹॻ͖ى͜͢ͷ͔ º»5S35 ¼½•ˆ¾ˆ¾ ™GAz9{¿ À17ÁAD1 IJ’YK<
• ීஈ։ൃ͍ͯ͠ΔΞϓϦέʔγϣϯ%PDLFSΠϝʔδԽͰ͖Δ • ΞϓϦέʔγϣϯͷϏϧυɺϏϧυࡁΈͷΞϓϦέʔγϣϯ औಘΛ%PDLFSGJMFͰߦ͏Α͏ઃఆ͢Δ • $*$%ύΠϓϥΠϯΛͬͯϏϧυσϓϩΠ͢Δͱྑ͍ ޙड़ ࣗ࡞ͷΞϓϦέʔγϣϯΛ%PDLFS
%PDLFSΠϝʔδ ࡞ͬͨΒͪΌΜͱཧ͠Α͏ʂ
खݩͷཧ • ஈʑϩʔΧϧʹΠϝʔδ͕ͨ·͍ͬͯ͘ͷͰ࣌ʑ֬ೝ͠Α͏ • ͍Βͳ͍ͷআ͠Α͏ %PDLFSΠϝʔδҰཡΛදࣔ͢Δ docker images %PDLFSΠϝʔδΛআ͢Δ
docker rmi Š4’Y “qiFSG Az9{bÃr
%PDLFSΠϝʔδઐ༻ϦϙδτϦʹอ • ࡞ͨ͠ΠϝʔδʮόΠφϦɾϦϙδτϦϚωʔδϟʔʯʹ อ͠ɺ͔ͦ͜ΒγΣΞ࠶ར༻Λ͢Δ • ಉ͡%PDLFSGJMFΛԿϏϧυ͢ΔͷΛආ͚ ࣌ؒΛઅͰ͖Δ • ࣭͕୲อ͞ΕͨΠϝʔδΛ͍ճͤΔ
औಘ͢Δ อ͢Δ
%PDLFSΠϝʔδઐ༻ϦϙδτϦʹอ • औಘͨ͠ΠϝʔδʮόΠφϦɾϦϙδτϦ Ϛωʔδϟʔʯʹอ͓ͯ͘͠ • ΩϟογϡͷׂΛՌͨ͢ • ߴʹऔಘͰ͖Δ •
֎෦ϦϙδτϦʹΞΫηε Ͱ͖ͳͯ͘औಘͰ͖Δ औಘͭͭ͠ อ͢Δ
%PDLFS)VCͷΞΫηεճ੍ݶʹҙ • ແྉϢʔβʔΠϝʔδͷऔಘճʹ্ݶ͕͋Δ • ະೝূͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ • ແྉϢʔβʔͱͯ͠ೝূࡁΈͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ
%PDLFS)VCͷΞΫηεճ੍ݶʹҙ • ແྉϢʔβʔΠϝʔδͷऔಘճʹ্ݶ͕͋Δ • ະೝূͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ • ແྉϢʔβʔͱͯ͠ೝূࡁΈͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ • ՝ۚ·ͨ+'SPH"SUJGBDUPSZ
Ϋϥυ൛ Λܦ༝͢Εɺ੍ݶ ͔Βղ์͞ΕΔʂ ÄÅ^P‘¡ ÆÇÈÉ ^P‘G
• 8JOEPXT.BDͰ%PDLFSΛ͏ͨΊͷπʔϧ • ݄͔Β༗ྉʢඞཁʹԠͯ͡ϓϥϯʣ • আ֎ݸਓɺ044ɺਓະຬ͔ͭച্ສυϧະຬͷ৫ %PDLFS%FTLUPQ༗ྉԽ
͜͜·ͰཧղͰ͖ͨΒ %PDLFSͱ࠷ۙͷٕज़τϨϯυͷ ਂ͍͕͔ؔΔ͔ʂʁ
• ࠓϏδωεʹιϑτΣΞෆՄܽͰ͋Δ • Ձ͋ΔιϑτΣΞΛސ٬ʹૉૣ͘ಧ͚ΒΕͳ͍ͱউͯͳ͍ ͱ͍͏લఏͷͱ • ϦϦʔεαΠΫϧΛ͘͠සൟʹιϑτΣΞΛΞοϓσʔτ ͠Α͏ • ϑΟʔυόοΫϧʔϓΛͲΜͲΜճ͍ͯ͜͠͏
ͱ͍͏ͷ͕ࡢࠓͷτϨϯυʹͳ͖ͬͯͨ ιϑτΣΞͱϏδωε s%ÊËÌÍ5q ±{ÎAD €Ï5q
͏গ͠۩ମతͳ ٕज़ํ๏Λ ݟ͍ͯ͜͏
• ιϑτΣΞͷෳࡶԽɾڊେԽʹΑΓɺϞϊϦγοΫͳΞϓϦ έʔγϣϯͱͯ͠αʔϏεΛҭͯΔͷ͕͘͠ͳͬͨ • খ͞ͳαʔϏε܈Λ࿈ܞͤ͞ΔʮϚΠΫϩαʔϏεʯ͕૿͑ͯ ͖͍ͯΔ • ίϯςφখ͞ͳ୯ҐͰ ΞϓϦέʔγϣϯΛύοέʔδԽ͠ ૉૣ্ཱͪ͛͘ΒΕΔͨΊ
ϚΠΫϩαʔϏεͱ૬ੑ͕ྑ͍ ϚΠΫϩαʔϏεͱ%PDLFS ൃ୲ʂ ηʔϧใ ୲ʂ ΞΧϯτ ใ୲ʂ ใ ୲ʂ
• $* ܧଓతΠϯςάϨʔγϣϯ $% ܧଓతσϦόϦʔɺܧଓత σϓϩΠϝϯτ ͷߟ͑ํ͕ਁಁ͖ͯͨ͠ • ։ൃͨ͠ιʔείʔυΛ͙͢Ϛʔδͨ͠ΓσϓϩΠΛ ߦͬͨΓ͢Δ͜ͱͰɺϦϦʔεͷස্ɺෆ۩߹ͷૣظൃݟ
ͳͲΛࢦ͢ $*$%ͱ%PDLFS
7$4 UFTU CVJME #3. TFSWFST EFQMPZ • ௨ৗɺࣗಈԽ͠ύΠϓϥΠϯΛߏங࣮ͯ͠ݱ͢Δ͕ɺ%PDLFSͷ खܰ͞࠶ݱੑɺͷ͢͜͜͠͞Ͱཱͭ
$*$%ͱ%PDLFS
• ߴͳσϓϩΠ͕Ͱ͖Δ͜ͱɺϝϯςφϯεͷ͢͠͞ ͳͲʹ͓͍ͯΫϥυͱ%PDLFSੑ͕ߴ͍ • ࡢࠓͲͷΫϥυϕϯμʔίϯςφΞϓϦʹରԠ͓ͯ͠Γɺ εϜʔζʹσϓϩΠ͢ΔͨΊͷπʔϧ͕ʑਐԽ͍ͯ͠Δ Ϋϥυͱ%PDLFS "NB[PO&$4 &MBTUJD$POUBJOFS4FSWJDF
(PPHMF $PNQVUF&OHJOF "[VSF$POUBJOFS *OTUBODFT ÐÑÒÓuÔÑÕ5Y Ö×1Ø6 ÙÚS Š3^™
৽͍ٕ͠ज़ ಥવൃੜ͢ΔΘ͚Ͱ ҙຯͳ͘ྲྀߦΔΘ͚Ͱͳ͍ʂ
৭ʑษڧɾ༻͍ͯ͘͠ͱ ͦΕͧΕͷͭͳ͕Γ͕ ݟ͑ͯ͘Δ
;Γ͔͑Γ • %PDLFSͱԿ͔ • ΞϓϦέʔγϣϯͱґଘؔΛύοέʔδԽ࣮ͯ͠ߦ͢Δʮίϯςφʯٕज़ͷͭ • ͳͥ%PDLFS͕ਓؾͳͷ͔ • ΞϓϦέʔγϣϯಉ࢜ͷׯবΠϯϑϥͷԚછʹΑΔোΛݮΒͤΔ
• ઃఆΛϑΝΠϧ %PDLFSGJMF Ͱॻ͚ΔͷͰϝϯςφϯε͍͢͠ • ༷ʑͳڥͷ্Ͱಉ͡ΞϓϦέʔγϣϯΛ͙͢ʹߏஙͰ͖Δ • ԾԽٕज़ͷதͰܰྔͰɺ͔ͭߴʹಈ࡞͢Δ ͜ΕΒʹೲಘ͠ɺ%PDLFSΛ͍࢝ΊΔͨΊͷҰา͕౿Έग़ͤͯ ͍ͨΒࠓ0,ʂ ·ͩଞʹίϚϯυػೳେྔʜগ֮ͣͭ͑͠Α͏
ࠓ͔ΒͰ͖ΔऔΓΈ • ʑͷνʔϜ։ൃӡ༻ ಛʹڥͷ༻ҙσϓϩΠͳͲ Ͱ ࠔ͍ͬͯΔ͜ͱΛ୳ͯ͠ΈΑ͏ • पΓͷਓͱͯ͠ΈΑ͏