我正在一个码头工人领事馆,官方的领事形象,我有一个服务注册领事。服务注册,但是在轮询其DNS服务时,consul报告的IP是用于联系Consul代理的内部docker IP。
dig @localhost -p 8600 address-norm.service.consul
;; QUESTION SECTION:
;address-norm.service.consul. IN A
;; ANSWER SECTION:
address-norm.service.consul. 0 IN A 172.17.0.3
而不是172.17.0.3
我希望领事将服务IP更改为Consuls主机IP,因为服务隐藏在此主机上,只暴露它所需的端口。我没有使用Registrator
,我公开的服务已将Spring Cloud Consul
api集成到其中。
编辑:
这是我用来在Docker中启动consul的命令,我目前的解决方案是一个python脚本,它使用HTTP API并提取IP地址和端口。
docker run -d --name consul --net=host consul agent -server -bootstrap \
-node docker -ui -client=0.0.0.0 -bind=$NET_IP -advertise=$NET_IP
Net_IP只是运行docker的主机的本地网络IP