Skip to content

Instantly share code, notes, and snippets.

@roicostas
Last active August 29, 2016 16:16
Show Gist options
  • Select an option

  • Save roicostas/b8199655c69e080bcffbad8989fe41d3 to your computer and use it in GitHub Desktop.

Select an option

Save roicostas/b8199655c69e080bcffbad8989fe41d3 to your computer and use it in GitHub Desktop.
dockercoins in docker 1.12 swarm mode
# Get dockercoins application
git clone https://github.com/roicostas/docker-orchestration
cd docker-orchestration/dockercoins
# Build and push dockercoins to the registry
docker-compose -f docker-compose.yml-registry build
docker-compose -f docker-compose.yml-registry push
# Connect to the cluster
eval $(docker-machine env node-1)
# Check cluster state
docker info
# Check cluster nodes
docker nodes ls
# Create three machines with docker-machine
for node in node-1 node-2 node-3; do
docker-machine create -d virtualbox --virtualbox-memory=512 $node
done
# Connect to node-1
eval $(docker-machine env node-1)
# Create swarm master
docker swarm init --advertise-addr $(docker-machine ip node-1) \
--listen-addr $(docker-machine ip node-1):2377
# Connect to the other machines and join swarm
TOKEN=$(docker swarm join-token -q worker)
for node in node-2 node-3; do
eval $(docker-machine env $node)
docker swarm join --token $TOKEN $(docker-machine ip node-1):2377
done
# Create private dockercoins network
docker network create --driver overlay dockercoins
# Create dockercoins services
docker service create --name redis -p 6379 --network dockercoins redis
docker service create --name rng -p 80 --network dockercoins $REGISTRY/dockercoins_rng
docker service create --name hasher -p 80 --network dockercoins $REGISTRY/dockercoins_hasher
docker service create --name worker --network dockercoins $REGISTRY/dockercoins_worker
# ingress network allows the service to be public (here on port 8000)
docker service create --name webui -p 8000:80 --network dockercoins --network ingress $REGISTRY/dockercoins_webui
docker service create -p 5000:5000 --constraint node.hostname==node-1 registry:2
export REGISTRY=localhost:5000
docker-machine rm -f node-1 node-2 node-3
# Check services
docker service ls
# Check worker service
docker service ps worker
docker-machine rm -f node-3
docker service update --replicas 3 worker
# Create new dockercoins_worker version
docker tag $REGISTRY/dockercoins_worker $REGISTRY/dockercoins_worker:v2
docker push $REGISTRY/dockercoins_worker:v2
# Upgrade service
docker service update --image localhost:5000/dockercoins_worker:v2 worker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment