SlideShare a Scribd company logo
What’s New in Docker 1.12
Mike Goelzer
(Spoiler alert: a lot!)
$ docker swarm init
$ docker swarm init
$ docker swarm join <IP of manager>:2377
$ docker swarm init
$ docker swarm join <IP of manager>:2377
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
mynet
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
$ docker service create --name redis --network mynet redis:latest
mynet
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
$ docker service create --name redis --network mynet redis:latest
mynet
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
$ docker service create --name redis --network mynet redis:latest
mynet
≠
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
$ docker service create --name redis --network mynet redis:latest
mynet
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
$ docker service create --name redis --network mynet redis:latest
mynet
$ docker service scale frontend=6
mynet
$ docker service scale frontend=10
mynet
$ docker service create --mode=global --name prometheus
prom/prometheus
mynet
docker daemon --label
com.example.storage="ssd"
docker daemon --label
com.example.storage="ssd"
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp --constraint com.example.storage="ssd"
frontend_image:latest
docker daemon --label
com.example.storage="ssd"
docker daemon --label
com.example.storage="ssd"
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp --constraint com.example.storage="ssd"
frontend_image:latest
$ docker service scale frontend=10
docker daemon --label
com.example.storage="ssd"
docker daemon --label
com.example.storage="ssd"
Services
Services are grouped into stacks
Distributed Application Bundle (.dab) declares
a stack
Swarm mode orchestration is optional
● You don’t have to use it
● 1.12 is fully backwards compatible
● Will not break existing deployments and scripts
Routing Mesh
• Operator reserves a swarm-
wide ingress port (80) for
myapp
• Every node listens on 80
• Container-aware routing mesh
can transparently reroute traffic
from Worker3 to a node that is
running container
• Built in load balancing into the
Engine
• DNS-based service discovery
:80
:80
:80 :80
frontend frontend
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
frontend
Routing Mesh: Published Ports
• Operator reserves a swarm-
wide ingress port (80) for
myapp
• Every node listens on 80
• Container-aware routing mesh
can transparently reroute traffic
from Worker3 to a node that is
running container
• Built in load balancing into the
Engine
• DNS-based service discovery
:80
:80
:80 :80
frontend frontend
$ docker service create --replicas 3 --name frontend --network mynet
--publish 80:80/tcp frontend_image:latest
frontend
Security out of the box
● Cryptographic Node Identity
○ Workload segregation (think PCI)
● There is no “insecure mode”:
○ TLS mutual auth
○ TLS encryption
○ Certificate rotation
HEALTHCHECK --interval=5m --timeout=3s
--retries 3
CMD curl -f http://localhost/ || exit 1
Checks every 5 minutes that web server can return index
page within 3 seconds.
Three consecutive failures puts container in an unhealthy
state.
Container Health Check in Dockerfile
docker plugin install tiborvass/no-remove
docker plugin enable no-remove
docker plugin disable no-remove
New Plugin Subcommands
$ docker plugin install tiborvass/no-remove
Plugin "mikegoelzer/myplugin:latest"
requested the following privileges:
- Networking: host
- Mounting host path: /data
Do you grant the above permissions? [y/N]
Plugin Permissions Model
Orchestration Deep Dive
Andrea Luzzardi
DockerCon 2016
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
Manager
Worker
Manager
Worker
● Each Node has a role
● Roles are dynamic
● Programmable Topology
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
● Strongly consistent: Holds desired state
● Simple to operate
● Blazing fast (in-memory reads, domain specific indexing, ...)
● Secure
● Eventually consistent: Routing mesh, load balancing rules, ...
● High volume, p2p network between workers
● Secure: Symmetric encryption with key rotation in Raft
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
Secure by default with end to end encryption
• Cryptographic node
identity
• Automatic encryption
and mutual auth (TLS)
• Automatic cert rotation
• External CA integration
Certificate
Authority
TLS
Certificate
Authority
TLS
Certificate
Authority
TLS
TLS TLSTLS
Learn more about 1.12
Monday 5:20 pm @ Ballroom 6E
• Docker Security Deep Dive
Tuesday 3:55 pm @ Ballroom 6E
• Docker for Ops: Networking Deep Dive, Considerations and
Troubleshooting
Mike Goelzer
mgoelzer@docker.com / @mgoelzer
Andrea Luzzardi
al@docker.com / @aluzzardi
Questions?
Thank You
Mike Goelzer
mgoelzer@docker.com / @mgoelzer
Andrea Luzzardi
al@docker.com / @aluzzardi

More Related Content

PPTX
Docker Security workshop slides
PDF
Docker for Ops - Scott Coulton, Puppet
PPTX
Docker Networking : 0 to 60mph slides
PDF
Docker for Mac and Windows: The Insider's Guide by Justin Cormack
PPTX
Docker Meetup 08 03-2016
PDF
Docker for Developers - Part 1 by David Gageot
PDF
Getting Deep on Orchestration: APIs, Actors, and Abstractions in a Distribute...
PPTX
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Docker Security workshop slides
Docker for Ops - Scott Coulton, Puppet
Docker Networking : 0 to 60mph slides
Docker for Mac and Windows: The Insider's Guide by Justin Cormack
Docker Meetup 08 03-2016
Docker for Developers - Part 1 by David Gageot
Getting Deep on Orchestration: APIs, Actors, and Abstractions in a Distribute...
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown

What's hot (20)

PPTX
Enabling Production Grade Containerized Applications through Policy Based Inf...
PDF
Container orchestration from theory to practice
PPTX
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
PDF
Docker Security Deep Dive by Ying Li and David Lawrence
PDF
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
PDF
Docker for Devs - John Zaccone, IBM
PDF
The Golden Ticket: Docker and High Security Microservices by Aaron Grattafiori
PDF
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
PDF
Docker Online Meetup: Infrakit update and Q&A
PDF
Online Meetup: Why should container system / platform builders care about con...
PPTX
Docker SF Meetup January 2016
PDF
Effective Data Pipelines with Docker & Jenkins - Brian Donaldson
PDF
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
PPTX
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
PPTX
Programming the world with Docker
PDF
Orchestrating Linux Containers while tolerating failures
PPTX
Docker Roadshow 2016
PDF
DockerCon EU 2015: The Latest in Docker Engine
PDF
DockerCon EU 2015: Trading Bitcoin with Docker
PDF
Docker Multi-arch All The Things
Enabling Production Grade Containerized Applications through Policy Based Inf...
Container orchestration from theory to practice
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
Docker Security Deep Dive by Ying Li and David Lawrence
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Devs - John Zaccone, IBM
The Golden Ticket: Docker and High Security Microservices by Aaron Grattafiori
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
Docker Online Meetup: Infrakit update and Q&A
Online Meetup: Why should container system / platform builders care about con...
Docker SF Meetup January 2016
Effective Data Pipelines with Docker & Jenkins - Brian Donaldson
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Programming the world with Docker
Orchestrating Linux Containers while tolerating failures
Docker Roadshow 2016
DockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: Trading Bitcoin with Docker
Docker Multi-arch All The Things
Ad

Viewers also liked (20)

PPTX
Thinking Inside the Container: A Continuous Delivery Story by Maxfield Stewart
PDF
Containerd: Building a Container Supervisor by Michael Crosby
PDF
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
PDF
runC: The little engine that could (run Docker containers) by Docker Captain ...
PDF
Microservices + Events + Docker = A Perfect Trio by Docker Captain Chris Rich...
PDF
Docker for Ops: Extending Docker with APIs, Drivers and Plugins by Arnaud Por...
PDF
Docker, Docker Swarm mangement tool - Gorae
PDF
PDF
Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy
PDF
Docker swarm introduction
PPTX
Load Balancing Apps in Docker Swarm with NGINX
PDF
Docker Swarm 0.2.0
PPTX
Docker introduction
PDF
Docker 1.12 - Swarm Mode
PPTX
Introduction to docker swarm
PPT
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
PPTX
Docker Swarm Introduction
PDF
Docker Online Meetup #28: Production-Ready Docker Swarm
PPTX
DockerCon 16 General Session Day 1
PPTX
DockerCon 16 General Session Day 2
Thinking Inside the Container: A Continuous Delivery Story by Maxfield Stewart
Containerd: Building a Container Supervisor by Michael Crosby
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
runC: The little engine that could (run Docker containers) by Docker Captain ...
Microservices + Events + Docker = A Perfect Trio by Docker Captain Chris Rich...
Docker for Ops: Extending Docker with APIs, Drivers and Plugins by Arnaud Por...
Docker, Docker Swarm mangement tool - Gorae
Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy
Docker swarm introduction
Load Balancing Apps in Docker Swarm with NGINX
Docker Swarm 0.2.0
Docker introduction
Docker 1.12 - Swarm Mode
Introduction to docker swarm
An Introduction to Container Organization with Docker Swarm, Kubernetes, Meso...
Docker Swarm Introduction
Docker Online Meetup #28: Production-Ready Docker Swarm
DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 2
Ad

Similar to What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi (20)

PDF
New Docker Features for Orchestration and Containers
PPTX
Nats meetup oct 2016 docker 112
PPTX
"Deploying Multi-OS Applications with Docker Swarm" with Docker's David Yu
PDF
Docker 1.12 and SwarmKit
PDF
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
PDF
Deep Dive into Docker Swarm Mode
PDF
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PDF
Docker 1.12 networking deep dive
PDF
Docker Networking Deep Dive
PDF
Demystfying container-networking
PDF
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
PDF
Troubleshooting Tips from a Docker Support Engineer
PDF
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
PPTX
Docker container management
PPTX
Docker Networking - Common Issues and Troubleshooting Techniques
PPTX
Docker 1.11 Presentation
PDF
Docker, the Future of DevOps
PPTX
Managing multicast stream on Docker.pptx
PDF
Intersog Hack_n_Tell. Docker. First steps.
PPTX
.NET Developer Days - Launching Patterns for Containers
New Docker Features for Orchestration and Containers
Nats meetup oct 2016 docker 112
"Deploying Multi-OS Applications with Docker Swarm" with Docker's David Yu
Docker 1.12 and SwarmKit
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
Deep Dive into Docker Swarm Mode
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
Docker 1.12 networking deep dive
Docker Networking Deep Dive
Demystfying container-networking
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
Troubleshooting Tips from a Docker Support Engineer
Collabnix Online Webinar - Demystifying Docker & Kubernetes Networking by Bal...
Docker container management
Docker Networking - Common Issues and Troubleshooting Techniques
Docker 1.11 Presentation
Docker, the Future of DevOps
Managing multicast stream on Docker.pptx
Intersog Hack_n_Tell. Docker. First steps.
.NET Developer Days - Launching Patterns for Containers

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
System and Network Administration Chapter 2
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
history of c programming in notes for students .pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPT
Introduction Database Management System for Course Database
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
AI in Product Development-omnex systems
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Digital Strategies for Manufacturing Companies
PPTX
Operating system designcfffgfgggggggvggggggggg
Design an Analysis of Algorithms II-SECS-1021-03
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Online Work Permit System for Fast Permit Processing
Navsoft: AI-Powered Business Solutions & Custom Software Development
System and Network Administration Chapter 2
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
history of c programming in notes for students .pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Introduction Database Management System for Course Database
Which alternative to Crystal Reports is best for small or large businesses.pdf
Softaken Excel to vCard Converter Software.pdf
How Creative Agencies Leverage Project Management Software.pdf
Odoo Companies in India – Driving Business Transformation.pdf
AI in Product Development-omnex systems
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Digital Strategies for Manufacturing Companies
Operating system designcfffgfgggggggvggggggggg

What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi

  • 1. What’s New in Docker 1.12 Mike Goelzer (Spoiler alert: a lot!)
  • 3. $ docker swarm init $ docker swarm join <IP of manager>:2377
  • 4. $ docker swarm init $ docker swarm join <IP of manager>:2377
  • 5. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest mynet
  • 6. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest $ docker service create --name redis --network mynet redis:latest mynet
  • 7. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest $ docker service create --name redis --network mynet redis:latest mynet
  • 8. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest $ docker service create --name redis --network mynet redis:latest mynet
  • 9. ≠ $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest $ docker service create --name redis --network mynet redis:latest mynet
  • 10. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest $ docker service create --name redis --network mynet redis:latest mynet
  • 11. $ docker service scale frontend=6 mynet
  • 12. $ docker service scale frontend=10 mynet
  • 13. $ docker service create --mode=global --name prometheus prom/prometheus mynet
  • 14. docker daemon --label com.example.storage="ssd" docker daemon --label com.example.storage="ssd"
  • 15. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp --constraint com.example.storage="ssd" frontend_image:latest docker daemon --label com.example.storage="ssd" docker daemon --label com.example.storage="ssd"
  • 16. $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp --constraint com.example.storage="ssd" frontend_image:latest $ docker service scale frontend=10 docker daemon --label com.example.storage="ssd" docker daemon --label com.example.storage="ssd"
  • 18. Services are grouped into stacks
  • 19. Distributed Application Bundle (.dab) declares a stack
  • 20. Swarm mode orchestration is optional ● You don’t have to use it ● 1.12 is fully backwards compatible ● Will not break existing deployments and scripts
  • 21. Routing Mesh • Operator reserves a swarm- wide ingress port (80) for myapp • Every node listens on 80 • Container-aware routing mesh can transparently reroute traffic from Worker3 to a node that is running container • Built in load balancing into the Engine • DNS-based service discovery :80 :80 :80 :80 frontend frontend $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest frontend
  • 22. Routing Mesh: Published Ports • Operator reserves a swarm- wide ingress port (80) for myapp • Every node listens on 80 • Container-aware routing mesh can transparently reroute traffic from Worker3 to a node that is running container • Built in load balancing into the Engine • DNS-based service discovery :80 :80 :80 :80 frontend frontend $ docker service create --replicas 3 --name frontend --network mynet --publish 80:80/tcp frontend_image:latest frontend
  • 23. Security out of the box ● Cryptographic Node Identity ○ Workload segregation (think PCI) ● There is no “insecure mode”: ○ TLS mutual auth ○ TLS encryption ○ Certificate rotation
  • 24. HEALTHCHECK --interval=5m --timeout=3s --retries 3 CMD curl -f http://localhost/ || exit 1 Checks every 5 minutes that web server can return index page within 3 seconds. Three consecutive failures puts container in an unhealthy state. Container Health Check in Dockerfile
  • 25. docker plugin install tiborvass/no-remove docker plugin enable no-remove docker plugin disable no-remove New Plugin Subcommands
  • 26. $ docker plugin install tiborvass/no-remove Plugin "mikegoelzer/myplugin:latest" requested the following privileges: - Networking: host - Mounting host path: /data Do you grant the above permissions? [y/N] Plugin Permissions Model
  • 27. Orchestration Deep Dive Andrea Luzzardi DockerCon 2016
  • 30. Manager Worker ● Each Node has a role ● Roles are dynamic ● Programmable Topology
  • 32. ● Strongly consistent: Holds desired state ● Simple to operate ● Blazing fast (in-memory reads, domain specific indexing, ...) ● Secure
  • 33. ● Eventually consistent: Routing mesh, load balancing rules, ... ● High volume, p2p network between workers ● Secure: Symmetric encryption with key rotation in Raft
  • 37. Secure by default with end to end encryption • Cryptographic node identity • Automatic encryption and mutual auth (TLS) • Automatic cert rotation • External CA integration Certificate Authority TLS Certificate Authority TLS Certificate Authority TLS TLS TLSTLS
  • 38. Learn more about 1.12 Monday 5:20 pm @ Ballroom 6E • Docker Security Deep Dive Tuesday 3:55 pm @ Ballroom 6E • Docker for Ops: Networking Deep Dive, Considerations and Troubleshooting
  • 39. Mike Goelzer mgoelzer@docker.com / @mgoelzer Andrea Luzzardi al@docker.com / @aluzzardi Questions?
  • 40. Thank You Mike Goelzer mgoelzer@docker.com / @mgoelzer Andrea Luzzardi al@docker.com / @aluzzardi