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, Get used to it !
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Julien Vey
December 03, 2013
Programming
3.1k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker, Get used to it !
A presentation of Docker use-cases
Julien Vey
December 03, 2013
More Decks by Julien Vey
See All by Julien Vey
Du Dev à la Prod... et ensuite ?
julienvey
0
48
On-Demand CI/CD with Gitlab and Kubernetes
julienvey
0
53
From CI to CD in a microservice architecture
julienvey
1
95
Terraform
julienvey
1
280
Microplugins with Docker
julienvey
5
1k
OpenStack Solum Presentation
julienvey
0
150
Use OpenStack as a Vagrant Provider
julienvey
0
210
Docker and its Ecosystem
julienvey
8
1.4k
Introducing Solum: Application Development in OpenStack
julienvey
1
880
Other Decks in Programming
See All in Programming
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
680
スマート反転とウェブアクセシビリティ
camiha
0
210
XHTMLが残したもの
yosuke_furukawa
PRO
2
800
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
380
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
160
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
310
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
110
速習iPhone Duo対応
yuukiw00w
1
260
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
690
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
470
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
350
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Building Applications with DynamoDB
mza
96
7.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
YesSQL, Process and Tooling at Scale
rocio
174
15k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Thoughts on Productivity
jonyablonski
76
5.4k
Documentation Writing (for coders)
carmenintech
77
5.5k
Transcript
Get used to it !
Julien Vey @julienvey
Pierre Padrixe @undefd
None
What is Docker ?
What is Docker ?
When can I use Docker ?
Sandbox
$ ./install-XXX.sh !
$ ./install-XXX.sh Error during install ! …
$ ./install-XXX.sh Error during install ! … $ ./uninstall-XXX.sh !
$ ./install-XXX.sh Error during install ! … $ ./uninstall-XXX.sh Could
not remove file xxx !
$ ./install-XXX.sh Error during install ! … $ ./uninstall-XXX.sh Could
not remove file xxx ! ! FAIL !
Please Docker, help me !
$ docker run $ ./install-XXX.sh Error during install !
$ docker run $ ./install-XXX.sh Error during install ! Try
Again !
$ docker run $ ./install-XXX.sh Error during install ! Try
Again ! $ docker run $ echo "Some conf" > XXX.cfg $ ./install-XXX.sh Success !
Repeatability
$ ./myscript.sh !
$ ./myscript.sh $ ./myotherscript.sh !
$ ./myscript.sh $ ./myotherscript.sh $ rm -rf myscriptdir !
$ ./myscript.sh $ ./myotherscript.sh $ rm -rf myscriptdir ! OOPS
!
Please Docker, help me !
RUN ./myscript.sh
RUN ./myscript.sh RUN ./myotherscript.sh
RUN ./myscript.sh RUN rm -rf myscriptdir RUN ./myotherscript.sh
RUN ./myscript.sh RUN rm -rf myscriptdir RUN ./myotherscript.sh OOPS ?
RUN ./myscript.sh RUN rm -rf myscriptdir RUN ./myotherscript.sh $ docker
commit $id me/snap $ docker commit $id me/snap $ docker run me/snap
Setup your Development environment
A development Environment Today
Tomcat Vert.x NodeJS Apache PHP Mongo
$ install $ install $ install $ install $ install
$ install Tomcat Vert.x NodeJS Apache PHP Mongo
Tomcat Vert.x NodeJS Apache PHP Mongo $ configure $ configure
$ configure $ configure $ configure $ configure
Do this for each Developer $ configure $ configure $
configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure $ configure
Too Many Steps !
Please Docker, help me !
Tomcat Vert.x NodeJS Apache PHP Mongo $ configure $ configure
$ configure $ configure $ configure $ configure Configure a Container Once
just run it for each developer $ docker run $
configure $ configure $ configure $ configure $ configure $ configure $ docker run $ configure $ configure $ configure $ configure $ configure $ configure $ docker run $ configure $ configure $ configure $ configure $ configure $ configure
On any (Linux) environment $ docker run $ configure $
configure $ configure $ configure $ configure $ configure $ docker run $ configure $ configure $ configure $ configure $ configure $ configure $ docker run $ configure $ configure $ configure $ configure $ configure $ configure
Or split by services $ docker run NodeJS $ configure
Apache $ configure $ docker run MongoDB $ configure $ docker run
Or split by services $ docker run NodeJS $ configure
Apache $ configure $ docker run MongoDB $ configure $ docker run and run ONLY what you need
PaaS Platform-as-a-Service
a PaaS deploys your application
your application needs Isolation
your application needs Fast Startup Time
Lucky you !
Docker is isolated
Docker is Fast
PaaS Providers already use Containers
OpenShift Heroku Docker INC use LXC
Flynn Deis Dokku are built with Docker
Isolation VS Performance
Sometimes, a Virtual Machine is Not Enough
You need Bare Metal Performance
You need Bare Metal Performance
But you Don’t want This Bare Metal Server
You’d Prefer have This Bare Metal Server
By Isolating your Apps in Containers, ! You provide Isolation
without giving up Performance
Continuous Deployment
Deliver Code Test Deploy
Deliver Code Test Deploy to Integration Deploy to Staging Deploy
to Production
Deliver Code Test Deploy to Integration Deploy to Staging Deploy
to Production Install environment Configure Migration scripts Deploy deliverable Install environment Configure Migration scripts Deploy deliverable Install environment Configure Migration scripts Deploy deliverable
We have to change the Delivery Unit
Deliver a container
Deliver a container Install environment Configure Migration scripts Deploy deliverable
Deliver a container Test Deploy to Integration Deploy to Staging
Deploy to Production
Deliver a container Test Deploy to Integration Deploy to Staging
Deploy to Production $ docker run $ docker run $ docker run Install environment Configure Migration scripts Deploy deliverable Install environment Configure Migration scripts Deploy deliverable Install environment Configure Migration scripts Deploy deliverable
The Container is the new Delivery Unit
Demo Time !
User $git push triggers build - build project - build
container deploys and run container
User $git push triggers build - build project - build
container deploys and run container Everything is a container
in order to build the container $docker build <mycontainer> github.com/jpetazzo/dind
What Else ?
User $git push triggers build with Promoted Builds Plugin promote
to staging promote to integration promote to production
$ docker run base echo Questions?
Thanks