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