Skip to content

Instantly share code, notes, and snippets.

@sokil
Last active May 9, 2018 20:29
Show Gist options
  • Save sokil/850ec8a9e11962f9a643ec95e52b8a76 to your computer and use it in GitHub Desktop.
Save sokil/850ec8a9e11962f9a643ec95e52b8a76 to your computer and use it in GitHub Desktop.
Build consul cluster, register DNS service
#!/bin/sh
# network
docker network create consulnet
# servers
docker run --network="consulnet" -p 8500:8500 --rm --name=consulServer1 consul agent --node=server1 --client=0.0.0.0 --bootstrap --server --ui
docker run --network="consulnet" --rm --name=consulServer2 consul agent --node=server2 --client=0.0.0.0 -join=172.18.0.2 --server
docker run --network="consulnet" --rm --name=consulServer3 consul agent --node=server3 --client=0.0.0.0 -join=172.18.0.2 --server
# agents
docker run --net="consulnet" --rm --name=consulClient1 consul agent --node=client1 --client=0.0.0.0 -join=172.18.0.2
docker run --net="consulnet" --rm --name=consulClient2 consul agent --node=client2 --client=0.0.0.0 -join=172.18.0.2
docker run --net="consulnet" --rm --name=consulClient3 consul agent --node=client3 --client=0.0.0.0 -join=172.18.0.2
# status
docker exec server1 consul members
# raft leader
docker exec server1 consul operator raft list-peers
# load dns service
service='{"service": {"name": "dns", "address": "8.8.8.8", "port": 53}}'
docker exec server1 sh -c "echo '$service' > /consul/config/dns.json"
docker exec server1 consul reload
# test dns service
sleep 1 # wait for reload
curl 127.0.0.4:8503/v1/catalog/service/dns?pretty
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment