环境准备
- VmWare WorkStation 16.2.3
- Ubuntu 22.04
- Docker
- docker-compose工具
配置文件
docker-compose.yml
version: '3'
services:
es01:
image: elasticsearch:7.11.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ${HOME}/docker/es01_data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- elastic
es02:
image: elasticsearch:7.11.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ${HOME}/docker/es02_data:/usr/share/elasticsearch/data
ports:
- 9201:9200
- 9301:9300
networks:
- elastic
es03:
image: elasticsearch:7.11.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ${HOME}/docker/es03_data:/usr/share/elasticsearch/data
ports:
- 9202:9200
- 9302:9300
networks:
- elastic
networks:
elastic:
driver: bridge
启动命令
docker-compose up -d es01
docker-compose up -d es02
docker-compose up -d es03
验证是否搭建成功
命令行输入以下命令
curl -X GET http://127.0.0.1:9200/_cat/nodes?v
当出现以下结果,说明搭建成功
说明
- 该文本在同一台机器上配置了3个实例的ES集群:es01,es02,es03
- 每个实例的cluster的cluster.name需要一致
- cluster.initial_master_nodes设置当前集群的所有节点
- 由于在同一台机器上配置,映射到主机节点不同
- 启动时,如果几乎同时启动,即使用以下命令启动
docker-compose up -d es01 es02 es03
会报如下异常
具体原因待后续学习后再补充