SlideShare a Scribd company logo
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
19 Months Later: An Incredible Platform and Ecosystem 
Community 
640+ Contributors 250+ Meetups on Docker 
2.75M Downloads 6.7K Projects on GitHub 
Official Repos & 14K+ Dockerized Apps 
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
60+ People and a Turtle 
Now up to 
60+ people 
(and our pet 
turtle, Gordon)
…to Build, Ship, and Run 
Docker Hub 
Build Ship 
Run 
Source 
Dev 
QA 
Staging 
Linux OS 
Doocckkeerr 
Linux OS 
Linux OS 
Doocckkeerr 
Infrastructure Management 
Physical 
Infrastructure Management 
Virtual 
Cloud 
Source Code 
Repository 
DockerFile 
Docker 
Boot2Docker 
Linux OS 
Doocckkeerr 
TEST TEST 
TEST TEST 
TEST 
GCE RAX IBM 
Mac/Win Dev 
Machine 
Analytics 
DB 
Prod Machine 
Doocckkeerr 
++ 
Users Collab 
Provenance Policy 
Registries 
Public Curated Private 
Docker Hub API 
Third Party Tools 
Prod Machine 
Prod Machine 
VM 
DoDcokcekrer 
VM 
DoDcokcekrer 
VM 
DoDcokcekrer 
QA Machine
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Deploy services 
reliably & consistently 
• If it works locally, it will work on the server 
• With exactly the same behavior 
• Regardless of versions 
• Regardless of distros 
• Regardless of dependencies
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Better! 
Faster! 
Stronger!
Traditional Containerized 
Hardware 
VM (n) 
Hardware 
process (n) 
process (n) 
Hardware 
VM (n) 
Hardware 
"contained" 
process (n) 
"contained" 
process (n) process (n) 
"contained" 
process (n)
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Traditional Host 
syslogd nginx backup-agent sshd
Traditional Host 
syslogd nginx backup-agent sshd 
Dockerized Host 
syslogd nginx backup-agent sshd
a security product? 
• Docker Engine can be used as a security product. 
• It provides a wrapper around processes 
• Provides a path toward attestation of arbitrary 
processes (Trusted Compute) 
• You can use VMs to wrap containers 
(and you can use containers inside of VMs)
Dockerized Host 
syslogd nginx backup-agent sshd 
golden image: 
FROM ubuntu 
RUN apt-get install  
rsyslog 
nginx 
amanda 
opensshd
Dockerized Host 
syslogd nginx backup-agent sshd 
syslog image: 
FROM ubuntu 
RUN apt-get install rsyslog 
nginx image: 
FROM fedora:f20 
RUN yum install nginx 
backup-agent image: 
FROM ubuntu 
RUN apt-get install amanda 
sshd image: 
FROM debian 
RUN apt-get install opensshd
Do it! 
‣ Build an image" 
‣ Run it locally 
‣ Push it to a registry (public or private) 
‣ Run it (automatically!) in CI/CD and staging 
‣ Run it in production
It’s an image builder.
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Anatomy of a 
chef-container run: 
Image 
Linux 
Docker Initiates Creates Container 
Chef 
Chef 
Runs 
Configures 
Build Creates 
Runs 
Chef 
Configures 
Stage 1 
Stage 2
Do it! 
‣ Build an image 
‣ Run it locally 
‣ Push it to a registry (public or private) 
‣ Run it (automatically!) in CI/CD and staging 
‣ Run it in production
“docker run -t -i  
—rm=true my-image“ 
Legend: 
-t = allocate tty 
-i = interactive 
—rm = remove ephemeral filesystem when exiting
“docker ps”
Do it! 
‣ Build an image 
‣ Run it locally 
‣ Push it to a registry (public or private)" 
‣ Run it (automatically!) in CI/CD and staging 
‣ Run it in production
“docker push user/image”
Do it! 
‣ Build an image 
‣ Run it locally 
‣ Push it to a registry (public or private) 
‣ Run it (automatically!) in CI/CD and staging 
‣ Run it in production
CI services… 
and others…?
$ ID=$(docker build $app-dir) 
$ docker run —rm=true $ID 
$ echo $?
fig - local orchestration 
——fig.yml—— 
web: 
build: . 
command: python app.py 
ports: 
- "5000:5000" 
volumes: 
- .:/code 
links: 
- redis 
redis: 
image: orchardup/redis
$ ls 
Dockerfile fig.yml src 
$ docker run —privileged -v .:/opt/figapp  
ewindisch/figleaf 
$ echo $? 
Legend: 
—privileged = run “uncontained”. A permissive “firewall”, if you will. 
-v = provide volume or bind-mount filesystem into container
Do it! 
‣ Build an image 
‣ Run it locally 
‣ Push it to a registry (public or private) 
‣ Run it (automatically!) in CI/CD and staging 
‣ Run it in production
$ docker run -t -i  
—rm=false  
—restart=“on-failure[:5]” 
busybox 
Legend: 
—restart=Restart policy on exit (no, on-failure[:max-retry], always)
Managing Docker 
at scale
Creating Containers 
is Easy
Managing them 
SUCKS 
needs improvement
Management Ecosystem 
Mesos 
ClusterHQ Clocker Flynn
PaaS ecosystem
Configuration / Infrastructure 
Management 
• Chef 
• Puppet 
• Salt 
• Ansible 
• CFEngine 
• etc…
Container Inventory 
• discoverd / sdutil 
• serf 
• skydock 
• others?
Docker Remote API
• By default the Docker daemon listens on 
unix:///var/run/docker.sock 
• Can listen on a TCP socket with TLS 1.0+ 
Plain-text also possible, but do not use it! 
(enabled by default with boot2docker) 
• Used by various community tools: 
fig, vagrant, ansible, etc.
POST /containers/create HTTP/1.1 
Content-Type: application/json 
! 
{ 
"Hostname":"", 
"Domainname": "", 
"User":"", 
"Memory":0, 
"MemorySwap":0, 
"Env":null, 
“Cmd":[ "date" ], 
"Image":"base", 
“Volumes":{ "/tmp": {} }, 
"WorkingDir":"", 
"NetworkDisabled": false, 
"ExposedPorts":{ 
"22/tcp": {} 
}, 
"RestartPolicy": { "Name": "always" } 
} 
HTTP/1.1 201 Created 
Content-Type: application/json 
! 
{ 
"Id":"e90e34656806" 
"Warnings":[] 
}
Containers 
• List containers 
• Create a 
container 
• Inspect a 
container 
• List processes 
running inside a 
container 
• Get container 
logs 
• Inspect 
changes on a 
container's 
filesystem 
• Export a 
container 
• Resize a 
container TTY 
• Start a 
container 
• Stop a 
container 
• Restart a 
container 
• Kill a container 
• Pause a 
container 
• Unpause a 
container 
• Attach to a 
container 
• Wait a container 
• Remove a 
container 
• Copy files or 
folders from a 
container 
! 
!
Images 
• List Images 
• Create an image 
• Inspect an image 
• Get the history of an image 
• Push an image on the registry 
• Tag an image into a repository 
• Remove an image 
• Search images
Misc 
• Build an image from Dockerfile 
via stdin 
• Check auth configuration 
• Display system-wide 
information 
• Show the docker version 
information 
• Ping the docker server 
• Create a new image from a 
container's changes 
• Monitor Docker's events 
• Get a tarball containing all 
images in a repository 
• Get a tarball containing all 
images. 
• Load a tarball with a set of 
images and tags into docker 
• Image tarball format 
• Exec Create 
• Exec Start 
• Exec Resize
Q & A 
@ewindisch

More Related Content

What's hot (20)

PDF
2 docker engine_hands_on
FEG
 
PPTX
Austin - Container Days - Docker 101
Bill Maxwell
 
PDF
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
PDF
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Anthony Chu
 
PDF
Automating Mendix application deployments with Nix
Sander van der Burg
 
PPTX
Hide your development environment and application in a container
Johan Janssen
 
PDF
Develop QNAP NAS App by Docker
Terry Chen
 
PPTX
Dockerizing stashboard - Docker meetup at Twilio
dotCloud
 
PDF
2015 DockerCon Using Docker in production at bity.com
Mathieu Buffenoir
 
PDF
Docker composeで開発環境をメンバに配布せよ
Yusuke Kon
 
PDF
Infrastructure Deployment with Docker & Ansible
Robert Reiz
 
PDF
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Ontico
 
PDF
Puppeteerのお話
Shinji Kobayashi
 
PDF
Docker puppetcamp london 2013
Tomas Doran
 
PDF
How to create your own hack environment
Sumedt Jitpukdebodin
 
PPTX
Docker Ecosystem: Part V - Docker Registry
Mario IC
 
PDF
Ansible Oxford - Cows & Containers
jonatanblue
 
PDF
Using Nix and Docker as automated deployment solutions
Sander van der Burg
 
PDF
Dockerize Your Projects - A Brief Introduction to Containerization
Sawood Alam
 
2 docker engine_hands_on
FEG
 
Austin - Container Days - Docker 101
Bill Maxwell
 
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Anthony Chu
 
Automating Mendix application deployments with Nix
Sander van der Burg
 
Hide your development environment and application in a container
Johan Janssen
 
Develop QNAP NAS App by Docker
Terry Chen
 
Dockerizing stashboard - Docker meetup at Twilio
dotCloud
 
2015 DockerCon Using Docker in production at bity.com
Mathieu Buffenoir
 
Docker composeで開発環境をメンバに配布せよ
Yusuke Kon
 
Infrastructure Deployment with Docker & Ansible
Robert Reiz
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Ontico
 
Puppeteerのお話
Shinji Kobayashi
 
Docker puppetcamp london 2013
Tomas Doran
 
How to create your own hack environment
Sumedt Jitpukdebodin
 
Docker Ecosystem: Part V - Docker Registry
Mario IC
 
Ansible Oxford - Cows & Containers
jonatanblue
 
Using Nix and Docker as automated deployment solutions
Sander van der Burg
 
Dockerize Your Projects - A Brief Introduction to Containerization
Sawood Alam
 

Viewers also liked (20)

PDF
Intro to Chef
Giacomo Bagnoli
 
PDF
Docker dev ops for cd meetup 12-14
Simon Storm
 
PDF
Streamline your development environment with docker
Giacomo Bagnoli
 
PDF
[DockerHN_2nd_meetup] Ecosystem & Orchestration Tools
Nguyen Anh Tu
 
PPTX
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
PPTX
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
Codefresh
 
PPTX
How Docker Accelerates Continuous Development at Codefresh
Codefresh
 
PPTX
Codefresh + BlazeMeter Webinar: Continuous Testing for Containerized Applicat...
Codefresh
 
PDF
AWS Elastic Container Service - DockerHN
Nguyen Anh Tu
 
PPTX
Docker driven development pipeline webinar (1)
Codefresh
 
PDF
Docker Orchestrators
Andrew Sullivan
 
PPTX
Containers #101 Meetup: Containers and OpenStack
Codefresh
 
PDF
Docker Introduction
Peng Xiao
 
PDF
DockerCon 2016 Ecosystem - Everything You Need to Know About Docker and Stora...
ClusterHQ
 
PDF
Chef Cookbook Testing and Continuous Integration
Julian Dunn
 
PDF
How Docker Fits into DevOps Ecosystem
Edureka!
 
PDF
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
Daniel Krook
 
PDF
Docker Workshop - Orchestrating Docker Containers
Hugo Henley
 
PDF
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.
 
PDF
Overview of Chef - Fundamentals Webinar Series Part 1
Chef
 
Intro to Chef
Giacomo Bagnoli
 
Docker dev ops for cd meetup 12-14
Simon Storm
 
Streamline your development environment with docker
Giacomo Bagnoli
 
[DockerHN_2nd_meetup] Ecosystem & Orchestration Tools
Nguyen Anh Tu
 
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
Codefresh
 
How Docker Accelerates Continuous Development at Codefresh
Codefresh
 
Codefresh + BlazeMeter Webinar: Continuous Testing for Containerized Applicat...
Codefresh
 
AWS Elastic Container Service - DockerHN
Nguyen Anh Tu
 
Docker driven development pipeline webinar (1)
Codefresh
 
Docker Orchestrators
Andrew Sullivan
 
Containers #101 Meetup: Containers and OpenStack
Codefresh
 
Docker Introduction
Peng Xiao
 
DockerCon 2016 Ecosystem - Everything You Need to Know About Docker and Stora...
ClusterHQ
 
Chef Cookbook Testing and Continuous Integration
Julian Dunn
 
How Docker Fits into DevOps Ecosystem
Edureka!
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
Daniel Krook
 
Docker Workshop - Orchestrating Docker Containers
Hugo Henley
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.
 
Overview of Chef - Fundamentals Webinar Series Part 1
Chef
 
Ad

Similar to Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ (20)

PDF
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Erica Windisch
 
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
dotCloud
 
PDF
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PROIDEA
 
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
PPTX
Docker Starter Pack
Saeed Hajizade
 
PPTX
Docker
Hussien Elhannan
 
PDF
Introduction to Docker
Kuan Yen Heng
 
PDF
Up and running with docker
Michelle Liu
 
PDF
Work shop - an introduction to the docker ecosystem
João Pedro Harbs
 
PDF
Docker From Scratch
Giacomo Vacca
 
PPTX
Powercoders · Docker · Fall 2021.pptx
IgnacioTamayo2
 
PDF
Docker Tutorial.pdf
MuhammadYusuf767705
 
PDF
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 
PDF
Docker
Brian Hogan
 
PDF
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
PPTX
Docker and the Container Ecosystem
psconnolly
 
PDF
Docker_AGH_v0.1.3
Witold 'Ficio' Kopel
 
PDF
Introduction to Docker at Glidewell Laboratories in Orange County
Jérôme Petazzoni
 
PPTX
Docker
Cary Gordon
 
PDF
Introduction to Docker and deployment and Azure
Jérôme Petazzoni
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Erica Windisch
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
dotCloud
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PROIDEA
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Docker Starter Pack
Saeed Hajizade
 
Introduction to Docker
Kuan Yen Heng
 
Up and running with docker
Michelle Liu
 
Work shop - an introduction to the docker ecosystem
João Pedro Harbs
 
Docker From Scratch
Giacomo Vacca
 
Powercoders · Docker · Fall 2021.pptx
IgnacioTamayo2
 
Docker Tutorial.pdf
MuhammadYusuf767705
 
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 
Docker
Brian Hogan
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
Docker and the Container Ecosystem
psconnolly
 
Docker_AGH_v0.1.3
Witold 'Ficio' Kopel
 
Introduction to Docker at Glidewell Laboratories in Orange County
Jérôme Petazzoni
 
Docker
Cary Gordon
 
Introduction to Docker and deployment and Azure
Jérôme Petazzoni
 
Ad

More from Erica Windisch (12)

PDF
Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
Erica Windisch
 
PPTX
Embracing Serverless Ops (Lightning Talk)
Erica Windisch
 
PDF
Ops for NoOps - Operational Challenges for Serverless Apps
Erica Windisch
 
PDF
Building Composable Serverless Apps with IOpipe
Erica Windisch
 
PDF
Patterns for Secure Containerized Applications (Docker)
Erica Windisch
 
PDF
Orchestrating Docker with OpenStack
Erica Windisch
 
PDF
Things will Change - Usenix Keynote UCMS'14
Erica Windisch
 
PDF
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Erica Windisch
 
PDF
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Erica Windisch
 
PDF
Provisioning & Deploying with Docker
Erica Windisch
 
PDF
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Erica Windisch
 
PDF
Docker OpenStack - 3/27/2014
Erica Windisch
 
Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
Erica Windisch
 
Embracing Serverless Ops (Lightning Talk)
Erica Windisch
 
Ops for NoOps - Operational Challenges for Serverless Apps
Erica Windisch
 
Building Composable Serverless Apps with IOpipe
Erica Windisch
 
Patterns for Secure Containerized Applications (Docker)
Erica Windisch
 
Orchestrating Docker with OpenStack
Erica Windisch
 
Things will Change - Usenix Keynote UCMS'14
Erica Windisch
 
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Erica Windisch
 
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Erica Windisch
 
Provisioning & Deploying with Docker
Erica Windisch
 
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Erica Windisch
 
Docker OpenStack - 3/27/2014
Erica Windisch
 

Recently uploaded (20)

PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 

Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ

  • 2. 19 Months Later: An Incredible Platform and Ecosystem Community 640+ Contributors 250+ Meetups on Docker 2.75M Downloads 6.7K Projects on GitHub Official Repos & 14K+ Dockerized Apps 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
  • 3. 60+ People and a Turtle Now up to 60+ people (and our pet turtle, Gordon)
  • 4. …to Build, Ship, and Run Docker Hub Build Ship Run Source Dev QA Staging Linux OS Doocckkeerr Linux OS Linux OS Doocckkeerr Infrastructure Management Physical Infrastructure Management Virtual Cloud Source Code Repository DockerFile Docker Boot2Docker Linux OS Doocckkeerr TEST TEST TEST TEST TEST GCE RAX IBM Mac/Win Dev Machine Analytics DB Prod Machine Doocckkeerr ++ Users Collab Provenance Policy Registries Public Curated Private Docker Hub API Third Party Tools Prod Machine Prod Machine VM DoDcokcekrer VM DoDcokcekrer VM DoDcokcekrer QA Machine
  • 11. Deploy services reliably & consistently • If it works locally, it will work on the server • With exactly the same behavior • Regardless of versions • Regardless of distros • Regardless of dependencies
  • 14. Traditional Containerized Hardware VM (n) Hardware process (n) process (n) Hardware VM (n) Hardware "contained" process (n) "contained" process (n) process (n) "contained" process (n)
  • 16. Traditional Host syslogd nginx backup-agent sshd
  • 17. Traditional Host syslogd nginx backup-agent sshd Dockerized Host syslogd nginx backup-agent sshd
  • 18. a security product? • Docker Engine can be used as a security product. • It provides a wrapper around processes • Provides a path toward attestation of arbitrary processes (Trusted Compute) • You can use VMs to wrap containers (and you can use containers inside of VMs)
  • 19. Dockerized Host syslogd nginx backup-agent sshd golden image: FROM ubuntu RUN apt-get install rsyslog nginx amanda opensshd
  • 20. Dockerized Host syslogd nginx backup-agent sshd syslog image: FROM ubuntu RUN apt-get install rsyslog nginx image: FROM fedora:f20 RUN yum install nginx backup-agent image: FROM ubuntu RUN apt-get install amanda sshd image: FROM debian RUN apt-get install opensshd
  • 21. Do it! ‣ Build an image" ‣ Run it locally ‣ Push it to a registry (public or private) ‣ Run it (automatically!) in CI/CD and staging ‣ Run it in production
  • 22. It’s an image builder.
  • 27. Anatomy of a chef-container run: Image Linux Docker Initiates Creates Container Chef Chef Runs Configures Build Creates Runs Chef Configures Stage 1 Stage 2
  • 28. Do it! ‣ Build an image ‣ Run it locally ‣ Push it to a registry (public or private) ‣ Run it (automatically!) in CI/CD and staging ‣ Run it in production
  • 29. “docker run -t -i —rm=true my-image“ Legend: -t = allocate tty -i = interactive —rm = remove ephemeral filesystem when exiting
  • 31. Do it! ‣ Build an image ‣ Run it locally ‣ Push it to a registry (public or private)" ‣ Run it (automatically!) in CI/CD and staging ‣ Run it in production
  • 33. Do it! ‣ Build an image ‣ Run it locally ‣ Push it to a registry (public or private) ‣ Run it (automatically!) in CI/CD and staging ‣ Run it in production
  • 34. CI services… and others…?
  • 35. $ ID=$(docker build $app-dir) $ docker run —rm=true $ID $ echo $?
  • 36. fig - local orchestration ——fig.yml—— web: build: . command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redis redis: image: orchardup/redis
  • 37. $ ls Dockerfile fig.yml src $ docker run —privileged -v .:/opt/figapp ewindisch/figleaf $ echo $? Legend: —privileged = run “uncontained”. A permissive “firewall”, if you will. -v = provide volume or bind-mount filesystem into container
  • 38. Do it! ‣ Build an image ‣ Run it locally ‣ Push it to a registry (public or private) ‣ Run it (automatically!) in CI/CD and staging ‣ Run it in production
  • 39. $ docker run -t -i —rm=false —restart=“on-failure[:5]” busybox Legend: —restart=Restart policy on exit (no, on-failure[:max-retry], always)
  • 42. Managing them SUCKS needs improvement
  • 43. Management Ecosystem Mesos ClusterHQ Clocker Flynn
  • 45. Configuration / Infrastructure Management • Chef • Puppet • Salt • Ansible • CFEngine • etc…
  • 46. Container Inventory • discoverd / sdutil • serf • skydock • others?
  • 48. • By default the Docker daemon listens on unix:///var/run/docker.sock • Can listen on a TCP socket with TLS 1.0+ Plain-text also possible, but do not use it! (enabled by default with boot2docker) • Used by various community tools: fig, vagrant, ansible, etc.
  • 49. POST /containers/create HTTP/1.1 Content-Type: application/json ! { "Hostname":"", "Domainname": "", "User":"", "Memory":0, "MemorySwap":0, "Env":null, “Cmd":[ "date" ], "Image":"base", “Volumes":{ "/tmp": {} }, "WorkingDir":"", "NetworkDisabled": false, "ExposedPorts":{ "22/tcp": {} }, "RestartPolicy": { "Name": "always" } } HTTP/1.1 201 Created Content-Type: application/json ! { "Id":"e90e34656806" "Warnings":[] }
  • 50. Containers • List containers • Create a container • Inspect a container • List processes running inside a container • Get container logs • Inspect changes on a container's filesystem • Export a container • Resize a container TTY • Start a container • Stop a container • Restart a container • Kill a container • Pause a container • Unpause a container • Attach to a container • Wait a container • Remove a container • Copy files or folders from a container ! !
  • 51. Images • List Images • Create an image • Inspect an image • Get the history of an image • Push an image on the registry • Tag an image into a repository • Remove an image • Search images
  • 52. Misc • Build an image from Dockerfile via stdin • Check auth configuration • Display system-wide information • Show the docker version information • Ping the docker server • Create a new image from a container's changes • Monitor Docker's events • Get a tarball containing all images in a repository • Get a tarball containing all images. • Load a tarball with a set of images and tags into docker • Image tarball format • Exec Create • Exec Start • Exec Resize
  • 53. Q & A @ewindisch