Skip to content

Instantly share code, notes, and snippets.

@l0rd
Last active January 22, 2017 01:16
Show Gist options
  • Save l0rd/5186cc80f8f26dc7e9490abca4405830 to your computer and use it in GitHub Desktop.
Save l0rd/5186cc80f8f26dc7e9490abca4405830 to your computer and use it in GitHub Desktop.
Demo swarm

Requirements: Docker 1.12, Docker machine and Virtualbox

# create 3 nodes for our swarm cluster (one master and 2 slaves)
docker-machine create -d virtualbox swmaster
docker-machine create -d virtualbox swnode1
docker-machine create -d virtualbox swnode2

# swarm init
docker $(docker-machine config swmaster) swarm init --advertise-addr $(docker-machine ip swmaster)
docker $(docker-machine config swmaster) info

# swarm join
token=$(docker $(docker-machine config swmaster) swarm join-token worker -q)
docker $(docker-machine config swnode1) swarm join --token $token $(docker-machine ip swmaster):2377
docker $(docker-machine config swnode2) swarm join --token $token $(docker-machine ip swmaster):2377

# start service
docker $(docker-machine config swmaster) service ls
docker $(docker-machine config swmaster) service create --replicas 1 --name docker-demo -p 8080 mariolet/docker-demo:20
docker $(docker-machine config swmaster) service ls
docker $(docker-machine config swmaster) service ps docker-demo
docker $(docker-machine config swmaster) ps
docker $(docker-machine config swnode1) ps

# scale service
docker $(docker-machine config swmaster) service scale docker-demo=3
docker $(docker-machine config swmaster) service ps docker-demo

# rolling-update
docker $(docker-machine config swmaster) service ps docker-demo
docker $(docker-machine config swmaster) service update --image mariolet/docker-demo:21 docker-demo
docker $(docker-machine config swmaster) service ps docker-demo
docker $(docker-machine config swmaster) service ps docker-demo

# drain a node
docker $(docker-machine config swmaster) node ls
docker $(docker-machine config swmaster) node update --availability drain swnode1

# remove a service
docker $(docker-machine config swmaster) service rm docker-demo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment