docker-compose搭建es集群
1、创建用户
useradd es-clu #新增 es 用户
passwd es-clu #为 es 用户设置密码
userdel -r es-clu #如果错了,可以删除再加
chown -R es-clu:es-clu /es-clu #文件夹所有者
2、编写docker-compose.yml
version: '2.2'
services:
es01:
image: elasticsearch:7.7.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms128m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /volumn/es-cluster/data01:/usr/share/elasticsearch/data
ports:
- 39201:9200
networks:
- elastic
es02:
image: elasticsearch:7.7.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms128m -Xmx256m"
ulimits:
memlock:
# 告诉操作系统每一es进程可以无限制分配内存
soft: -1
hard: -1
volumes:
- /volumn/es-cluster/data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: elasticsearch:7.7.0
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms128m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /volumn/es-cluster/data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
3、更改挂载目录的权限
es不能通过root用户启动,而其他用户没有挂载文件的写入权限,所以要切换到root用户赋予挂载目录权限
chmod 777 data01
chmod 777 data02
chmod 777 data03
4、更改启动参数
# 更改一个进程可以拥有的VMA(虚拟内存区域)的数量。
sudo sysctl -w vm.max_map_count=262144
# 查看修改结果
sysctl -a|grep vm.max_map_count
5、启动
docker-compose docker-compose.yml