docker安装elasticsearch,head插件

docker安装elasticsearch

1、搜索,拉取镜像
docker search elasticsearch:7.8.0
docker pull elasticsearch:7.8.0
2、创建网络

如果需要安装kibana、logstash等其他,需要创建一个网络,名字任意取,让他们在同一个网络,使得es和kibana、logstash通信

docker network create esnet
3、创建容器
docker run -di --restart=always --name elasticsearch --net esnet -p 9200:9200 -p 9300:9300 elasticsearch:7.8.0 /bin/bash
4、进入容器
docker exec -it elasticsearch bash
5、cd进入config/elasticsearch.yml,配置:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.name: node-1
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300"]
discovery.zen.minimum_master_nodes: 1
node.ingest: true
bootstrap.memory_lock: false
node.max_local_storage_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
cluster.initial_master_nodes: node-1
  • 退出容器 exit
6、安装ik分词器
  • 上传elasticsearch-analysis-ik-7.8.0.zip到服务器,比如/home/admin/tmp,(目录自选)
  • 将压缩包cp进docker容器
docker cp /home/admin/tmp/elasticsearch-analysis-ik-7.8.0.zip elasticsearch:/usr/share/elasticsearch/plugins
  • 进入容器
docker exec -it elasticsearch bash
  • 进入/usr/share/elasticsearch/plugins目录,我们发现ik分词器已经拷贝到此目录,解压:
unzip elasticsearch-analysis-ik-7.8.0.zip -d elasticsearch-analysis-ik-7.8.0
  • 删除 elasticsearch-analysis-ik-7.8.0.zip
rm -rf elasticsearch-analysis-ik-7.8.0.zip
  • 退出容器,重启容器
exit
docker restart elasticsearch
  • 创建索引,创建映射,添加文档,测试分词

docker安装head插件

1、拉取镜像
docker pull mobz/elasticsearch-head:5
2、创建,启动镜像
docker run --restart=always --name elasticsearch-head -di -p 9100:9100 docker.io/mobz/elasticsearch-head:5
3、连接elasticsearch
  • 网页打开elasticsearch-head页面:宿主机ip:9100
  • 连接es,宿主机ip:9200

遇到的问题及解决方法:

1、连接不上ES,跨域问题:

修改ES根目录下配置文件vi config/elasticsearch.yml加入2个参数,并重启
http.cors.enabled: true
http.cors.allow-origin: “*”
参数说明:
参数 缺省值 说明
http.cors.enabled true 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.allowed.origin localhost 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。


2、用head插件查询时报错

{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}

解决办法:

进入容器 (默认进入时路径: /usr/src/app)
sudo docker exec -it -u root elasticsearch-head /bin/bash
修改 vendor.js 共有两处,重启head插件

vi _site/vendor.js

    1. 6886行
      contentType: "application/x-www-form-urlencoded
      改成
      contentType: “application/json;charset=UTF-8”
    1. 7573行
      var inspectData = s.contentType === “application/x-www-form-urlencoded” &&
      改成
      var inspectData = s.contentType === “application/json;charset=UTF-8” &&

3、docker基础容器中 bash: vim: command not found 问题解决

这是因为vim没有安装, 安装即可
先更新,防止提示:Unable to locate package vim
apt-get update
apt-get install vim

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值