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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Julien Vey
December 03, 2013
Programming
3.1k
7
Share
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
39
On-Demand CI/CD with Gitlab and Kubernetes
julienvey
0
51
From CI to CD in a microservice architecture
julienvey
1
88
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
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
450
ふつうのFeature Flag実践入門
irof
7
3.5k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
720
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.1k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1k
AIエージェントの隔離技術の徹底比較
kawayu
0
460
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.5k
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
OSもどきOS
arkw
0
430
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
2
400
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
Everyday Curiosity
cassininazir
0
220
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
So, you think you're a good person
axbom
PRO
2
2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
350
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
4 Signs Your Business is Dying
shpigford
187
22k
Balancing Empowerment & Direction
lara
6
1.1k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
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