Docker-使用docker-compose安装Elasticsearch和Kibana
背景:要学习Elasticsearch,所以首先要安装一下。
环境准备: Centos7、Elasticsearch6.5.4、Kibana6.5.4、docker-compose(默认你的环境已经安装好了docker和docker-compose)
1、新建一个目录 mkdir /opt/docker-es,然后创建一个文件 vim docker-compose.yml,编辑完内容之后一定记得要赋执行权限 chmod u+x docker-compose.yml
文件内容中的 image 的地址值是哪里来的呢?访问 https://hub.daocloud.io/ ,首页搜索 elasticsearch ,选择 "社区镜像", 找到 "library/elasticsearch" ,选择对应的版本拉取,就能拿到地址,kibana也是同样的方式。
version: "3.1" services: elasticsearch: image: daocloud.io/library/elasticsearch:6.5.4 restart: always container_name: elasticsearch ports: - 9200:9200 # 端口映射 kibana: image: daocloud.io/library/kibana:6.5.4 restart: always container_name: kibana ports: - 5601:5601 environment: - elasticsearch_url=http://192.168.x.x:9200 #配置你的ip地址 depends_on: - elasticsearch
2、在 /opt/docker-es 目录下,运行命令 docker-compose up -d 然后就开始拉取镜像并启动对应的容器了。
我遇到了问题,使用 docker-compose logs -f 看日志,发现elasticsearch启动报错: ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
查了一下参考的博客,说是要修改一个操作系统的文件 vim /etc/sysctl.conf。添加一行 vm.max_map_count=655360,然后重启容器 docker restart 容器id。然后浏览器访问:
http://192.168.x.x:9200 ,出现一段json就证明es启动成功了。
3、安装ik分词器。因为es自带的分词器对中文分词不友好,所以我们安装一个ik分词器。首先找到ik分词器。版本必须和安装的elasticsearch一致6.5.4。到github中输入ik
第一个medcl/elasticsearch-analysis-ik 就是
选择Releases
选择Tags标签
找到6.5.4版本,然后复制连接
4、上一步找到ik分词器的下载地址后,开始安装。
4.1 docker exec -it 容器id /bin/bash 进入到elasticsearch容器
4.2 进入到bin目录 cd bin/
4.3 运行命令 ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
4.4 安装结束后重启es的docker容器,docker restart 容器id
4.5到kibana界面测试一下
参考:
https://cloud.tencent.com/developer/article/1549867