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
Ad

Recommended

Docker - Lightweight Virtualization
Docker - Lightweight Virtualization
Mehdi Hasan
 
Running Django on Docker: a workflow and code
Running Django on Docker: a workflow and code
Danielle Madeley
 
Docker & FieldAware
Docker & FieldAware
Jakub Jarosz
 
EC2 Storage for Docker 150526b
EC2 Storage for Docker 150526b
Clinton Kitson
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨
Ruoshi Ling
 
Docker for mere mortals
Docker for mere mortals
Henryk Konsek
 
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
Ruoshi Ling
 
First steps to docker
First steps to docker
Guilhem Marty
 
2 docker engine_hands_on
2 docker engine_hands_on
FEG
 
Austin - Container Days - Docker 101
Austin - Container Days - Docker 101
Bill Maxwell
 
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Anthony Chu
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with Nix
Sander van der Burg
 
Hide your development environment and application in a container
Hide your development environment and application in a container
Johan Janssen
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
Terry Chen
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at Twilio
dotCloud
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
Mathieu Buffenoir
 
Docker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよ
Yusuke Kon
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
Robert Reiz
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Ontico
 
Puppeteerのお話
Puppeteerのお話
Shinji Kobayashi
 
Docker puppetcamp london 2013
Docker puppetcamp london 2013
Tomas Doran
 
How to create your own hack environment
How to create your own hack environment
Sumedt Jitpukdebodin
 
Docker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker Registry
Mario IC
 
Ansible Oxford - Cows & Containers
Ansible Oxford - Cows & Containers
jonatanblue
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
Sander van der Burg
 
Dockerize Your Projects - A Brief Introduction to Containerization
Dockerize Your Projects - A Brief Introduction to Containerization
Sawood Alam
 
Intro to Chef
Intro to Chef
Giacomo Bagnoli
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
Simon Storm
 

More Related Content

What's hot (20)

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

Viewers also liked (20)

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

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

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

More from Erica Windisch (12)

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

Recently uploaded (20)

Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 

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