使用Docker 搭建Es集群
使用docker 搭建Es集群
参考 官方文档
注意点:如果启动集群时候遇到三个节点中某个节点或者某两个节点一直启动失败需要设置docker Engine的启动大小为4G
StackOverflow相同问题链接:链接
docker compose 入门:
Docker compose:compose可以简单理解为一个yaml的配置文件通过这个配置文件可以设置多个服务运行的配置,自己理解是把他看作是一个docker的脚本,将多个docker容器的启动聚集成一个文件。
举两个例子compose例子
服务搭建
version: '3'
services:
# 指定服务名称
db:
# 指定服务使用的镜像
image: mysql:5.7
# 指定容器名称
container_name: mysql
# 指定服务运行的端口
ports:
- 3306:3306
# 指定容器中需要挂载的文件
volumes:
- /mydata/mysql/log:/var/log/mysql
- /mydata/mysql/data:/var/lib/mysql
- /mydata/mysql/conf:/etc/mysql
# 指定容器的环境变量
environment:
- MYSQL_ROOT_PASSWORD=root
# 指定服务名称
mall-tiny-docker-compose:
# 指定服务使用的镜像
image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT
# 指定容器名称
container_name: mall-tiny-docker-compose
# 指定服务运行的端口
ports:
- 8080:8080
# 指定容器中需要挂载的文件
volumes:
- /etc/localtime:/etc/localtime
- /mydata/app/mall-tiny-docker-compose/logs:/var/logs
es集群搭建
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.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=-Xms512m -Xmx512m"
ulimits:
# 使用系统内存 无限制
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.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=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.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=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
接下来,你仅需要在项目目录下运行docker-compose up 即可看到 docker 开始构建镜像并启动服务
如果需要以后台守护进程模式启动 使用docker-compose up -d
用docker-compose down来停止运行中的容器
docker-compose build重新构建容器
docker-compose ps 查看容器状态映射端口
最后使用curl 或者在浏览器 输入url 即查看是否链接成功
Docker容器ik分词插件安装
安装插件需要进入容器内部 有两种方式:第一种使用docker桌面端程序进入容器内部
第二种使用命令行进入容器内部。
1. docker ps 命令查看运行中的容器
2. docker exec -it dockerId /bin/bash 进入容器内部使用bash方式
进入github ik分词官网 可以看到有两种安装方式,分别是使用安装包下载然后进行解压 或者使用如下命令行进行安装。这边推荐第二种,需要注意的ik分词的版本号需要和ES版本号对其,如我使用ik插件版本号为v7.10.0。
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.0/elasticsearch-analysis-ik-7.10.0.zip
参考博客: