docker compose ES
version: '3'
services:
es01:
image: elasticsearch:6.5.4
container_name: es01
restart: always
volumes:
- ./es/es01/data:/usr/share/elasticsearch/data:rw
- ./es/es01/logs:/user/share/elasticsearch/logs:rw
environment:
- node.name=es01
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
#- http.cors.enabled=true 这两个不要设置 因为使用PostMan和es-head时发出的请求有不符合要求
#- http.cors.allow-origin= "*" 同时我们实在docker的内网中,不存在跨域问题
- node.master=true
- node.data=true
- discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
# - discovery.zen.minimum_master_nodes=2 我们固定的把es01设置为主节点
- network.bind_host=0.0.0.0
#- network.publish_host=192.168.216.129
ulimits:
memlock:
soft: -1
hard: -1
ports:
- "9200:9200"
networks:
- esnet
es02:
image: elasticsearch:6.5.4
container_name: es02
restart: always
volumes:
- ./es/es02/data:/usr/share/elasticsearch/data
- ./es/es02/logs:/user/share/elasticsearch/logs
environment:
- node.name=es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
#- http.cors.enabled=true
#- http.cors.allow-origin= "*"
- node.master=false
- node.data=true
- discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
#- discovery.zen.minimum_master_nodes=2
- network.bind_host=0.0.0.0
#- network.publish_host=192.168.216.129
ports:
- "9201:9200"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- esnet
es03:
image: elasticsearch:6.5.4
container_name: es03
restart: always
volumes:
- ./es/es03/data:/usr/share/elasticsearch/data
- ./es/es03/logs:/user/share/elasticsearch/logs
environment:
- node.name=es03
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
# - http.cors.enabled=true
#- http.cors.allow-origin= "*"
- node.master=false
- node.data=true
- discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
#- discovery.zen.minimum_master_nodes=2
- network.bind_host=0.0.0.0
#- network.publish_host=192.168.216.129
ports:
- "9202:9200"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- esnet
networks:
esnet:
version: '3'
services:
es01:
image: elasticsearch:6.5.4
container_name: es01
restart: always
volumes:
- ./es/es01/data:/usr/share/elasticsearch/data:rw
- ./es/es01/logs:/user/share/elasticsearch/logs:rw
environment:
- node.name=es01
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
#- http.cors.enabled=true 这两个不要设置 因为使用PostMan和es-head时发出的请求有不符合要求
#- http.cors.allow-origin= "*" 同时我们实在docker的内网中,不存在跨域问题
- node.master=true
- node.data=true
- discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
# - discovery.zen.minimum_master_nodes=2 我们固定的把es01设置为主节点
- network.bind_host=0.0.0.0
#- network.publish_host=192.168.216.129
ulimits:
memlock:
soft: -1
hard: -1
ports:
- "9200:9200"
networks:
- esnet
es02:
image: elasticsearch:6.5.4
container_name: es02
restart: always
volumes:
- ./es/es02/data:/usr/share/elasticsearch/data
- ./es/es02/logs:/user/share/elasticsearch/logs
environment:
- node.name=es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
#- http.cors.enabled=true
#- http.cors.allow-origin= "*"
- node.master=false
- node.data=true
- discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
#- discovery.zen.minimum_master_nodes=2
- network.bind_host=0.0.0.0
#- network.publish_host=192.168.216.129
ports:
- "9201:9200"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- esnet
es03:
image: elasticsearch:6.5.4
container_name: es03
restart: always
volumes:
- ./es/es03/data:/usr/share/elasticsearch/data
- ./es/es03/logs:/user/share/elasticsearch/logs
environment:
- node.name=es03
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
# - http.cors.enabled=true
#- http.cors.allow-origin= "*"
- node.master=false
- node.data=true
- discovery.zen.ping.unicast.hosts=es01:9300,es02:9300,es03:9300
#- discovery.zen.minimum_master_nodes=2
- network.bind_host=0.0.0.0
#- network.publish_host=192.168.216.129
ports:
- "9202:9200"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- esnet
networks:
esnet:
注:使用命令docker logs es01
查看容器日志,若看到 java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes问题,是宿主机host挂载的data目录权限不够
chmod 777 data
即可解决
docker compose kibana
后续更新。。。。