1. 编写 docker-compose.yml
注意 docker-compose 文件中 写入了 Kibana 密码是 demo_password
以下启动三个容器
es
kibana
cerebro(es监控工具)
version: '2.2'
services:
cerebro:
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://elasticsearch:9200
networks:
- es7net
kibana:
image: docker.elastic.co/kibana/kibana:7.1.0
container_name: kibana7
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
- ELASTICSEARCH_USERNAME=kibana
- ELASTICSEARCH_PASSWORD=demo_password
ports:
- "5601:5601"
networks:
- es7net
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
container_name: es7_01
environment:
- cluster.name=test-es
- node.name=es7_01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "TZ=Asia/Shanghai"
- discovery.type=single-node
- path.data=node0_data
- xpack.security.enabled=true
- xpack.security.transport.ssl.enabled=false
ulimits:
memlock:
soft: -1
hard: -1
privileged: true
volumes:
- /data/es7data1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- es7net
networks:
es7net:
driver: bridge
2. 执行命令启动 docker-compose
# 在docker-compose.yml 文件所在的目录执行下面命令、后台启动容器
docker-compose up --build -d
3. 进入 es容器 初始化默认账号密码
注意设置默认密码时、和上面保持统一、全部都设置为 demo_password
# 进入容器
docker exec -it es7_01 bash
# 执行命令 初始化账号密码
bin/elasticsearch-setup-passwords interactive
# 进入浏览器查看 状态
localhost:9200/_cat/nodes?pretty
4. 安装IK 中文分词插件
- 下载 es版本对应的 IK 版本
# 进入容器
docker exec -it es7_01 bash
# 安装 ik (因为es是 7.1.0 所以ik也需要是相同的版本)
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip
# 退出容器
exit
# 重启 es 容器
docker restart es7_01
# 重启后就可以看到 插件生效了
# 注意、通常在linux系统上、带宽不高的话、下载比较慢、
# 这时候推荐把 zip包下载下来,解压后、
# 使用docker cp命令 拷贝到 es容器中的plugin目录下、然后重启 es容器
# 具体操作参考 FAQ 2
- IK 中文分词插件 GitHub使用示例及相关文档
FAQ
- Linux系统 最大虚拟内存区域太低.
ERROR: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
# 在linux 系统中、打开 sysctl配置文件
vi /etc/sysctl.conf
# 添加配置
vm.max_map_count=655360
# 执行命令 让系统载入配置文件
sysctl -p
- 在 服务器上、通常下载es官方镜像都比较慢、推荐在本地下载、然后在推送到自己的 harbor上面、然后在服务器上进行 pull.