Build Ship Run
Challenge

When something goes wrong..

Cargo Transport 1960s

Intermodal Shipping Container

Docker - A Container System for Code

What is Docker
- Docker is “an open source project to pack, ship and run any application as a lightweight container.”
- The idea is to provide a comprehensive abstraction layer that allows developers to “containerize” or “package” any application and have it run on any infrastructure
- Docker containers provide a standard, consistent way of packaging just about any application.
How it Works

Ok so what does that give us?

Developer: Build Once, Run Anywhere
A clean, safe, hygienic and portable runtime environment for your app.
No worries about missing dependencies, packages and other pain points during subsequent deployments.
Run each app in its own isolated container, so you can run various versions of libraries and other dependencies for each app without worrying
Automate testing, integration, packaging…anything you can script
Reduce/eliminate concerns about compatibility on different platforms, either your own or your customers.
Operator: Configure Once, Run Anything
A clean, safe, hygienic and portable runtime environment for your app.
No worries about missing dependencies, packages and other pain points during subsequent deployments.
Run each app in its own isolated container, so you can run various versions of libraries and other dependencies for each app without worrying
Automate testing, integration, packaging…anything you can script
Reduce/eliminate concerns about compatibility on different platforms, either your own or your customers.
Dan the Developer
* Worries about what’s “inside” the container
- His code
- His Libraries
- His Package Manager
- His Apps
- His Data
* All Linux servers look the same
Oscar the ops guy
* Worries about what’s “outside” the container
- Logging
- Remote access
- Monitoring
- Network config
* All containers start, stop, copy, attach, migrate, etc. the same way
Why it works—separation of concerns
Since it started in March 2013...
- >200,000 pulls
- >7,500 github stars
- >200 significant contributors
- >200 projects built on top of docker
- UIs, mini-PaaS, Remote Desktop...
- 1000’s of Dockerized applications
- Memcached, Redis, Node.js, Hadoop...
- Integration in Jenkins, Travis, Chef, Puppet, Vagrant and OpenStack
- Meetups arranged around the world…
- with organizations like Ebay, Cloudflare, Yandex, and Rackspace presenting on their use of Docker
Containers vs. VMs

People were like..

Partner Eco System

FROM image:version
COPY your_app_code
RUN your_cmds_before_app
EXPOSE port
CMD to_run_app
FROM mhart/alpine-node:4.4
WORKDIR /src
COPY package.json package.json
COPY . .
RUN npm install
EXPOSE 3005
CMD ["node", "app.js"]
Dockerfile
Bored.. Lets code

Docker
By Sateesh Smart
Docker
Docker is “an open source project to pack, ship and run any application as a lightweight container.”
- 1,068