下载

  1. docker pull elasticsearch:5.2.2

构建

  1. docker run -p 9200:9200 -p 9300:9300 -v /d/docker/es/config:/data -e "discovery.type=single-node" --name es5 -d elasticsearch:5.2.2

碰到的问题

1.只能访问9200端口,在项目中不能使用9300端口操作

期初以为是防火墙给拦截,后台查看防火墙发现并未被拦截,检查docker容器中es的配置文件,容器目录(/usr/share/elasticsearch/config/elasticsearch.yml),使用vim查看文件发现只有一行配置

  1. http.host: 0.0.0.0

这里只是设置了9200端口可以外网访问,但是想要使用elasticsearch-head访问还需要配置

  1. http.cors.enabled: true
  2. http.cors.allow-origin: "*"

然后使用elasticsearch-head就可以监听到了,但是想要使用javaAPI操作,需要如下配置

  1. # 当前机器公网ip
  2. network.publish_host: 172.17.0.3
  3. network.host: 0.0.0.0

OK 到此差不多就可以了,配置文件去查看ES得学习笔记,还有问题就可以参考如下链接:
在docker中安装es:https://blog.csdn.net/qq_33430083/article/details/89031290http://www.360doc.com/content/17/0102/20/35463447_619582430.shtml