我的主持人有弹性搜索服务。
我可以在我的控制台中运行:
$ curl http://127.0.0.1:9200
{
"name" : "node00",
"cluster_name" : "cluster00",
"cluster_uuid" : "Zk4RzStrTLeSD2TQXReRlA",
"version" : {
"number" : "5.0.0",
"build_hash" : "253032b",
"build_date" : "2016-10-26T04:37:51.531Z",
"build_snapshot" : false,
"lucene_version" : "6.2.0"
},
"tagline" : "You Know, for Search"
}
我获得了docker comunication的ip地址:
$ sudo ifconfig
docker0 Link encap:Ethernet HWaddr 02:42:6b:fc:f8:82
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
内部容器:
root@1e473bd5ca92:~# curl http://172.17.0.1:9200
curl: (7) Failed to connect to 172.17.0.1 port 9200: Connection refused
但如果我将此查询运行到互联网,我得到了有效的回复:
root@1e473bd5ca92:~# curl 'https://api.ipify.org?format=json'
{"ip":"192.143.241.250"}
我如何从主机访问弹性搜索服务?
答案 0 :(得分:0)
主机上的Elasticsearch实例可能只在localhost
上侦听(127.0.0.1)。查看主配置文件中的network.host
设置(可能/etc/elasticsearch/elasticsearch.yml
或类似内容)。如果它看起来像:
network.host:
- 127.0.0.1
您可以显式添加Docker桥接接口:
network.host:
- 127.0.0.1
- 172.17.0.1
或者你可以让它在所有界面上听(如果你确定这是你想要的行为):
network.host:
- 0.0.0.0