3
[
  {
    "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 フィールドにどのように割り当てますか?

4

1 に答える 1

1

同様の問題があり、v6 Consul Registrator の前は ServiceAddress が空のままでしたが、v6 (現時点では最新) では「0.0.0.0」であることがわかりました。「-ip」オプションを使用しようとしましたが、役に立ちませんでした。どういうわけか、コンテナーの内部 IP アドレスが割り当てられます。関連する問題が見つかりました:

私の場合、次のようにコンテナーを IP アドレスにバインドすることで修正しました。

docker run -d -p 10.0.0.3:4003:5000 -e "SERVICE_NAME=service1" docker-training/hello-world
于 2015-08-27T00:20:48.720 に答える