1、准备好相关docker镜像
docker pull elasticsearch:7.17.6
docker pull kibana:7.17.6
2、下载ik分词器
下载地址:github.com/medcl/elast…
ik分词器最好与es版本一致,所以找到es对应的版本,我这里下载的是7.17.6版本
3、编写docker-compose.yml
version: '3.8'
services:
es01:
image: elasticsearch:7.17.6
container_name: es01
restart: always
privileged: true
ports:
- "9200:9200"
environment:
# 节点名称
- node.name=es01
# 集群名称
- cluster.name=es-docker-cluster
# 其它节点
- discovery.seed_hosts=es02,es03
# 配置一个或多个节点, 用于在es集群初始化时选举主节点master
- cluster.initial_master_nodes=es01,es02,es03
# 锁定内存地址
- bootstrap.memory_lock=true
# 设置java堆内存大小
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
# es data路径
- "~/docker_data/es01/data:/usr/share/elasticsearch/data"
# es log路径
- "~/docker_data/es01/logs:/usr/share/elasticsearch/logs"
# 集成分词插件
- "~/docker_data/es01/plugins/elasticsearch-analysis-ik-7.17.6:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.6"
networks:
testNet:
es02:
image: elasticsearch:7.17.6
container_name: es02
restart: always
privileged: true
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:
- "~/docker_data/es02/data:/usr/share/elasticsearch/data"
- "~/docker_data/es02/logs:/usr/share/elasticsearch/logs"
# 分词插件直接共享同一个
- "~/docker_data/es01/plugins/elasticsearch-analysis-ik-7.17.6:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.6"
networks:
testNet:
es03:
image: elasticsearch:7.17.6
container_name: es03
restart: always
privileged: true
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:
- "~/docker_data/es03/data:/usr/share/elasticsearch/data"
- "~/docker_data/es03/logs:/usr/share/elasticsearch/logs"
- "~/docker_data/es01/plugins/elasticsearch-analysis-ik-7.17.6:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.6"
networks:
testNet:
kibana:
image: kibana:7.17.6
container_name: kibana
restart: always
ports:
- "5601:5601"
environment:
# es访问地址
ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'
# kibana语言配置:en、zh-CN、ja-JP
I18N_LOCALE: "zh-CN"
networks:
testNet:
depends_on:
- es01
- es02
- es03
networks:
testNet:
创建目录~/docker_data/es01/plugins解压刚才下载的ik分词器到此目录下, 作为插件映射目录。
4、启动
前台启动: docker-compose up
或者在后台启动: docker-compose up -d
5、效果展示
查看es是否启动:http://localhost:9200
查看集群选举情况:http://localhost:9200/_cat/nodes?v&pretty
访问kibana:http://localhost:5601/app/dev_tools#/console
验证分词:
POST /_analyze
{
"text":"中华民族共和国国歌",
"analyzer":"ik_smart"
}
6、参考文献
docker安装elasticsearch配置文档
docker安装kibana配置文档
elasticsearch安装ik分词器