Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
170
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / 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
340
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
560
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6.8k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.8k
Other Decks in Technology
See All in Technology
歴史から理解するクラウドインフラのしくみ
kizawa2020
1
210
Data Hubグループ 紹介資料
sansan33
PRO
0
3.1k
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
12
4k
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
0
190
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.6k
Swift&Xcodeのバージョンアップにまつわる怖かった思い出 / Scary Memories of Swift and Xcode Updates
bitkey
PRO
0
150
AI エージェント時代のデジタルアイデンティティ
fujie
3
1.4k
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
120
plamo-3-translateの開発
pfn
PRO
0
270
AIQAのナレッジ構築について
qatonchan
1
150
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
210
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
310
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
エンジニアに許された特別な時間の終わり
watany
108
250k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Navigating Weather and Climate Data
rabernat
0
440
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
680
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
RailsConf 2023
tenderlove
30
1.5k
Site-Speed That Sticks
csswizardry
13
1.4k
Paper Plane
katiecoart
PRO
2
52k
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,ʂ ·ͩଞʹίϚϯυػೳେྔʜগ֮ͣͭ͑͠Α͏
ࠓ͔ΒͰ͖ΔऔΓΈ • ʑͷνʔϜ։ൃӡ༻ ಛʹڥͷ༻ҙσϓϩΠͳͲ Ͱ ࠔ͍ͬͯΔ͜ͱΛ୳ͯ͠ΈΑ͏ • पΓͷਓͱͯ͠ΈΑ͏