docker安装elasticSearch以及系列插件

下载ES

推荐设置阿里云docker仓库,满速下载镜像

阿里-镜像加速器

1.使用docker下载es

1
$ docker pull elasticsearch:6.4.0

2.运行es

1
$ docker run -it -p 9200:9200 -p 9300:9300 --name es elasticsearch:6.4.0

建议使用Docker-Compose启动 更方便灵活

报错,jvm内存不够:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate memory’ (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid1.log

使用 docker -e 设置变量

1
2
# ES_JAVA_OPTS=内存大小     NETWORK_HOST=kibana远程访问
$ docker run -it -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e NETWORK_HOST="0.0.0.0" elasticsearch:6.4.0

访问http://127.0.0.1:9200即可

其他错误

1.容器重名

docker: Error response from daemon: Conflict. The container name “/myes” is already in use by container “735173b317004782464d94fb072bf41170ff06dae579a94f35ac782bef3254d3”.
You have to remove (or rename) that container to be able to reuse that name.

删除运行的容器

1
2
$ docker ps -a
$ docker rm es

2.虚拟内存太小

1
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

切换到root用户,执行命令:

1
2
3
4
5
6
$ vim /etc/sysctl.conf

# 添加
vm.max_map_count=262144

$ sysctl -p

3.改小JVM内存;版本问题,更换版本(比如不要用7.0)

更多错误查询官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

下载kibana

1
$ docker pull kibana:6.4.0

运行kibana

1
$ docker run -it -p 5601:5601 -e SERVER_HOST="0.0.0.0" -e ELASTICSEARCH_URL="http://ES的IP:9200" --name kibana kibana:6.4.0

常见错误

1
[error][admin][elasticsearch] Request error, retrying HEAD http://0.0.0.0:9200/ => connect ECONNREFUSED 0.0.0.0:9200

端口是否打开,防火墙是否关闭

老版本的es需要设置
index patter改为*
Time Filter field name选第一个即可


每次都用这次方式启动的话,很麻烦,容易出错
正确的方式应该是配置好,直接运行即可
有2个思路:
1. 使用dockerfile创建自定义镜像
2. 使用Docker-Compose
这里采用第二种方式

Docker-Compose启动

  • Compose可以使用YAML文件来配置应用服务

官方文档:https://docs.docker.com/compose/install/#prerequisites

1.下载

1
2
# 1.22.0即版本号
$ curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

2.修改权限

1
$ chmod +x /usr/local/bin/docker-compose

3.测试

1
$ docker-compose --version

创建yml文件

成功显示版本号之后,开始下一步

1
$ vim docker-compose.yml

输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '2.2'  # Version2支持更多的指令
services: # 包含需要操作的容器
elasticsearch: # 容器的名称
image: elasticsearch:6.4.0 # 指定基于哪个镜像
environment:
- cluster.name=esCluster # 集群名字,没有就不管
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # JVM大小
ports:
- 9200:9200 # 指定映射的端口
kibana:
image: kibana:6.4.0
environment:
SERVER_NAME: kibana
ELASTICSEARCH_URL: http://ES的IP:9200
ports:
- "5601:5601"

启动es和kibana

1
2
# -d 后台启动
$ docker-compose up -d

安装ik分词器

安装方法参考上一篇文章:Linux安装ES以及系列插件

所以只需要把ik放到plugins文件下重启es即可

先进入容器:

1
2
3
4
5
6
7
8
# 查看运行中的容器
$ docker ps

# exec 进入容器
$ docker exec -it elasticsearch /bin/bash # elasticsearch = 容器名字 | CONTAINER ID也可以

# 退出容器
ctrl+p+q

下载ik

在es根目录下,使用elasticsearch-plugin进行下载(supported from version v5.5.1)

1
2
# 连接超时的话多试几次
$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip

ik的版本需要和es的版本一致,不然会报以下错误


由于昨天ES刚更新到v6.4.0版本,ik目前是v6.3.2,还没有资源

所以就不演示了,和上面文章的安装方法一样

参考文档:https://www.elastic.co/guide/index.html

------本文结束感谢阅读------

本文标题:docker安装elasticSearch以及系列插件

文章作者:churuo

原始链接:https://www.xuchuruo.cn/使用docker安装elasticsearch.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%