•What is Docker
•Why is it so popular
•How are enterprises using it today
Feel free to ask any questions you may have
in the question box. If I can’t answer it during
the presentation, I’ll write a blog with
answers on stackengine.com
What is Docker?
Open source platform for developers and
sysadmins to build, ship and run distributed
•Runtime and packaging tool
•Installed on hosts that run Docker
•Cloud Service for storing and sharing
•Saving images (public/private)
•Ability to build a continuous delivery (CD)
•Idea of writing once and running anywhere.
•As long as your application is Dockerized, you
can run it anywhere that has the Docker
•Easy to change from 1 host to another.
•Flexibility to change underlying
infrastructure/operating systems etc.
•Change from 1 cloud provider to another.
• Coding environments can be made consistent from
• Per environment configurations are fed in the same
way to each container which reduces configuration
• Time spent debugging environmental issues is
• Developers understand the production environment
better, which leads to better code quality.
•Containers take seconds to deploy.
•Scale up and down your infrastructure is a
lot faster than traditional configuration
• Docker API’s and Docker Hub make it easy to build a
• After successful builds, a CI system can build and push a
Docker image to the Hub/private Docker repo.
• Deploy new containers to desired environment on a periodic
basis/trigger webhooks to deploy.
• Detailed example later..
Minimize Dependency Hell
•Dependency hell happens when:
•2 running Java or Ruby applications that depend on
different versions of the same library…..
•How Docker can help:
•Isolate each application (along with it’s
dependencies) so that they can be loaded in their
•1 container for 1 application or service (micro
• Starting point for most organizations to use Docker.
• Take existing (or new) applications, containerize them, run
them the same way on dev/stage/production.
• Examples on Docker.com: Orbitz, Uber
• All our infrastructure run in containers.
• Every code push builds a new container for the application.
• All environments uses the same command to run the application:
• sudo docker run -d -p 7777:7777 -e SE_DB=‘db_val’
• Most common usecase of how people use Docker today.
• Examples on Docker.com: Business Insider, Spotify, Yelp
• Code is commit to github; triggers a build with CircleCI.
• Successful build results in a built container that is deployed to a
• Successful push to registry triggers a webhook to the StackEngine
• StackEngine redeploys new container to production.
• 4 minute turnaround from commit->running in production.
Multi tenancy applications
•Single Tenant application-> Multi tenant
application by launching multiple instances
of the same application in different
Other use cases
•Running a PaaS
•Running entire datacenters using Docker.
•EngineYard/Yandex/Baidu are great examples
•Hosting Legacy Applications
•Containerizing hard to run applications is
becoming a frequent usecase.
Docker in Production?
•Great blog post summarizing current
•Already made huge strides in
•Start small, learn, adapt, expand.