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アプリケーションのポータビリティを考える #dockerjp
Search
Naoya Ito
April 11, 2014
Technology
10k
26
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dockerアプリケーションのポータビリティを考える #dockerjp
Naoya Ito
April 11, 2014
More Decks by Naoya Ito
See All by Naoya Ito
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
12
4.3k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.8k
Functional TypeScript
naoya
19
6.8k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.8k
20230227-engineer-type-talk.pdf
naoya
91
86k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
37k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
25k
Other Decks in Technology
See All in Technology
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
110
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1k
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
120
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
290
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
220
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
150
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
150
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
580
toB プロダクトから見たWAF
tokai235
0
240
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.1k
コミットの「なぜ」を読む
ota1022
0
120
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
ラッコキーワード サービス紹介資料
rakko
1
3.7M
Typedesign – Prime Four
hannesfritz
42
3.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building AI with AI
inesmontani
PRO
1
1.1k
How to make the Groovebox
asonas
2
2.2k
RailsConf 2023
tenderlove
30
1.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
250
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
870
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
Transcript
%PDLFSΞϓϦέʔγϣϯͷ ϙʔλϏϦςΟΛߟ͑Δ /BPZB*UP ,"*;&/QMBUGPSN*OD 4FOJPS5FDIOPMPHZ"EWJTPS %PDLFS.FFUVQ5PLZP
%PDLFSΞϓϦέʔγϣϯ Λϙʔλϒϧʹ͢Δɻ
̎ͭͷจ຺ %PDLFSίϯςφ͕ԼΛநԽ͢Δ %JTQPTBCMFͳ੍ʹΑΓΞϓϦέʔ γϣϯʹ࠶ݱՄೳੑ͕ཁٻ͞ΕΔ
#VJME0ODF 3VO "OZXIFSF
%PDLFSίϯςφ͕ԼΛநԽ • #VJME0ODF 3VO"OZXIFSF h"p://www.slideshare.net/dotCloud/docker-‐intro-‐november
ྫBUMBTTJBOKJSB
$ docker run atlassian/jira ͜Ε͚ͩͰɺΠϝʔδ͕ ެ։ϨϙδτϦ͔Β QVMM͞ΕͯίϯςφͰ +*3"͕ىಈ͢Δ
#VJME0ODF 3VO"OZXIFSF • BUMBTTJBOKJSB%PDLFS͑͞ಈ͍ͯΕ ɺͲ͜Ͱಈ͘ – -JOVY#PYɺCPPUEPDLFSɺ%JHJUBM 0DFBOɺ(PPHMF$PNQVUF&OHJOF • ϩʔΧϧͰಈ͍ͯͨͷΛɺΫϥυ 8FCΞϓϦέʔγϣϯ
ͷΛ%PDLFSϨϙ δτϦͰߦ͏ͷ͕ී௨ʹ ͳΔ͕དྷΔ
5IF'BDUPS"QQ
͏ҰͭͷϙʔλϏϦςΟ • %PDLFSͱ͍͏ΑΓ*NNVUBCMF *OGSBTUSVDUVSF༝དྷͷ • ࠶ݱՄೳͳΞϓϦέʔγϣϯ
*NNVUBCMF*OGSBTUSVDUVSF • %JTQPTBCMF$PNQPOFOUT • ෆมͳɺঢ়ଶΛ࣋ͨͳ͍ɺഇغՄೳͳ
ΞϓϦͷσϓϩΠઌΛ ίϯςφʹ͢Δ͜ͱΛߟ͑Δ • )FSPLV5SBWJT$*తͳ • ίϯςφͳͷͰɺΞϓϦέʔγϣϯ͕ຖ ഇغ͞Εͯ͠·͏ • Ώ͑ʹɺΞϓϦέʔγϣϯʹ࠶ݱੑ͕ ٻΊΒΕΔ
݁ՌతʹɺΞϓϦ͕ϙʔ λϒϧʹͳΔ
)FSPLV )FSPLVHJUQVTI͢Δຖɺ৽͍͠ڥ ίϯςφ Λ࡞Γɺݹ͍ڥΛغͯΔ
ΞϓϦΛ࠶ݱՄೳʹ͢Δʹ • εςʔτϨεͭ4IBSFE/PUIJOH • ࣮ߦ֎෦ڥΛ໌֬ԽɾநԽɾႈԽ – #VOEMFS – 3BDL – 'PSFNBO ίϯςφ͕ཁٻ͢ΔΠϯλ ϑΣʔεʹΑͬͯɺΞϓϦ
έʔγϣϯʹྑ੍͍Λ՝ ͢͜ͱ͕Ͱ͖Δ
5IF5XFMFWF'BDUPS"QQ h"p://twelve-‐factor-‐ja.herokuapp.com/ (オリジナル: h"p://12factor.net/)
%PDLFSͰͲ͏͖͔͢ • 'BDUPS"QQతͳͷ͕ྑ͍Πϯλ ϑΣʔεͳͷΘ͔ͬͨ • ͡Ό͋ɺͦΜͳίϯςφΛ%PDLFSͰͲ ͏༻ҙ͖͔͢ – ࡞ͬͯΈͨ
OBPZBEPDLFSQBBTFYBNQMF • HJUIVCDPNOBPZBEPDLFSQBBT FYBNQMF • HJUQVTIΛܖػʹ%PDLFSίϯςφΛ ࡞ΓΞϓϦέʔγϣϯΛඋ͠ಈ͔͢ – CPPUEPDLFSɺHJUIPPLT QVMMSFRVFTUຖʹΞϓϦ έʔγϣϯΛ্ཱͪ͛ͯ
63-ΛׂΓͯΔɺΈ͍ͨ ͳ͜ͱΛࢹʹೖΕͯΔ
4JOBUSBΞϓϦέʔγϣϯ ΛHJUQVTI͢Δͱ %PDLFSίϯςφ͕ىಈ͠ɺ ͦͷ্Ͱಈ͘
࣌ؒ͋ͬͨΒσϞ
ͬͯΈͨ͜ͱ • લఏ3VCZ 4JOBUSBͳ8FCΞϓϦ • ࣮ߦڥ SVCZ΄͔ ͷϏϧυ ඞཁόʔδϣϯͷSVCZCVOEMFSͳͲΛ
༧ΊೖΕͨ%PDLFSΠϝʔδΛ࡞͓ͬͯ͘ ํࣜ )FSPLVͷCVJMEQBDLͰΦϯσϚϯυʹ Ϗϧυ͢Δํࣜ • %PLLVΈ͍ͨͳ σϞͬͨͷͷ΄͏
#VJMEQBDL • ΞϓϦέʔγϣϯͷ࣮ߦڥΛϏϧυ͢ ΔͨΊͷεΫϦϓτύοέʔδ – ΠϯλϑΣʔε͕ඪ४Խ͞ΕͯΔ • CJOEFUFDUŋŋŋରΞϓϦͷݴޠͳͲΛఆ • CJODPNQJMFŋŋŋ࣮ߦʹඞཁͳڥΛϏϧυ –
ྫSVCZͷϏϧυɺCVOEMFJOTUBMMFUD • CJOSFMFBTFŋŋŋΞϓϦέʔγϣϯ࣮ߦίϚϯυ ͷܾఆ – IFSPLVIFSPLVCVJMEQBDLSVCZ IFSPLVIFSPLV CVJMEQBDLOPEFKT NJZBHBXBIFSPLVCVJMEQBDL QFSMͦΕͧΕʹͭͷεΫϦϓτ͕ೖͬͯΔ
1. アプリ を git push 2. post-‐update hoook で
docker run 3. コンテナ起動 4. アプリを git clone (※cloneじゃなくpushにしたい)
ΞϓϦͷHJUDMPOFޙ • EPDLFSSVOͰΞϓϦέʔγϣϯίʔυ ʹରͯ͠CVJMEQBDLΛద༻ – CJOEFUFDUͰఆ͠USVF͕ฦͬͨΒɺͦ ͷCVJMEQBDLͷCJODPNQJMFͰϏϧυ – CJOSFMFBTFͰܾఆ͞Ε࣮ͨߦίϚϯυΛ FYFD
SVCZͷϏϧυͳͲΦϯ σϚϯυͰ
ͬͯΈͯࢥͬͨ͜ͱ
CVJMEQBDLΛ͏ͱŋŋŋ • ॊೈɻΞϓϦέʔγϣϯͷ࣮ߦڥΛޙ ͔ΒಈతʹܾఆͰ͖Δ – ΑͬͯɺݴޠͷछྨYόʔδϣϯ͝ͱʹڥ Λ࡞͓ͬͯ͘ŋŋŋͱ͔ඞཁͳ͍
ͰɺͪΐͬͱͯΑ • %PDLFSΠϝʔδ࡞ͬͯίϯςφىಈ͢ Δͷ؆୯͡ΌΜ – CVJMEQBDLํࣜॊೈ͚ͩͲɺͦͷॊೈੑ ཁΔ – SVCZ༻ΠϝʔδɺOPEFKT༻Λ࡞͓͍ͬͯͯɺ
ಈ͔͢ͷʹ߹ΘͤͯΠϝʔδΛબͯ͠ SVO͢Δํ͕ࣜ୯७ָͭͩͬͨ
Ωϡʔ˓ʔΫοΩϯάํࣜ • ʮ͜͜ͰSVCZ CVOEMFS͕ඞཁ ʹͳΓ·͕͢ŋŋŋ͋Β͔͡Ί࡞͓͖ͬͯ· ͨ͠ʯ %PDLFSͳΒ࡞Γஔ͖؆୯ɻ %PDLFSϨϙδτϦͰڞ༗ 0,
ΞΠσΞ ·ͩ • CVJMEQBDLతͳ%PDLFSJNBHFT – CVJMEQBDLͷEFUFDUͰڥΛఆ͠ – ͦͷڥʹదͨ͠อଘࡁΈίϯςφΛબ͠ – CVJMEQBDLͷSFMFBTFͷΑ͏ʹͦͷίϯς φʹܾΊΒΕͨૢ࡞Λ࣮ߦͤ͞Δ CVJMEQBDLͰϏϧυͨ͠
ίϯςφΛDPNNJUͯ͠ ࠶ར༻ɺͱ͔Ͱ͍͍͔
ͯͳΘ͚Ͱɺ·ͱΊ • %PDLFSΞϓϦέʔγϣϯͷϙʔλϏϦ ςΟΛߴΊΔ – ͭ#VJME0ODF 3VO"OZXIFSFͷ – ͏ͭ5IF'BDUPS"QQͳ • ޙऀͰɺίϯςφΛͲ͏༻ҙ͖͔͢ – Ωϡʔ˓ʔΫοΩϯάํࣜͰׂͱΑ͍
એ • ,"*;&/1MBUGPSN*ODΤϯδχΞื ूͯ͠·͢ • ΠϯϑϥࣗಈԽɺ*NNVUBCMFɺ%PDLFS ͱ͔͍͖͍ͬͯͨํɺ͓ͪͯ͠·͢