配置docker-compose.yml文件如下:
elasticsearch:
image: elasticsearch:6.4.0
environment:
- http.cors.enabled=true
- http.cors.allow-origin=*
- bootstrap.memory_lock=true
- transport.host=0.0.0.0
- transport.tcp.port=9300
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- network.host=0.0.0.0
- node.name=es1
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- ./es:/opt/elasticsearch/data
- ./elasticsearch.yml:/opt/elasticsearch/elasticsearch.yml
ports:
- 9200:9200
- 9300:9300
其中nofile:soft:必须配,否则运行es会报max file is too low。如下图所示:
另外,也会报下面图示错误:vm.max_map_count is too low
https://blog.csdn.net/jiankunking/article/details/65448030
不同Docker机器,不同IP的集群环境设置,至少3台机器如下:
es-master:
image: elasticsearch:6.4.0
environment:
- cluster.name=docker-cluster-dev
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- http.cors.enabled=true
- http.cors.allow-origin=*
- network.host=0.0.0.0
- node.name=es1
- node.master=true
- node.data=true
- node.ingest=true
- network.publish_host=192.168.30.57
- http.port=9200
- transport.tcp.port=9300
- discovery.zen.ping.unicast.hosts=192.168.30.57:9300,192.168.30.45:9300,192.168.30.45:9301
- discovery.zen.minimum_master_nodes=1
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- ./es:/opt/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
restart: always
另外一台机器:
es-node1:
image: elasticsearch:6.4.0
environment:
- cluster.name=docker-cluster-dev
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- http.cors.enabled=true
- http.cors.allow-origin=*
- network.host=0.0.0.0
- node.name=es2
- node.master=true
- node.data=true
- node.ingest=true
- network.publish_host=192.168.30.45
- http.port=9200
- transport.tcp.port=9300
- discovery.zen.ping.unicast.hosts=192.168.30.57:9300,192.168.30.45:9300
- discovery.zen.minimum_master_nodes=1
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- ./es:/opt/elasticsearch/data
ports:
- 9300:9300
- 9200:9200
restart: always
es-node2:
image: elasticsearch:6.4.0
environment:
- cluster.name=docker-cluster-dev
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- http.cors.enabled=true
- http.cors.allow-origin=*
- network.host=0.0.0.0
- node.name=es3
- node.master=false
- node.data=true
- node.ingest=true
- network.publish_host=192.168.30.45
- http.port=9201
- transport.tcp.port=9301
- discovery.zen.ping.unicast.hosts=192.168.30.57:9300,192.168.30.45:9300,192.168.30.45:9301
- discovery.zen.minimum_master_nodes=1
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- ./es:/opt/elasticsearch/data
ports:
- 9301:9301
- 9201:9201
restart: always
最后注意使用linux命令#>lokkit --port=9300:tcp,#>lokkit --port=9200:tcp,开放端口