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, Get used to it !
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Julien Vey
December 03, 2013
Programming
3.1k
7
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
41
On-Demand CI/CD with Gitlab and Kubernetes
julienvey
0
51
From CI to CD in a microservice architecture
julienvey
1
90
Terraform
julienvey
1
280
Microplugins with Docker
julienvey
5
990
OpenStack Solum Presentation
julienvey
0
140
Use OpenStack as a Vagrant Provider
julienvey
0
200
Docker and its Ecosystem
julienvey
8
1.3k
Introducing Solum: Application Development in OpenStack
julienvey
1
870
Other Decks in Programming
See All in Programming
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
RTSPクライアントを自作してみた話
simotin13
0
570
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
160
技術記事、 専門家としてのプログラマ、 言語化
mizchi
4
2.9k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
330
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.6k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
190
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
Featured
See All Featured
Crafting Experiences
bethany
1
180
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Faster Mobile Websites
deanohume
310
31k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
220
Designing for humans not robots
tammielis
254
26k
How GitHub (no longer) Works
holman
316
150k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
The World Runs on Bad Software
bkeepers
PRO
72
12k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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