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よちよち歩きハンズオン / Docker hands-on for beginners
Search
ihcomega56
October 05, 2021
Technology
1
320
Dockerよちよち歩きハンズオン / Docker hands-on for beginners
ハンズオン資料:
https://github.com/ihcomega56/DockerHandsOn
ihcomega56
October 05, 2021
Tweet
Share
More Decks by ihcomega56
See All by ihcomega56
JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
ihcomega56
1
120
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.9k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.4k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
190
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.4k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
280
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
490
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6.2k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.6k
Other Decks in Technology
See All in Technology
[MIRU25] NaiLIA: Multimodal Retrieval of Nail Designs Based on Dense Intent Descriptions
keio_smilab
PRO
1
160
経験がないことを言い訳にしない、 AI時代の他領域への染み出し方
parayama0625
0
280
AI人生苦節10年で会得したAIがやること_人間がやること.pdf
shibuiwilliam
1
230
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
310
会社もクラウドも違うけど 通じたコスト削減テクニック/Cost optimization strategies effective regardless of company or cloud provider
aeonpeople
2
410
激動の時代、新卒エンジニアはAIツールにどう向き合うか。 [LayerX Bet AI Day Countdown LT Day1 ツールの選択]
tak848
0
620
Microsoft Learn MCP/Fabric データエージェント/Fabric MCP/Copilot Studio-簡単・便利なAIエージェント作ってみた -"Building Simple and Powerful AI Agents with Microsoft Learn MCP, Fabric Data Agent, Fabric MCP, and Copilot Studio"-
reireireijinjin6
1
190
AI時代の知識創造 ─GeminiとSECIモデルで読み解く “暗黙知”と創造の境界線
nyagasan
0
170
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
1
190
【CEDEC2025】ブランド力アップのためのコンテンツマーケティング~ゲーム会社における情報資産の活かし方~
cygames
PRO
0
150
テキストからの実世界知能の実現に向けて
sumoai
0
110
風が吹けばWHOISが使えなくなる~なぜWHOIS・RDAPはサーバー証明書のメール認証に使えなくなったのか~
orangemorishita
7
1.3k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Designing Experiences People Love
moore
142
24k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Pragmatic Product Professional
lauravandoore
35
6.8k
The Cult of Friendly URLs
andyhume
79
6.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
Transcript
%PDLFS ΑͪΑͪา͖ ϋϯζΦϯ
2 ࣗݾհ Α͜ͳ "ZBOB:PLPUB • +'SPHͷ%FWFMPQFS"EWPDBUF • લ৬·ͰओʹόοΫΤϯυͷ։ൃ ʢ4*FS ࠂձࣾ
ূ݊ελʔτΞοϓʣ • ࠷ۙɺੜ·ΕͯॳΊͯಉ͡өըΛ؍ͨ !"#$$%&' (#)*+,%-.
ʮΑͪΑͪา͖ʯγϦʔζ ಛ • ʮ͡ΊͷҰาʯͷ࣍ͷεςοϓʂ • ʮ͡ΊͷҰาʯͰֶΜͩ༰ʹ͍ͭͯखΛಈ͔ͯ͠ΈΔ • ཏతʹԿͰͬͯΈΔͷͰͳ͘ɺ·ͣ͡Ίʹඞཁͳ ػೳɾૢ࡞Λ༏ઌ͢Δ
લఏࣝ • %PDLFS͡ΊͷҰา IUUQTTQFBLFSEFDLDPNJIDPNFHBUIFGJSTUTUFQPGEPDLFS
%PDLFSͷ؆୯ͳ͓͞Β͍
%PDLFSͷΞʔΩςΫνϟ • %PDLFSσʔϞϯ͕ίϯςφͷཧ࣮ߦΛߦ͏ • Ϣʔβʔ%PDLFSΫϥΠΞϯτͱΓͱΓ͢Δ͜ͱͰؒతʹ σʔϞϯͰΓ͍ͨ͜ͱΛ࣮ݱ͢Δ • ʑͷ։ൃΛ͢Δ্ͰσʔϞϯͱΫϥΠΞϯτͷҧ͍͋·Γ ҙࣝ͠ͳ͍
%PDLFS ΫϥΠΞϯτ %PDLFSσʔϞϯ ίϯ ςφ ίϯ ςφ ίϯ ςφ ίϚϯυΛ ͏ %PDLFSΤϯδϯ
• ίϯςφΛ࡞͢ΔͨΊͷ໋ྩ͕ೖͬͨύοέʔδ • طʹଘࡏ͢ΔͷΛ͏͜ͱɺ࡞Δ͜ͱͰ͖Δ • Πϝʔδ͕࣮ߦঢ়ଶʹͳͬͨΠϯελϯε͕ίϯςφ %PDLFSΠϝʔδ %PDLFS Πϝʔδ
࣮ߦڥͱͯ͠"MQJOF ܰྔͷ-JOVY Λͬͯʂ +BWBͱ(SBEMFΛΠϯετʔϧͯ͠ʂ ࣮ߦϑΝΠϧ͜ͷσΟϨΫτϦʹஔͯ͠ʂ +BWBΞϓϦέʔγϣϯΛ࣮ߦͯ͠ʂ
·ͣެ։͞Ε͍ͯΔ ΠϝʔδΛͬͯΈΑ͏
%PDLFS)VC͔ΒΠϝʔδΛऔಘ %PDLFSΠϝʔδΛμϯϩʔυ͢Δ docker pull %PDLFSϨδετϦʹϩάΠϯ͢Δ docker login %PDLFSΠϝʔδΛݕࡧ͢Δ docker
search
ҎԼͷ͍ͣΕ͔ͰΠϝʔδΛಛఆ͢Δ • *% • Πϝʔδ໊<λά໊> • Πϝʔδ໊<!μΠδΣετ> %PDLFSΠϝʔδͷಛఆɾ࣮ߦ ίϯςφΛ࡞ɾ࣮ߦ͢Δ
docker run σϑΥϧτϑΥΞάϥϯυ ࣮ߦɻόοΫάϥϯυʹ͢Δ ʹEΦϓγϣϯΛ͚ͭΔ ίϯςφΛ࡞͢Δ docker create ίϯςφΛ࣮ߦ͢Δ docker start
खݩͷཧ • ஈʑϩʔΧϧʹΠϝʔδ͕ͨ·͍ͬͯ͘ͷͰ࣌ʑ֬ೝ͠Α͏ • ͍Βͳ͍ͷআ͠Α͏ %PDLFSΠϝʔδҰཡΛදࣔ͢Δ docker images %PDLFSΠϝʔδΛআ͢Δ
docker rmi /012 3456789 :;<=>?@
ΠϝʔδΛࣗͰ ࡞ͬͯΈΑ͏
%PDLFSGJMFͷॻ͖ํ FROM nginx:latest COPY ./index.html /usr/share/nginx/html/index.html ඞͣϑΝΠϧ໊%PDLFSGJMFͱ͢Δ %PDLFS͕Ϗϧυ༻ϑΝΠϧΛ໊લͰผ ͢ΔͨΊ
%PDLFSGJMFͰ͑Δ ίϚϯυ A+*B%&C#D%E FGHI914 JKLMN OPH195QR
• FROM ϕʔεͱͳΔΠϝʔδΛࢦఆ͢Δ • RUN Ϗϧυ࣌ʹίϯςφͰίϚϯυΛ࣮ߦ͢Δ • ENV ,FZ7BMVFܗࣜͰڥมΛࢦఆ͢Δ •
ADD, COPY ΠϝʔδϑΝΠϧΛίϐʔ͢Δ ˠ<ϦϯΫ>"%%ͱ$01:جຊ$01:Λ͏ • CMD, ENTRYPOINT ίϯςφىಈ࣌ʹ࣮ߦ͢ΔίϚϯυҾΛ ͋ ࢦఆ͢Δ ˠ<ϦϯΫ>$.%ͱ&/53:10*/5ͷΈ߹Θͤ جຊతͳ%PDLFSGJMFͷίϚϯυ
• LABEL • EXPOSE • VOLUME • USER • WORKDIR
• ARG • ONBUILD • STOPSIGNAL • HEALTHCHECK • SHELL ͦͷଞͷ%PDLFSGJMFͷίϚϯυ STNUVW XYZ[Z>@
Α͘͏ίϯςφͷૢ࡞ ίϯςφΛҰཡදࣔ͢Δ docker ps ࣮ߦ த ఀࢭ த ίϯςφΛఀࢭ͢Δ
docker stop ίϯςφΛىಈ͢Δ docker start ࣮ߦதͷίϯςφͰίϚϯυΛ࣮ߦ͢Δ docker exec ίϯ ςφ ࣮ߦதͷίϯςφͷϩάΛग़ྗ͢Δ docker logs ίϯςφΛআ͢Δ docker rm ରఀࢭதͷίϯςφɻ ಈ͍͍ͯΔͷΛࢭΊΔ࣌ GΦϓγϣϯΛ͚ͭΔ ͪΐͬͱ͓ͨ͠ࢼ͠ ௐࠪʹ͏͜ͱ͕ଟ͍ ର࣮ߦதͷίϯςφɻ ࢭ·͍ͬͯΔͷݟΔ࣌ BΦϓγϣϯΛ͚ͭΔ
ΞϓϦέʔγϣϯͷίϯςφԽ • ݴޠϑϨʔϜϫʔΫʹΑͬͯΓํͦΕͧΕ͕ͩɺࢿྉ ͨ͘͞Μ͋ΔͷͰ ࠷ۙެࣜυΩϡϝϯτ๛ ࢀߟʹͯ͠ ࣮ݱͰ͖Δ • جຊతʹ࣍ͷ͍ͣΕ͔ͷํͰ%PDLFSGJMFΛॻ͍͍ͯ͘
• ιʔείʔυΛίϯςφʹίϐʔ͠ɺΠϝʔδͷϏϧυ࣌ʹΞϓϦ έʔγϣϯϏϧυ͢Δ • Ϗϧυͨ͠ΞϓϦέʔγϣϯͷ࣮ߦϑΝΠϧΛίϯςφʹίϐʔ͢Δ
αϯϓϧΞϓϦέʔγϣϯ ࣮ߦ ϑΝΠϧ ιʔε ίʔυ \]2N0^_ `[a18N 8b0NW@ Ϗϧυ͢Δ
HSBEMFX CPPU+BS ࣮ߦ͢Δ KBWBKBSBQQIBOETPOKBS ˞αϯϓϧͷίϯςφͰ KBWB KBSBQQKBS
αϯϓϧΞϓϦέʔγϣϯ ࣮ߦ ϑΝΠϧ ΞϓϦ༻ ίϯςφ ᶃίϐʔ ᶄίϯςφͰ࣮ߦ %#༻ ίϯςφ
ᶅσʔλ$36% ࠓճऔಘͷΈ ಉ͡ωοτϫʔΫͰ ίϯςφΛσΟεΧόϦ Ͱ͖ΔΑ͏ʹ͢Δ
%PDLFSΠϝʔδ ࡞ͬͨΒͪΌΜͱཧ͠Α͏ʂ
ϩʔΧϧϦϙδτϦʹอ • ࡞ͨ͠ΠϝʔδʮόΠφϦɾϦϙδτϦϚωʔδϟʔʯʹ อ͠ɺ͔ͦ͜ΒγΣΞ࠶ར༻Λ͢Δ • ಉ͡%PDLFSGJMFΛԿϏϧυ͢ΔͷΛආ͚ ࣌ؒΛઅͰ͖Δ • ࣭͕୲อ͞ΕͨΠϝʔδΛ͍ճͤΔ
औಘ͢Δ อ͢Δ %PDLFSΠϝʔδΛΞοϓϩʔυ͢Δ docker push
ϦϞʔτϦϙδτϦΛհͯ͠औಘ • औಘͨ͠ΠϝʔδʮόΠφϦɾϦϙδτϦ Ϛωʔδϟʔʯʹอ͓ͯ͘͠ • ΩϟογϡͷׂΛՌͨ͢ • ߴʹऔಘͰ͖Δ •
֎෦ϦϙδτϦʹΞΫηε Ͱ͖ͳͯ͘औಘͰ͖Δ औಘͭͭ͠ อ͢Δ
όʔνϟϧϦϙδτϦ • ϩʔΧϧϦϙδτϦɾόʔνϟϧϦϙδτϦΛଋͶΔ • อऔಘόʔνϟϧϦϙδτϦʹରͯ͠ૢ࡞͢Εྑ͍ ϩʔΧϧ ϦϞʔτ όʔνϟϧ c<dH/67
ef=ge2hi j_klm[n
%PDLFS)VCͷΞΫηεճ੍ݶʹҙ • ແྉϢʔβʔΠϝʔδͷऔಘճʹ্ݶ͕͋Δ • ະೝূͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ • ແྉϢʔβʔͱͯ͠ೝূࡁΈͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ
%PDLFS)VCͷΞΫηεճ੍ݶʹҙ • ແྉϢʔβʔΠϝʔδͷऔಘճʹ্ݶ͕͋Δ • ະೝূͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ • ແྉϢʔβʔͱͯ͠ೝূࡁΈͷ߹ɺ࣌ؒͰϦΫΤετ·Ͱ • ՝ۚ·ͨ+'SPH"SUJGBDUPSZ
Ϋϥυ൛ Λܦ༝͢Εɺ੍ݶ ͔Βղ์͞ΕΔʂ opWQIm `qrs WQI9
%PDLFS$PNQPTF • ෳͷίϯςφΛఆٛɾ࣮ߦ͢ΔͨΊͷπʔϧίϚϯυͰ ·ͱΊͯىಈɾఀࢭͰ͖Δ • :".- EPDLFSDPNQPTFZNM ͰઃఆΛॻ͖ίϯςφΛཧ͢Δ •
%PDLFSGJMFͱΈ߹ΘͤͯϏϧυΛߦ͏͜ͱɺΠϝʔδ͚ͩ ར༻͢Δ͜ͱͰ͖Δ • %PDLFSGJMFʹهࡌͨ͠ઃఆΛ্ॻ͖͢Δ͜ͱͰ͖Δ • ઃఆϑΝΠϧ্ͷίϯςφ͕ࢀՃ͢ΔωοτϫʔΫΛઃఆ͢Δ
͖ͬͬͨ͜͞ͱ ͓͞Β͍ ࣮ߦ ϑΝΠϧ ΞϓϦ༻ ίϯςφ ᶃίϐʔ ᶄίϯςφͰ࣮ߦ %#༻
ίϯςφ ᶅσʔλ$36% ࠓճऔಘͷΈ ಉ͡ωοτϫʔΫͰ ίϯςφΛσΟεΧόϦ Ͱ͖ΔΑ͏ʹ͢Δ
ࠓ͔ΒΔ͜ͱ̍ ΞϓϦ༻ ίϯςφ %#༻ ίϯςφ ᶅσʔλ$36% ࠓճऔಘͷΈ ᶄίϚϯυͰॱ൪ʹ ىಈ͢Δ
ಉҰωοτϫʔΫͱͳΔ ᶃΠϝʔδऔಘ
ࠓ͔ΒΔ͜ͱ̎ ΞϓϦ༻ ίϯςφ %#༻ ίϯςφ ᶅσʔλ$36% ࠓճऔಘͷΈ ᶄίϚϯυͰॱ൪ʹ ىಈ͢Δ
ಉҰωοτϫʔΫͱͳΔ ᶃΠϝʔδऔಘ EJS EJS Ϛϯτ ࣮ߦ ϑΝΠϧ
ิใ
%PDLFS%FTLUPQ͕༗ྉԽʁ • %PDLFSGPS.BD8JOEPXT͕ର • ·ͰΓସ͑ͷ༛༧͋Γ • ݄υϧʮ1SPʯ υϧʮ5FBNʯ υϧʮ#VTJOFTTʯͷϓϥϯ
• ໊ະຬ͔ͭച্ສυϧະຬͷ ৫ɺݸਓར༻ɺ044ϓϩδΣΫτ ແྉͷ··