docker安装elasticsearch及使用
elasticsearch的安装
拉取镜像
第一步要下载elasticsearch的镜像以及可视化工具
# 镜像
docker pull elasticsearch:7.4.2
# 可视化工具
docker pull kibana:7.4.2
创建实例
在外部主机创建文件夹用于es目录挂载
# 配置文件目录
mkdir -p /mydata/elasticsearch/config
# 数据文件目录
mkdir -p /mydata/elasticsearch/data
创建配置文件,表示es允许任何的远程的主机访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
启动es实例
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 --privileged=true \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
参数说明:
–name 为es实例起名字
-p 端口映射 9200:9200 冒号左边的端口号是主机端口,右边的端口号是docker容器端口,切忌千万不要弄反了,9200是向es发送http请求的端口,9300是分布式集群下es节点之间通信的端口
discovery.type=single-node 以单节点模式运行
ES_JAVA_OPTS 指定运行内存,初始64m,最大128m
-v 挂载 : 左边是主机目录 ,右边是docer实例内部目录
-d 后台运行容器
–privileged=true 在文件挂载时出现
nested: AccessDeniedException[/usr/share/elasticsearch/config/elasticsearch.yml];
说明 权限不够,可以加上这个参数
注意: 在测试环境下一定要设置-e ES_JAVA_OPTS="-Xms64m -Xmx128m",设置es的初始的内存和最大内存,否则可能es占用内存过大,造成启动不了es
启动出现
ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
等说明权限不够
查看文件权限
其它用户只有 r可读,x可执行的权限,没有w写的权限
修改权限
将mydata/elasticsearch/目录下所有文件修改为可读可写可执行
chmod -R 777 /mydata/elasticsearch/
再启动es
docker端口映射或启动容器时报错Error response from daemon: driver failed programming external connectivity on endpoint elasticsearch
报错原因:
docker服务启动时定义的自定义链DOCKER由于某种原因被清掉
重启docker服务及可重新生成自定义链DOCKER
解决:
重启docker服务后再启动容器
systemctl restart docker
docker start elasticsearch
稍等片刻后,访问es
安装kibana
docker run --name kibana --privileged=true \
-e ELASTICSEARCH_HOSTS=http://192.168.126.20:9200 -p 5601:5601 \
-d kibana:7.4.2
有需要的话可以加上下面的目录挂载
-v /mydata/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
稍等片刻
出现上图说明kibana已经启动成功
安装IK分词器
ik分词器的版本要和elasticsearch的版本对应
在安装elasticsearch时将plusgin文件夹映射到主机上
cd /mydata/elasticsearch/plugins/
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
解压
unzip elasticsearch-analysis-ik-7.4.2.zip -d ik7.4.2
删除压缩包
rm -rf *.zip
修改权限
chmod -R 777 ik7.4.2/
重启es
docker restart elasticsearch