This Docker container is setup to run Elasticsearch with Consul for service discovery and health monitoring.
It has also been optimized to run on Joyent's Triton, however it will always also support strait Docker and boot2docker.
It can be run on its own simply via:
docker run -d -p 8400 -p 8500 -p 8600 --name consul progrium/consul -server -bootstrap -ui-dir /ui
docker run -d --name e1 --link consul:consul corbinu/consul-elasticsearch
docker exec -it e1 elasticsearch-bootstrap
Consul will UI will be available on port mapped to 8500
Bootstrapping, Consul clusters, and the details about adding and removing nodes. The CLI and HTTP API are also documented.
Check for registered instances of a named service
curl -v http://consul:8500/v1/catalog/service/elasticsearch | json -aH ServiceAddress
Register an instance of a service
export MYIP=$(ip addr show eth0 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')
curl http://consul:8500/v1/agent/service/register -d "$(printf '{"ID": "elasticsearch-%s","Name": "elasticsearch","Address": "%s"}' $MYIP $MYIP)"