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
26
9.8k
Dockerアプリケーションのポータビリティを考える #dockerjp
Naoya Ito
April 11, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
5.6k
Functional TypeScript
naoya
15
6.2k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
71
34k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.2k
20230227-engineer-type-talk.pdf
naoya
89
76k
関数型プログラミングと型システムのメンタルモデル
naoya
62
100k
TypeScript による GraphQL バックエンド開発
naoya
28
35k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
60k
Other Decks in Technology
See All in Technology
毎晩の 負荷試験自動実行による効果
recruitengineers
PRO
5
180
AI時代にも変わらぬ価値を発揮したい: インフラ・クラウドを切り口にユーザー価値と非機能要件に向き合ってエンジニアとしての地力を培う
netmarkjp
0
140
AWS CDK 入門ガイド これだけは知っておきたいヒント集
anank
5
770
無理しない AI 活用サービス / #jazug
koudaiii
0
100
american aa airlines®️ USA Contact Numbers: Complete 2025 Support Guide
aaguide
0
500
SRE不在の開発チームが障害対応と 向き合った100日間 / 100 days dealing with issues without SREs
shin1988
2
2.1k
スタックチャン家庭用アシスタントへの道
kanekoh
0
120
Digitization部 紹介資料
sansan33
PRO
1
4.5k
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
470
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
3
480
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
350
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
524
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
RailsConf 2023
tenderlove
30
1.1k
Visualization
eitanlees
146
16k
For a Future-Friendly Web
brad_frost
179
9.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Gamification - CAS2011
davidbonilla
81
5.4k
Six Lessons from altMBA
skipperchong
28
3.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
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 ͱ͔͍͖͍ͬͯͨํɺ͓ͪͯ͠·͢