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アプリケーションのポータビリティを考える #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
16
4.6k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.8k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8.1k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.9k
20230227-engineer-type-talk.pdf
naoya
91
88k
関数型プログラミングと型システムのメンタルモデル
naoya
64
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
200
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
420
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
950
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
250
お客様の「やりたい」の先を見通す合意形成プロセス ~裏にある課題と不安を解きほぐすコツ~
yukakoseki
0
120
2026 Apache Flink Community Checkpoint
rmetzger
0
200
JAWSコミュニティに 参加して1年経った結果
ssakita
0
110
AI時代のエンジニアの情報発信〜個人の発信を組織の力に変える〜
ryo_kawamata
1
7.4k
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
180
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
190
AI時代に求められる優秀なTechLeadの振る舞い
pospome
11
15k
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
460
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
530
Practical Orchestrator
shlominoach
192
12k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
390
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
600
Building a Scalable Design System with Sketch
lauravandoore
464
34k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
630
Building Adaptive Systems
keathley
44
3.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
The untapped power of vector embeddings
frankvandijk
2
2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
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 ͱ͔͍͖͍ͬͯͨํɺ͓ͪͯ͠·͢