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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
30
On-Demand CI/CD with Gitlab and Kubernetes
julienvey
0
43
From CI to CD in a microservice architecture
julienvey
1
75
Terraform
julienvey
1
270
Microplugins with Docker
julienvey
5
980
OpenStack Solum Presentation
julienvey
0
140
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
850
Other Decks in Programming
See All in Programming
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
180
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
Grafana:建立系統全知視角的捷徑
blueswen
0
330
AI時代の認知負荷との向き合い方
optfit
0
160
CSC307 Lecture 07
javiergs
PRO
0
550
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
組織で育むオブザーバビリティ
ryota_hnk
0
180
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
580
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
AgentCoreとHuman in the Loop
har1101
5
240
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
HDC tutorial
michielstock
1
380
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Designing Powerful Visuals for Engaging Learning
tmiket
0
230
How GitHub (no longer) Works
holman
316
140k
Why Our Code Smells
bkeepers
PRO
340
58k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
53
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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