Weiming f919f838c2 [Release] v0.1.0 | 2 yıl önce | |
---|---|---|
.. | ||
Dockerfile | 2 yıl önce | |
README.md | 2 yıl önce | |
docker-register.service | 2 yıl önce | |
etcd.tmpl | 2 yıl önce |
docker-register sets up a container running docker-gen. docker-gen dynamically generate a python script when containers are started and stopped. This generated script registers the running containers host IP and port in etcd with a TTL. It works in tandem with docker-discover which generates haproxy routes on the host to forward requests to registered containers.
Together, they implement service discovery for docker containers with a similar architecture to SmartStack. docker-register is analagous to nerve in the SmartStack system.
See also Docker Service Discovery Using Etcd and Haproxy
The original docker-register only supports etcd v2.
It has been modified to support etcd v3.
You can build the docker image with following command and follow the same usage.
docker build -t docker-register -f Dockerfile .
To run it:
$ docker run -d -e HOST_IP=1.2.3.4 -e ETCD_HOST=1.2.3.4:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register
Then start any containers you want to be discoverable and publish their exposed port to the host.
$ docker run -d -P -t ...
If you run the container on multiple hosts, they will be grouped together automatically.
There are a few simplications that were made:
EXPOSE
s
multiple ports, it won't be registered in etcd.