Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker, Get used to it !
Search
Julien Vey
December 03, 2013
Programming
7
3.1k
Docker, Get used to it !
A presentation of Docker use-cases
Julien Vey
December 03, 2013
Tweet
Share
More Decks by Julien Vey
See All by Julien Vey
Du Dev à la Prod... et ensuite ?
julienvey
0
28
On-Demand CI/CD with Gitlab and Kubernetes
julienvey
0
40
From CI to CD in a microservice architecture
julienvey
1
72
Terraform
julienvey
1
260
Microplugins with Docker
julienvey
5
970
OpenStack Solum Presentation
julienvey
0
130
Use OpenStack as a Vagrant Provider
julienvey
0
190
Docker and its Ecosystem
julienvey
8
1.3k
Introducing Solum: Application Development in OpenStack
julienvey
1
840
Other Decks in Programming
See All in Programming
How Software Deployment tools have changed in the past 20 years
geshan
0
19k
生成AIを活用したリファクタリング実践 ~コードスメルをなくすためのアプローチ
raedion
0
150
アーキテクチャと考える迷子にならない開発者テスト
irof
9
3.4k
レイトレZ世代に捧ぐ、今からレイトレを始めるための小径
ichi_raven
0
480
jakarta-security-jjug-ccc-2025-fall
tnagao7
0
100
JJUG CCC 2025 Fall: Virtual Thread Deep Dive
ternbusty
3
500
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
200
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
480
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
Promise.tryで実現する新しいエラーハンドリング New error handling with Promise try
bicstone
3
1.7k
モデル駆動設計をやってみよう Modeling Forum2025ワークショップ/Let’s Try Model-Driven Design
haru860
0
200
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
530
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
67k
Embracing the Ebb and Flow
colly
88
4.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Navigating Team Friction
lara
190
16k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Speed Design
sergeychernyshev
33
1.3k
RailsConf 2023
tenderlove
30
1.3k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
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