registrator
is a side-kick registration process which registers running docker containers in etcd
to be discovered by a discovery service.
Run a registrator container:
$ docker build -t registrator .
$ docker docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e HOST_IP=10.0.0.10 -e ETCD_HOST=10.0.0.11:4001 registrator
By default registrator will look for containers on the docker host which expose only one port. If such a container is found it will be published to the specified etcd
instance. If a container has multiple ports published, registrator will try to register the container with port 443
or 80
if present.
- Control port selection:
To get better control over which port gets registered in :code:`etcd', a label can be specified which defines the internal port where the service is listening. This should not be necessary if each container only exposes a single port. :
-e PRIMARY_PORT_LABEL=publish_port
A "discoverable" container may use this label to get registered:
$ docker run -d -l publish_port=1000/tcp -p 1000 -p 2000 -p 3000 service-a
- Control which containers will be registered:
To filter "discoverable" containers, you can specify mandatory labels:
-e LABELS=foo,bar
Only containers with all of this labels will be registered. The specified labels also get published to
etcd
.- Other Paramaters:
Set a different ttl for registered services:
-e ETCD_TTL 15
Specify the path to the docker socket:
-e DOCKER_SOCKET unix:///var/run/docker.sock
Containers are grouped by the service they are running. Currently the image name is used as the service name.
{
"action":"get",
"node":{
"key":"/services/service-a/69b49c31688a0bed047aa4ec44305e5c82d80f0121bf97da1b96f06fbe80cd78",
"dir":true,
"expiration":"2015-07-15T23:27:08.404316306Z",
"ttl":14,
"nodes":[
{
"key":"/services/service-a/69b49c31688a0bed047aa4ec44305e5c82d80f0121bf97da1b96f06fbe80cd78/address",
"value":"192.168.59.103:32838",
"expiration":"2015-07-15T23:27:08.204150652Z",
"ttl":14,
"modifiedIndex":3047,
"createdIndex":3047
},
{
"key":"/services/service-a/69b49c31688a0bed047aa4ec44305e5c82d80f0121bf97da1b96f06fbe80cd78/foo",
"value":"xyz",
"expiration":"2015-07-15T23:27:08.268121624Z",
"ttl":14,
"modifiedIndex":3049,
"createdIndex":3049
},
{
"key":"/services/service-a/69b49c31688a0bed047aa4ec44305e5c82d80f0121bf97da1b96f06fbe80cd78/bar",
"value":"abc",
"expiration":"2015-07-15T23:27:08.369949396Z",
"ttl":14,
"modifiedIndex":3051,
"createdIndex":3051
}
],
"modifiedIndex":3011,
"createdIndex":3011
}
}