Docker and Containers overview - Docker Workshop

Post on 16-Apr-2017

1,447 views 2 download

transcript

An Open Platform to Build, Ship, and Run Distributed Applications

whoami

Jonas Rosland Developer Advocate

EMC {code} emccode.github.io

@jonasrosland jonas.rosland@emc.com

March 20, 2013: Docker Launches

https://www.youtube.com/watch?v=wW9CAH9nSLs

15 Months Later: An Incredible Platform and Ecosystem

Official Repos & 14K+ Dockerized Apps

Community 460+ Contributors 250+ Meetups on Docker 2.75M Downloads 6.7K Projects on GitHub

Support Enterprise Support Robust Documentation Implementation, Integration, Training Network of Partners

The Docker Platform

Docker Engine

Docker Hub

Build, Ship, and Run

Partners

Content

Users

24 Months Later: An Incredible Platform and Ecosystem

Official Repos & 14K+ Dockerized Apps

Community 790+ Contributors 150+ Meetup Groups 100M+ Downloads 50K Projects on GitHub

Support Enterprise Support Robust Documentation Implementation, Integration, Training Network of Partners

The Docker Platform

Docker Engine

Docker Hub 75K Apps in the Hub

Build, Ship, and Run

Partners

Content

Users

We know we’re riding on your shoulders

Thank You to the Giants

• Namespaces (IBM) • Cgroups (Google) • LXC tools

• The Linux Kernel • Git • SELinux (Red Hat) • Solaris Zones

• BSD Jails

• +++

Thank You Users/Use Cases*

*A small subset of the 100s who are using and/or writing about us Thanks to those above for talking about their experiences at DockerCon

• Using Docker in our ECS appliances

And of course…

The Docker Ecosystem

Agenda

Official Repos & 14K + Dockerized Apps

Partners

Content

Users

Community 460+ Contributors 250+ Meetups on Docker 2.75M Downloads 6.7K Projects on GitHub

Support Enterprise Support Robust Documentation Implementation, Integration, Training Network of Partners

The Docker Platform

Docker Engine Docker Hub

Build, Ship, and Run

~2000 2014Long lived Development is iterative and constant

Monolithic and built on a single stack Built from loosely coupled components

Deployed to a single server Deployed to a multitude of servers

Apps Have Fundamentally Changed

Static website

Web frontend

User DB

Queue

Analytics DB

Background workersAPI endpoint

nginx 1.5 + modsecurity + openssl + bootstrap 2

postgresql + pgv8 + v8 hadoop + hive + thrift + OpenJDK

Ruby + Rails + sass + Unicorn

Redis + redis-sentinel

Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Python 2.7 + Flask + pyredis + celery +

psycopg + postgresql-client

Development VM

QA Server

Public Cloud

Disaster Recovery

Contributor’s LaptopProduction Servers

Mul

tiplic

ity o

f Sta

cks

Mul

tiplic

ity o

f Har

dwar

e En

viro

nmen

ts

Production Cluster

Customer Data Center

Do services and apps

interact appropriately?C

an I migrate sm

oothly and quickly?

The Problem in 2014

Results in NxN compatibility nightmare

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Development VM QA Server Single Prod

ServerOnsite Cluster

Public Cloud

Contributor’s laptop

Customer Servers

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

A useful analogy…

Cargo Transport Pre-1960M

ultip

licity

of

Goo

dsM

ultip

licity

of

met

hods

for

tran

spor

ting/

stor

ing

Do I w

orry about how

goods interact (e.g. coffee beans

next to spices)

Can I transport

quickly and smoothly

(e.g. from boat to

train to truck)

Also an NxN Matrix

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

Solution: Intermodal Shipping ContainerM

ultip

licity

of

Goo

dsD

o I worry about how

goods interact (e.g. coffee beans next to

spices)

Can I transport quickly

and smoothly

(e.g. from boat to train

to truck)

…in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another

A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.

This eliminated the NxN problem

The Right Approach to Containers Matters

• Separation of concerns • Automation • Efficiency • Broad ecosystem

Images courtesy of PokkO / Shutterstock.com, Lewis Hine - http://www.archives.gov/research_room/research_topics/american_cities/images/american_cities_069.jpg

Docker is a shipping container system for code

Static website Web frontend User DB Queue Analytics DB

Development VM

QA server Public Cloud Contributor’s laptop

Mul

tiplic

ity o

f S

tack

s

Production Cluster

Customer Data Center

Do services and apps interact

appropriately?

Can I m

igrate sm

oothly and quickly

…that can be manipulated using standard operations and run consistently on virtually any hardware platform

An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…

…or put more simply

Static website Web frontend User DB Queue Analytics DB

Development VM

QA server Public Cloud Contributor’s laptop

Mul

tiplic

ity o

f S

tack

s

Production Cluster

Customer Data Center

Do services and apps interact

appropriately?

Can I m

igrate sm

oothly and quickly

Operator: Configure Once, Run Anything

Developer: Build Once, Run Anywhere (Finally)

An Open Platform to Build, Ship, and Run Distributed Applications

Containers vs. VMs

Why are Docker containers lightweight?

What are the basics of the Docker system?

An Open Platform…

API

Engine Hub

open source software at the heart of the Docker platform

cloud-based platform services for distributed applications

API

An Open Platform…

Any App

Any infrastructure • Physical • Virtual cloud

+ 75K apps + 50K projects

API

Engine Hub

cloud-based platform services for distributed applications

API

open source software at the heart of the Docker platform

…to Build, Ship, and Run

Build Ship

Run

Dev

QA

Source

Staging

Physical

Virtual

Cloud

Infrastructure Management

Infrastructure Management

DockerFile

Source Code Repository

TESTTEST

TESTTEST

TEST

GCE RAX IBM

Mac/Win Dev Machine

Boot2Docker

Doc

ker

AnalyticsDB

Prod Machine

Linux OS

Doc

ker

Doc

ker

++

Users Collab

Provenance Policy

Docker Hub

Registries

Public Curated Private

Docker Hub API

Third Party Tools

Prod Machine

Linux OS

Doc

ker

Doc

ker

Prod Machine

Linux OS

Doc

ker

Doc

ker

VM

Doc

ker

Doc

ker

VM

Doc

ker

Doc

ker

VM

Doc

ker

Doc

ker

QA Machine

Linux OS

Doc

ker

Doc

ker

…Distributed Applications

Data

UserDB

Queue

AnalyticsDB

API Endpoint

WebFrontend

Data

Background Workers

Development VM

QA Server

Public Cloud

Disaster Recovery

Contributor’s LaptopProduction Servers

Production Cluster

Customer Data Center

• Faster delivery of your applications

• Deploying and scaling more easily

• Achieving higher density and running more workloads

So to finish up, Docker enables

An Open Platform to Build, Ship, and Run Distributed Applications