使用docker运行elasticsearch
如果我的问题是愚蠢的,我是新的elasticsearch所以请原谅我。 我试着用docker运行它。 在我从docker中心拉弹性search图像后,我用命令运行它:
docker run -p 9200:9200 -p 9300:9300 --name=ES elasticsearch
但是,当我打开http://192.168.99.100:9200 (我的docker机IP为192.168.99.100
)该页面不可用。
我试图改变我的elasticsearch.yml
如下所示:
network.publish_host: 192.168.99.100
但它不起作用。 任何人帮助我?
谢谢。
更新1
我试着通过--network.publish_host=192.168.99.100
直接在命令行上传递network.publish_host
设置(就像@Val提到的那样),但是它仍然不起作用。 这里的日志:
$ docker run -p 9200:9200 -p 9300:9300 --name=ES elasticsearch --network.publish_host=192.168.99.100 [2015-10-31 05:18:57,305][INFO ][node ] [Slipstream] version[2.0.0], pid[1], build[de54438/2015-10-22T08:09:48Z] [2015-10-31 05:18:57,306][INFO ][node ] [Slipstream] initializing ... [2015-10-31 05:18:57,445][INFO ][plugins ] [Slipstream] loaded [], sites [] [2015-10-31 05:18:57,655][INFO ][env ] [Slipstream] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/sda1)]], net usable_space [11.5gb], net total_space [18.1gb], spins? [possibly], types [ext4] [2015-10-31 05:19:01,778][INFO ][node ] [Slipstream] initialized [2015-10-31 05:19:01,784][INFO ][node ] [Slipstream] starting ... [2015-10-31 05:19:02,072][INFO ][transport ] [Slipstream] publish_address {192.168.99.100:9300}, bound_addresses {127.0.0.1:9300}, {[::1]:9300} [2015-10-31 05:19:02,140][INFO ][discovery ] [Slipstream] elasticsearch/D9frl4aqQlG_ihimJ6eY_w [2015-10-31 05:19:05,309][INFO ][cluster.service ] [Slipstream] new_master {Slipstream}{D9frl4aqQlG_ihimJ6eY_w}{192.168.99.100}{192.168.99.100:9300}, reason: zen-disco-join(elected_as_master, [0] joins received) [2015-10-31 05:19:05,370][INFO ][http ] [Slipstream] publish_address {192.168.99.100:9200}, bound_addresses {127.0.0.1:9200}, {[::1]:9200} [2015-10-31 05:19:05,373][INFO ][node ] [Slipstream] started [2015-10-31 05:19:05,496][INFO ][gateway ] [Slipstream] recovered [0] indices into cluster_state
由于OP使用的是Mac,端口9200需要在VM(VirtualBox)级别进行端口转发(使用boot2docker
或boot2docker
docker machine
) 。
VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port9200 ,tcp,,9200,,9200" VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port9200 ,udp,,9200,,$9200
(如果VM正在运行, modifyvm
controlvm
如果VM已停止, modifyvm
)