SlideShare a Scribd company logo
What’s new in Docker
Victor Vieux
Software Engineer, 

Docker
@vieux
1. Versioning
2. Builder
3. Runtime
4. Swarm mode
5. Compose
Agenda
…	->	1.11	->	1.12	->	1.13	->	17.03-ce	->	17.04-ce	->	17.05-ce	->	…
YY.MM
“ce” stands for Community Edition as opposed to
“ee” for Enterprise Edition
New versioning…
…and new release schedule
Docker	CE
Docker	EE
Monthly
Quarterly	
Supported	for	
4	months
Quarterly	
Supported	for	
12	months
All features presented here are available in 17.05-rc1
Available today!
17.XX
…and new release schedule
Builder
Multi-Stage builds
step	1
step	2
step	3
step	4
step	1
step	2
step	3
step	4
step	5
step	6
step	7
docker build & Dockerfile improvement
17.05
FROM ubuntu
RUN apt-get install make g++
ADD . /src
RUN cd /src && make
EXPOSE 80
ENTRYPOINT /usr/local/bin/app
Multi-Stage builds
docker build & Dockerfile improvement
17.05
FROM alpine
RUN apk add make g++
ADD . /src
RUN cd /src && make
EXPOSE 80
ENTRYPOINT /usr/local/bin/app
Multi-Stage builds
docker build & Dockerfile improvement
17.05
FROM alpine
RUN apk add make g++
ADD . /src
RUN cd /src && make
Multi-Stage builds
docker build & Dockerfile improvement
FROM busybox
ADD ./app /usr/local/bin
EXPOSE 80
ENTRYPOINT /usr/local/bin/app
Makefile and/or shell script
17.05
FROM alpine AS build-env
RUN apk add make g++
ADD . /src
RUN cd /src && make
FROM busybox
COPY --from=build-env /src/build/app /usr/local/bin/app
EXPOSE 80
ENTRYPOINT /usr/local/bin/app
Multi-Stage builds
docker build & Dockerfile improvement
17.05
Multi-Stage builds
docker build & Dockerfile improvement
Let’s see a more complicated example:
Current Dockerfile: https://github.com/docker/dockercraft
Proposed Changes: https://github.com/docker/dockercraft/pull/83
17.05
Multi-Stage builds
wget	docker
wget	cuberite
go	build	dockercraft
run	dockercraft
docker build & Dockerfile improvement
install	wget
17.05
Multi-Stage builds
wget	docker
wget	cuberite
go	build	dockercraft
run	dockercraft
install	wget
wget	
docker
docker build & Dockerfile improvement
wget	
cuberite
run	dockercraft
go	build	
dockercraft
install	wget
17.05
Multi-Stage builds
docker build & Dockerfile improvement
838MB 155MB
final image size: final image size:
*
* 80% comes from debian:jessie, required by cuberite
17.05
• docker build .
• docker build --target=cuberite .
• docker build --target=docker .
Specify target on build
docker build & Dockerfile improvement
17.05
• docker build .
• docker build --build-arg GO_VERSION=latest .
• docker build --build-arg GO_VERSION=1.7 .
ARG in FROM
docker build & Dockerfile improvement
ARG GO_VERSION=1.8
FROM golang:${GO_VERSION}
ADD . /src
WORKDIR /src
RUN go build
CMD [“/bin/app”]
17.05
Runtime
docker system subcommands added
• docker system df
• docker system prune
• docker container/image/network/volume prune
Data management commands
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 5 1 2.777 GB 2.647 GB (95%)
Containers 1 1 0 B 0B
Local Volumes 4 1 3.207 GB 2.261 GB (70%)
17.03
docker plugin subcommands added
Plugins are now managed by the docker daemon and run as containers
• docker plugin install <plugin>
• docker plugin enable/disable <plugin>
• docker plugin set <plugin> KEY=value
New plugin system
17.03
docker plugin subcommands added
New plugin system
EXAMPLE:
https://github.com/vieux/docker-volume-sshfs
17.03
Plug-ins: Building, Shipping, Storing and Running
by Nandhini Santhanam & Tibor Vass
Tomorrow at 1:30pm in Ballroom D
Deep dive session
Swarm mode
Synchronous service commands
swarm mode improvements
$ docker service create --detach=false --name redis --replicas 5 redis
overall: [====================> ] 2B/5B
1/5: starting [========================================> ] 8B/9B
2/5: starting [========================================> ] 8B/9B
3/5: starting [========================================> ] 8B/9B
4/5: running [=============================================>] 9B/9B
5/5: running [=============================================>] 9B/9B
$
17.05
DEMO
using http://play-with-docker.com
Thanks to @marcosnils and @xetorthio
Synchronous service commands
swarm mode improvements
17.05
“rollback” action added to --update-failure-action
(in addition to “pause” and “continue”)
with all the associated flags
--rollback-delay
--rollback-failure-action
--rollback-max-failure-ratio
--rollback-monitor
--rollback-parallelism
Service rollback on failure
swarm mode improvements
17.04
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
swarm mode improvements
17.04
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
docker service create --replicas=6 postgres
swarm mode improvements
17.04
docker service create --replicas=6 postgres
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
swarm mode improvements
17.04
docker service create --replicas=6 postgres
docker service create --replicas=2 webapp
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
swarm mode improvements
17.04
docker service create --replicas=6 postgres
docker service create --replicas=2 webapp
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
swarm mode improvements
17.04
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
swarm mode improvements
17.04
rack:	SFO-2rack:	SFO-1
Topology-aware scheduling
node1 node2 node3	
docker service create --replicas=6 --placement-pref-add=rack postgres
swarm mode improvements
17.04
docker service create --replicas=6 --placement-pref-add=rack postgres
rack:	SFO-2rack:	SFO-1
swarm mode improvements
Topology-aware scheduling
node1 node2 node3	
17.04
docker service create --replicas=6 --placement-pref-add=rack postgres
docker service create --replicas=2 --placement-pref-add=rack webapp
rack:	SFO-2rack:	SFO-1
swarm mode improvements
Topology-aware scheduling
node1 node2 node3	
17.04
rack:	SFO-2rack:	SFO-1
swarm mode improvements
Topology-aware scheduling
node1 node2 node3	
docker service create --replicas=6 --placement-pref-add=rack postgres
docker service create --replicas=2 --placement-pref-add=rack webapp
17.04
Service logs
swarm mode improvements
$ docker service create --replicas 2 --name redis redis
$ docker service logs redis
redis.2.najk8sq1klac@node2 | _.-``__ ''-._
redis.2.najk8sq1klac@node2 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit
redis.1.lfkijq3fx3q8@node1 | _.-``__ ''-._
redis.2.najk8sq1klac@node2 | .-`` .-```. ```/ _.,_ ''-._
redis.1.lfkijq3fx3q8@node1 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit
redis.2.najk8sq1klac@node2 | ( ' , .-` | `, ) Running in standalone mode
redis.1.lfkijq3fx3q8@node1 | .-`` .-```. ```/ _.,_ ''-._
redis.2.najk8sq1klac@node2 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
redis.1.lfkijq3fx3q8@node1 | ( ' , .-` | `, ) Running in standalone mode
redis.2.najk8sq1klac@node2 | | `-._ `._ / _.-' | PID: 1
redis.1.lfkijq3fx3q8@node1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
redis.2.najk8sq1klac@node2 | `-._ `-._ `-./ _.-' _.-'
redis.1.lfkijq3fx3q8@node1 | | `-._ `._ / _.-' | PID: 1
...
17.05
Under the Hood with Docker Swarm Mode
by Drew Erny & Nishant Totla
Today at 2:00pm in Ballroom D
Deep dive session
Compose
docker stack subcommands added
It is now possible to deploy services using compose files directly from docker
• docker stack deploy --compose-file docker-compose.yml <my_stack>
• docker stack list
• docker stack rm <my_stack>
Compose to Swarm
17.03
docker-compose.yml improvements
Main differences form v2 are:
• Removed the non-portable options
• build
• volume-from
• …
• Added Swarm specific options
• replicas
• mode
• …
Compose Format version 3
17.03
DEMO
docker-compose.yml improvements
Compose Format version 3
https://github.com/docker/example-voting-app/blob/master/docker-stack.yml
17.03
ports:
- 3000
- 3000-3005
- 49100:22
- 9090-9091:8080-8081
- 127.0.0.1:8001:8001
- 127.0.0.1:5005-5010:5005-5010
- 6060:7060/udp
Long syntax for ports
docker-compose.yml improvements
17.04
ports:
- target: 6060
published: 7060
protocol: udp
Long syntax for ports
docker-compose.yml improvements
17.04
Also added specific swarm mode options
volumes:
- /var/lib/mysql
- /opt/data:/var/lib/mysql
- ./cache:/tmp/cache
- datavolume:/var/lib/mysql
- ~/configs:/etc/configs/:ro
Long syntax for volumes
docker-compose.yml improvements
17.04
volumes:
- type: bind
source: ~/configs
target: /etc/configs
read_only: true
Long syntax for volumes
docker-compose.yml improvements
17.04
Also added specific swarm mode options
Thanks, Don’t forget to vote!
@vieux #dockercon
Questions?

More Related Content

PDF
Securing Containers, One Patch at a Time - Michael Crosby, Docker
PDF
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
PDF
Configuration Management and Transforming Legacy Applications in the Enterpri...
PDF
DCSF19 CMD and Conquer: Containerizing the Monolith
PDF
Global Operations with Docker for the Enterprise - Nico Kabar, Docker
PDF
The Golden Ticket: Docker and High Security Microservices by Aaron Grattafiori
PDF
DockerCon EU 2015: Trading Bitcoin with Docker
PDF
Building a Secure App with Docker - Ying Li and David Lawrence, Docker
Securing Containers, One Patch at a Time - Michael Crosby, Docker
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
Configuration Management and Transforming Legacy Applications in the Enterpri...
DCSF19 CMD and Conquer: Containerizing the Monolith
Global Operations with Docker for the Enterprise - Nico Kabar, Docker
The Golden Ticket: Docker and High Security Microservices by Aaron Grattafiori
DockerCon EU 2015: Trading Bitcoin with Docker
Building a Secure App with Docker - Ying Li and David Lawrence, Docker

What's hot (20)

PDF
Docker for Devs - John Zaccone, IBM
PDF
Docker Security Deep Dive by Ying Li and David Lawrence
PDF
Taking Docker to Production: What You Need to Know and Decide
PDF
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
PDF
Deep dive in container service discovery
PDF
Docker on Google App Engine
PDF
How to Improve Your Image Builds Using Advance Docker Build
PDF
Troubleshooting Tips from a Docker Support Engineer
PPTX
Docker Bday #5, SF Edition: Introduction to Docker
PDF
Container orchestration from theory to practice
PPTX
Windows Server Containers- How we hot here and architecture deep dive
PDF
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
PDF
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
PDF
Browser Testing with Docker - Craig Huber
PDF
Docker for Ops - Scott Coulton, Puppet
PPTX
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
PDF
Docker for Java Developers - Fabiane Nardon and Arun gupta
PDF
Docker to the Rescue of an Ops Team
PDF
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
PDF
Docker Platform Internals: Taking runtimes and image creation to the next lev...
Docker for Devs - John Zaccone, IBM
Docker Security Deep Dive by Ying Li and David Lawrence
Taking Docker to Production: What You Need to Know and Decide
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
Deep dive in container service discovery
Docker on Google App Engine
How to Improve Your Image Builds Using Advance Docker Build
Troubleshooting Tips from a Docker Support Engineer
Docker Bday #5, SF Edition: Introduction to Docker
Container orchestration from theory to practice
Windows Server Containers- How we hot here and architecture deep dive
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
Browser Testing with Docker - Craig Huber
Docker for Ops - Scott Coulton, Puppet
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
Docker for Java Developers - Fabiane Nardon and Arun gupta
Docker to the Rescue of an Ops Team
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
Docker Platform Internals: Taking runtimes and image creation to the next lev...
Ad

Similar to What’s New in Docker - Victor Vieux, Docker (20)

PDF
Docker Compose and Panamax - ContainerDays Boston - June 2015
PPTX
Scaling Docker Containers using Kubernetes and Azure Container Service
PDF
Docker HK Meetup - 201707
PDF
Infrastructureascode slideshare-160331143725
PPTX
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
PDF
Infrastructureascode slideshare-160331143725
PDF
桃園市教育局Docker技術入門與實作
PDF
廣宣學堂: 容器進階實務 - Docker進深研究班
PDF
Docker 進階實務班
PDF
introduction-infra-as-a-code using terraform
PDF
Docker, the Future of DevOps
PPTX
Deploying Windows Containers on Windows Server 2016
PDF
Docker &amp; rancher
PDF
Microservices on Kubernetes - The simple way
PDF
Streamline your development environment with docker
PDF
Docker, Kubernetes, and Google Cloud
PPTX
Introction to docker swarm
PDF
時代在變 Docker 要會:台北 Docker 一日入門篇
PDF
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Docker Compose and Panamax - ContainerDays Boston - June 2015
Scaling Docker Containers using Kubernetes and Azure Container Service
Docker HK Meetup - 201707
Infrastructureascode slideshare-160331143725
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructureascode slideshare-160331143725
桃園市教育局Docker技術入門與實作
廣宣學堂: 容器進階實務 - Docker進深研究班
Docker 進階實務班
introduction-infra-as-a-code using terraform
Docker, the Future of DevOps
Deploying Windows Containers on Windows Server 2016
Docker &amp; rancher
Microservices on Kubernetes - The simple way
Streamline your development environment with docker
Docker, Kubernetes, and Google Cloud
Introction to docker swarm
時代在變 Docker 要會:台北 Docker 一日入門篇
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ad

More from Docker, Inc. (20)

PDF
Containerize Your Game Server for the Best Multiplayer Experience
PDF
Build & Deploy Multi-Container Applications to AWS
PDF
Securing Your Containerized Applications with NGINX
PDF
How To Build and Run Node Apps with Docker and Compose
PDF
Hands-on Helm
PDF
Distributed Deep Learning with Docker at Salesforce
PDF
The First 10M Pulls: Building The Official Curl Image for Docker Hub
PDF
Monitoring in a Microservices World
PDF
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
PDF
Predicting Space Weather with Docker
PDF
Become a Docker Power User With Microsoft Visual Studio Code
PDF
How to Use Mirroring and Caching to Optimize your Container Registry
PDF
Monolithic to Microservices + Docker = SDLC on Steroids!
PDF
Kubernetes at Datadog Scale
PDF
Labels, Labels, Labels
PDF
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
PDF
Build & Deploy Multi-Container Applications to AWS
PDF
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
PDF
Developing with Docker for the Arm Architecture
PDF
Sharing is Caring: How to Begin Speaking at Conferences
Containerize Your Game Server for the Best Multiplayer Experience
Build & Deploy Multi-Container Applications to AWS
Securing Your Containerized Applications with NGINX
How To Build and Run Node Apps with Docker and Compose
Hands-on Helm
Distributed Deep Learning with Docker at Salesforce
The First 10M Pulls: Building The Official Curl Image for Docker Hub
Monitoring in a Microservices World
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
Predicting Space Weather with Docker
Become a Docker Power User With Microsoft Visual Studio Code
How to Use Mirroring and Caching to Optimize your Container Registry
Monolithic to Microservices + Docker = SDLC on Steroids!
Kubernetes at Datadog Scale
Labels, Labels, Labels
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Build & Deploy Multi-Container Applications to AWS
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
Developing with Docker for the Arm Architecture
Sharing is Caring: How to Begin Speaking at Conferences

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Approach and Philosophy of On baking technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
A Presentation on Artificial Intelligence
PDF
project resource management chapter-09.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
1. Introduction to Computer Programming.pptx
A comparative study of natural language inference in Swahili using monolingua...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
A comparative analysis of optical character recognition models for extracting...
Heart disease approach using modified random forest and particle swarm optimi...
Hindi spoken digit analysis for native and non-native speakers
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Hybrid model detection and classification of lung cancer
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Approach and Philosophy of On baking technology
MIND Revenue Release Quarter 2 2025 Press Release
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A Presentation on Artificial Intelligence
project resource management chapter-09.pdf

What’s New in Docker - Victor Vieux, Docker

  • 1. What’s new in Docker Victor Vieux Software Engineer, 
 Docker @vieux
  • 2. 1. Versioning 2. Builder 3. Runtime 4. Swarm mode 5. Compose Agenda
  • 3. … -> 1.11 -> 1.12 -> 1.13 -> 17.03-ce -> 17.04-ce -> 17.05-ce -> … YY.MM “ce” stands for Community Edition as opposed to “ee” for Enterprise Edition New versioning…
  • 4. …and new release schedule Docker CE Docker EE Monthly Quarterly Supported for 4 months Quarterly Supported for 12 months
  • 5. All features presented here are available in 17.05-rc1 Available today! 17.XX …and new release schedule
  • 8. FROM ubuntu RUN apt-get install make g++ ADD . /src RUN cd /src && make EXPOSE 80 ENTRYPOINT /usr/local/bin/app Multi-Stage builds docker build & Dockerfile improvement 17.05
  • 9. FROM alpine RUN apk add make g++ ADD . /src RUN cd /src && make EXPOSE 80 ENTRYPOINT /usr/local/bin/app Multi-Stage builds docker build & Dockerfile improvement 17.05
  • 10. FROM alpine RUN apk add make g++ ADD . /src RUN cd /src && make Multi-Stage builds docker build & Dockerfile improvement FROM busybox ADD ./app /usr/local/bin EXPOSE 80 ENTRYPOINT /usr/local/bin/app Makefile and/or shell script 17.05
  • 11. FROM alpine AS build-env RUN apk add make g++ ADD . /src RUN cd /src && make FROM busybox COPY --from=build-env /src/build/app /usr/local/bin/app EXPOSE 80 ENTRYPOINT /usr/local/bin/app Multi-Stage builds docker build & Dockerfile improvement 17.05
  • 12. Multi-Stage builds docker build & Dockerfile improvement Let’s see a more complicated example: Current Dockerfile: https://github.com/docker/dockercraft Proposed Changes: https://github.com/docker/dockercraft/pull/83 17.05
  • 14. Multi-Stage builds wget docker wget cuberite go build dockercraft run dockercraft install wget wget docker docker build & Dockerfile improvement wget cuberite run dockercraft go build dockercraft install wget 17.05
  • 15. Multi-Stage builds docker build & Dockerfile improvement 838MB 155MB final image size: final image size: * * 80% comes from debian:jessie, required by cuberite 17.05
  • 16. • docker build . • docker build --target=cuberite . • docker build --target=docker . Specify target on build docker build & Dockerfile improvement 17.05
  • 17. • docker build . • docker build --build-arg GO_VERSION=latest . • docker build --build-arg GO_VERSION=1.7 . ARG in FROM docker build & Dockerfile improvement ARG GO_VERSION=1.8 FROM golang:${GO_VERSION} ADD . /src WORKDIR /src RUN go build CMD [“/bin/app”] 17.05
  • 19. docker system subcommands added • docker system df • docker system prune • docker container/image/network/volume prune Data management commands $ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 5 1 2.777 GB 2.647 GB (95%) Containers 1 1 0 B 0B Local Volumes 4 1 3.207 GB 2.261 GB (70%) 17.03
  • 20. docker plugin subcommands added Plugins are now managed by the docker daemon and run as containers • docker plugin install <plugin> • docker plugin enable/disable <plugin> • docker plugin set <plugin> KEY=value New plugin system 17.03
  • 21. docker plugin subcommands added New plugin system EXAMPLE: https://github.com/vieux/docker-volume-sshfs 17.03
  • 22. Plug-ins: Building, Shipping, Storing and Running by Nandhini Santhanam & Tibor Vass Tomorrow at 1:30pm in Ballroom D Deep dive session
  • 24. Synchronous service commands swarm mode improvements $ docker service create --detach=false --name redis --replicas 5 redis overall: [====================> ] 2B/5B 1/5: starting [========================================> ] 8B/9B 2/5: starting [========================================> ] 8B/9B 3/5: starting [========================================> ] 8B/9B 4/5: running [=============================================>] 9B/9B 5/5: running [=============================================>] 9B/9B $ 17.05
  • 25. DEMO using http://play-with-docker.com Thanks to @marcosnils and @xetorthio Synchronous service commands swarm mode improvements 17.05
  • 26. “rollback” action added to --update-failure-action (in addition to “pause” and “continue”) with all the associated flags --rollback-delay --rollback-failure-action --rollback-max-failure-ratio --rollback-monitor --rollback-parallelism Service rollback on failure swarm mode improvements 17.04
  • 28. rack: SFO-2rack: SFO-1 Topology-aware scheduling node1 node2 node3 docker service create --replicas=6 postgres swarm mode improvements 17.04
  • 29. docker service create --replicas=6 postgres rack: SFO-2rack: SFO-1 Topology-aware scheduling node1 node2 node3 swarm mode improvements 17.04
  • 30. docker service create --replicas=6 postgres docker service create --replicas=2 webapp rack: SFO-2rack: SFO-1 Topology-aware scheduling node1 node2 node3 swarm mode improvements 17.04
  • 31. docker service create --replicas=6 postgres docker service create --replicas=2 webapp rack: SFO-2rack: SFO-1 Topology-aware scheduling node1 node2 node3 swarm mode improvements 17.04
  • 33. rack: SFO-2rack: SFO-1 Topology-aware scheduling node1 node2 node3 docker service create --replicas=6 --placement-pref-add=rack postgres swarm mode improvements 17.04
  • 34. docker service create --replicas=6 --placement-pref-add=rack postgres rack: SFO-2rack: SFO-1 swarm mode improvements Topology-aware scheduling node1 node2 node3 17.04
  • 35. docker service create --replicas=6 --placement-pref-add=rack postgres docker service create --replicas=2 --placement-pref-add=rack webapp rack: SFO-2rack: SFO-1 swarm mode improvements Topology-aware scheduling node1 node2 node3 17.04
  • 36. rack: SFO-2rack: SFO-1 swarm mode improvements Topology-aware scheduling node1 node2 node3 docker service create --replicas=6 --placement-pref-add=rack postgres docker service create --replicas=2 --placement-pref-add=rack webapp 17.04
  • 37. Service logs swarm mode improvements $ docker service create --replicas 2 --name redis redis $ docker service logs redis redis.2.najk8sq1klac@node2 | _.-``__ ''-._ redis.2.najk8sq1klac@node2 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit redis.1.lfkijq3fx3q8@node1 | _.-``__ ''-._ redis.2.najk8sq1klac@node2 | .-`` .-```. ```/ _.,_ ''-._ redis.1.lfkijq3fx3q8@node1 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit redis.2.najk8sq1klac@node2 | ( ' , .-` | `, ) Running in standalone mode redis.1.lfkijq3fx3q8@node1 | .-`` .-```. ```/ _.,_ ''-._ redis.2.najk8sq1klac@node2 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 redis.1.lfkijq3fx3q8@node1 | ( ' , .-` | `, ) Running in standalone mode redis.2.najk8sq1klac@node2 | | `-._ `._ / _.-' | PID: 1 redis.1.lfkijq3fx3q8@node1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 redis.2.najk8sq1klac@node2 | `-._ `-._ `-./ _.-' _.-' redis.1.lfkijq3fx3q8@node1 | | `-._ `._ / _.-' | PID: 1 ... 17.05
  • 38. Under the Hood with Docker Swarm Mode by Drew Erny & Nishant Totla Today at 2:00pm in Ballroom D Deep dive session
  • 40. docker stack subcommands added It is now possible to deploy services using compose files directly from docker • docker stack deploy --compose-file docker-compose.yml <my_stack> • docker stack list • docker stack rm <my_stack> Compose to Swarm 17.03
  • 41. docker-compose.yml improvements Main differences form v2 are: • Removed the non-portable options • build • volume-from • … • Added Swarm specific options • replicas • mode • … Compose Format version 3 17.03
  • 42. DEMO docker-compose.yml improvements Compose Format version 3 https://github.com/docker/example-voting-app/blob/master/docker-stack.yml 17.03
  • 43. ports: - 3000 - 3000-3005 - 49100:22 - 9090-9091:8080-8081 - 127.0.0.1:8001:8001 - 127.0.0.1:5005-5010:5005-5010 - 6060:7060/udp Long syntax for ports docker-compose.yml improvements 17.04
  • 44. ports: - target: 6060 published: 7060 protocol: udp Long syntax for ports docker-compose.yml improvements 17.04 Also added specific swarm mode options
  • 45. volumes: - /var/lib/mysql - /opt/data:/var/lib/mysql - ./cache:/tmp/cache - datavolume:/var/lib/mysql - ~/configs:/etc/configs/:ro Long syntax for volumes docker-compose.yml improvements 17.04
  • 46. volumes: - type: bind source: ~/configs target: /etc/configs read_only: true Long syntax for volumes docker-compose.yml improvements 17.04 Also added specific swarm mode options
  • 47. Thanks, Don’t forget to vote! @vieux #dockercon Questions?