Docker领事服务ip广告作为内部docker的ip
我正在一个docker工作领事,官方领事形象,我有一个服务向领事登记。 服务注册,但是当轮询其DNS服务时,领事报告的IP是用于联系Consul代理的内部dockerIP。
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中启动领事的命令,我现在的解决scheme是一个使用HTTP API并提取IP地址和端口的python脚本。
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的主机的本地networkingIP