elasticsearch 6.2.4和elasticsearch-head测试环境搭建 使用docker-compose方式
一 背景说明
对于新手来说搭建一个elasticsearch的测试环境稍微费力,而且没必须要去下载那么多安装包,比如java node npm等,所以我决定做成docker-compose方式的启动,并且集成ik分词器,方便快捷,一键搞定。
二 环境需求
- 你电脑需要安装docker和docker-compose
三 使用步骤
1 目录结构
2 先编写elasticsearch的配置文件,后续是需要挂载到docker容器中的
- elasticsearch.yml的内容如下:
network.bind_host: 0.0.0.0
cluster.name: elastic-cluster
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
discovery.type: single-node
http.cors.enabled: true
http.cors.allow-origin: "*"
- 主要配置项说明:
- cluster.name 集群的名字,默认是docker-cluster
- discovery.zen.minimum_master_nodes 如果你确定是单机模式,请设置为1,官方文档是这么说
- bootstrap.memory_lock 如果你系统没有关闭交换分区,请把该参数设置为true
- discovery.type 单节点模式
- http.cors.enabled 和 http.cors.allow-origin 主要给elasticsearch-head插件跨域访问使用,否则一直报406的http错误
3 docker-compose-elastic.yml 这里docker-compose需要的配置文件
- docker-compose-elastic.yml内容如下:
version: '2'
services:
elastic:
image: bachue/elasticsearch-ik:6.2.4
container_name: elastic
environment:
- TZ='Asia/Shanghai'
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
volumes:
- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
elasticsearch-head:
image: wallbase/elasticsearch-head:6-alpine
container_name: elasticsearch-head
environment:
TZ: 'Asia/Shanghai'
ports:
- '9100:9100'
- docker-compose配置说明
- bachue/elasticsearch-ik:6.2.4 表示是带有ik分词的,不需要额外自己安装,
- volumes 配置项主要是把本地文件挂载到容器中,包含配置文件和数据目录,data是数据目录,如果你只是测试,也可以不需要,但是你下次启动数据就丢失了。
- wallbase/elasticsearch-head:6-alpine 从5.0之后head插件可以独立启动,我重新打包一个支持6.2.x版本的docker镜像上传的hub.docker.com中的。
四 启动
- 启动elasticsearch和elasticsearch-head,参数-d表示后台启动,当然你需要交互式启动可以把-d去掉,elasticsearch端口是9200,head插件的访问端口是9100
docker-compose -f docker-compose-elastic.yml up -d
elastic | [2018-07-31T08:31:01,281][INFO ][o.e.n.Node ] initialized
elastic | [2018-07-31T08:31:01,282][INFO ][o.e.n.Node ] [bQnFQ8t] starting ...
elastic | [2018-07-31T08:31:01,941][INFO ][o.e.t.TransportService ] [bQnFQ8t] publish_address {172.22.0.2:9300}, bound_addresses {0.0.0.0:9300}
elastic | [2018-07-31T08:31:02,240][INFO ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [bQnFQ8t] publish_address {172.22.0.2:9200}, bound_addresses {0.0.0.0:9200}
elastic | [2018-07-31T08:31:02,242][INFO ][o.e.n.Node ] [bQnFQ8t] started
- 看到started的时候就算启动了。
- 访问浏览器 http://localhost:9100/