registry - Unable to discover docker containers -


i following tutorial service discovery http://jasonwilder.com/blog/2014/07/15/docker-service-discovery

briefly:

i created etcd host running @ x.y.z.d:4001

docker run -d --name etcd -p 4001:4001 -p 7001:7001 coreos/etcd 

created backend server running container @ backend_serverip:8000 , docker-register

$ docker run -d -p 8000:8000 --name whoami -t jwilder/whoami $ docker run --name docker-register -d -e host_ip=$(hostname --all-ip-addresses | awk '{print $1}') -e etcd_host=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register 

created backend server running container @ backend2_serverip:8000 , docker-register

 $ docker run -d -p 8000:8000 --name whoami -t jwilder/whoami  $ docker run --name docker-register -d -e host_ip=$(hostname --all-ip-addresses | awk '{print $1}') -e etcd_host=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register 

created client running docker-discover , ubuntu image

$ docker run -d --net host --name docker-discover -e etcd_host=10.170.71.226:4001 -p 127.0.0.1:1936:1936 -t jwilder/docker-discover 

when @ logs see if containers being registered see teh folowing error

2015/07/09 19:28:00 error running notify command: python /tmp/register.py, exit status 1 2015/07/09 19:28:00 traceback (most recent call last):  file "/tmp/register.py", line 22, in <module> backends = client.read("/backends")  file "/usr/local/lib/python2.7/dist-packages/etcd/client.py", line 347, in read self.key_endpoint + key, self._mget, params=params, timeout=timeout)   file "/usr/local/lib/python2.7/dist-packages/etcd/client.py", line 587, in api_execute return self._handle_server_response(response)   file "/usr/local/lib/python2.7/dist-packages/etcd/client.py", line 603, in _handle_ser etcd.etcderror.handle(**r)   file "/usr/local/lib/python2.7/dist-packages/etcd/__init__.py", line 184, in handle raise exc(msg, payload) etcd.etcdkeynotfound: key not found : /backends 

i tried manually creating directory , tried running containers privileged option no luck

the error getting bug in code. problem /backends not exist in etcd directory. can create manually running this:

curl -l http://127.0.0.1:4001/v2/keys/backends -xput -d dir=true 

once directory exists in etcd, won't error anymore.

i created pull request fixes bug , if want use fixed code, can build own image:

git clone git@github.com:rca/docker-register.git cd docker-register docker build -t docker-register . 

then command docker register like:

$ docker run --name docker-register -d -e host_ip=$(hostname --all-ip-addresses | awk '{print $1}') -e etcd_host=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t docker-register 

note removed jwilder/ image name in command uses local version.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -