docker service is the new docker run
Getting Started with Docker Clustering
Mike Goelzer / mgoelzer@docker.com / @mgoelzer Docker Inc.
docker service is the new docker run Getting Started with Docker - - PowerPoint PPT Presentation
docker service is the new docker run Getting Started with Docker Clustering Mike Goelzer / mgoelzer@docker.com / @mgoelzer Docker Inc. docker service is the new docker run docker run nginx 2013-14 docker run -p 3375:2375 swarm ; 2014-15
Mike Goelzer / mgoelzer@docker.com / @mgoelzer Docker Inc.
Swarm Mode in Docker Engine
2013-14 2014-15 2016
Engine
$ docker swarm init
Engine
$ docker swarm init $ docker swarm join <IP of manager>:2377
Engine
Engine Engine Engine Engine Engine Engine
$ docker swarm init $ docker swarm join <IP of manager>:2377
Engine Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
mynet
Engine Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
$ docker service create --name redis --network mynet redis:latest
mynet
Engine Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
$ docker service create --name redis --network mynet redis:latest
mynet
Engine Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
$ docker service create --name redis --network mynet redis:latest
mynet
Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
$ docker service create --name redis --network mynet redis:latest
mynet
Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
$ docker service create --name redis --network mynet redis:latest
mynet
Engine Engine Engine Engine Engine
$ docker service update --replicas 6 frontend
mynet
Engine Engine Engine Engine Engine
$ docker service update --replicas 10 frontend
mynet
Engine Engine Engine Engine Engine
$ docker service create --mode=global --name prometheus prom/prometheus
mynet
Engine Engine Engine Engine Engine
Engine
docker daemon --label com.example.storage="ssd" docker daemon --label com.example.storage="ssd"
Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
frontend:latest
Engine
docker daemon --label com.example.storage="ssd" docker daemon --label com.example.storage="ssd"
Engine Engine Engine Engine Engine
$ docker service create --replicas 3 --name frontend --network mynet
frontend:latest $ docker service update --replicas 10 frontend
Engine
docker daemon --label com.example.storage="ssd" docker daemon --label com.example.storage="ssd"
swarm-wide ingress port (8080) for myapp
can transparently reroute traffic from Worker3 to a node that is running container
Engine
:8080
User accesses myapp.com:8080
:8080 :8080
frontend frontend
$ docker service create --replicas 3 --name frontend --network mynet
frontend
swarm-wide ingress port (8080) for myapp
can transparently reroute traffic from third node to a node that is running container
Engine
:8080
User accesses myapp.com:8080
:8080 :8080
frontend frontend
$ docker service create --replicas 3 --name frontend --network mynet
frontend
Certificate Authority TLS Certificate Authority TLS Certificate Authority TLS TLS TLS TLS
○ 2,384 nodes ○ 96,287 containers ○ Manager CPU/memory ≲15% ○ Test stopped because 3rd-party monitoring failed
@chanwit
Node Node Node Node Node Node
Node Node Node Node Node Node
Node Node Node Node Node Node
Node Node Node Node Node Node
Manager Worker
Node Node Node Node Node Node
Node Node Node Node Node Node
Manager Worker
Manager Manager Manager Worker Worker Worker Worker Worker Worker
Manager Manager Manager Worker Worker Worker Worker Worker Worker
Leader Follower Follower
Manager Manager Manager Worker Worker Worker Worker Worker Worker
Leader Follower Follower
Manager Manager Manager Worker Worker Worker Worker Worker Worker
Follower Follower Leader
Manager Manager Manager Worker Worker Worker Worker Worker Worker
Follower Follower Leader
Victor Vieux vieux@docker.com / @vieux Mike Goelzer mgoelzer@docker.com / @mgoelzer