锁定进程的物理内存地址避免交换(swapped)来提高性能
- http.cors.enabled=true
- http.cors.allow-origin=*开启cors以便使用Head插件
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"JVM内存大小配置
- "discovery.zen.ping.unicast.hosts=elasticsearch_n0,elasticsearch_n1,elasticsearch_n2"
- "discovery.zen.minimum_master_nodes=2"由于
5.2.1后的版本是不支持多播的,所以需要手动指定集群各节点的
tcp数据交互地址,用于集群的
节点发现和
failover,默认缺省
9300端口,如设定了其它端口需另行指定,这里我们直接借助容器通信,也可以将各节点的
9300映射至宿主机,通过网络端口通信。设定
failover选取的
quorum = nodes/2 + 1当然,也可以挂载自己的配置文件,
ES镜像的配置文件是
/usr/share/elasticsearch/config/elasticsearch.yml,挂载如下:
volumes:
- path/to/local/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:rodocker-compose.yml
version: '3'
services:
elasticsearch_n0:
image: elasticsearch:6.6.2
container_name: elasticsearch_n0
privileged: true
environment:
- cluster.name=elasticsearch-cluster
- node.name=node0
- node.master=true
- node.data=true
- bootstrap.memory_lock=true
- http.cors.enabled=true
- http.cors.allow-origin=*
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch_n0,elasticsearch_n1,elasticsearch_n2"
- "discovery.zen.minimum_master_nodes=2"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/node0:/usr/share/elasticsearch/data
- ./logs/node0:/usr/share/elasticsearch/logs
ports:
- 9200:9200
elasticsearch_n1:
image: elasticsearch:6.6.2
container_name: elasticsearch_n1
privileged: true
environment:
- cluster.name=elasticsearch-cluster
- node.name=node1
- node.master=true
- node.data=true
- bootstrap.memory_lock=true
- http.cors.enabled=true
- http.cors.allow-origin=*
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"










