使用Docker-Compose建立ElasticSearch 6.4版本單機環境(含叢集版)
配置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,開放埠