Docker从主机访问elasticsearch端点

我使用以下命令运行docker镜像:

docker run -P elasticsearch:2.2 

我能够从主机访问在端口9200上运行的http端点,但我不清楚如何设置publish_address,使其不会改变。 我试图修改elasticsearch.yml并将network.publish属性设置为分配给docker0和eth0的ip地址以及lo,即使它在启动时确认了输出中的绑定,curl到地址给了我一个拒绝的连接。

下面的elasticsearch:2.2公开了一些端口9200和9300.当你使用Elasticsearch的时候众所周知的端口。 Docker推荐使用通用的,传统的端口为你的应用程序,这是2.2版本中的弹性search。 不要修改内部的elasticsearch.yml; 就这样吧:)

唯一要做的是通过使用-p (小写)选项而不是-P (大写)将映像内部端口映射到主机端口。

像这样使用它:

 docker run -p 9200:9200/tcp -p 9300:9300/tcp elasticsearch:2.2 

这样做可以告诉docker不要使用随机端口,而是使用-p选项将那些映射到内部端口的端口使用。