[
  {
    "Node": "consul-staging-a-1.org",
    "Address": "10.0.11.221",
    "ServiceID": "mesos-slave-staging-a-1.org:determined_bartik:5000",
    "ServiceName": "service1",
    "ServiceTags": null,
    "ServiceAddress": "",
    "ServicePort": 4003
  },
  {
    "Node": "consul-staging-a-1.org",
    "Address": "10.0.11.221",
    "ServiceID": "mesos-slave-staging-a-1.org:angry_hypatia:5000",
    "ServiceName": "service1",
    "ServiceTags": null,
    "ServiceAddress": "",
    "ServicePort": 4007
  }
]


这是我从Consul服务API(/ v1 / catalog / service / service1)查询得到的。

我用来启动注册器和服务的命令:

docker run -d  -v /var/run/docker.sock:/tmp/docker.sock -h $HOSTNAME gliderlabs/registrator consul://consul-staging-a-1.org:8500

docker run -d -p 4003:5000 -e "SERVICE_NAME=service1" docker-training/hello-world
docker run -d -p 4007:5000 -e "SERVICE_NAME=service1" docker-training/hello-world


我做错了什么步骤?如何将主机名分配给ServiceAddress字段?

最佳答案

我遇到了类似的问题,发现在v6 Consul Registrator将ServiceAddress留空之前,但在v6(目前是最新的)中,它是“ 0.0.0.0”。我尝试使用“ -ip”选项,但是它没有帮助,它以某种方式分配了容器的内部IP地址。在以下位置找到相关问题:


https://github.com/gliderlabs/registrator/issues/240


就我而言,我通过将容器绑定到IP地址来修复它,例如:

docker run -d -p 10.0.0.3:4003:5000 -e "SERVICE_NAME=service1" docker-training/hello-world

关于service - 使用Consul Registrator时ServiceAddress为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29934758/

10-12 23:39