本文最后更新于:June 20, 2022 pm
Docker部署ElasticSearch
1.1 拉取镜像
| docker pull elasticsearch:7.12.0
|
1.2 创建容器并启动
ElasticSearch的默认端口是9200,把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时把这个容器明明为elasticsearch
| docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" 镜像id
|
1.3 配置内存
避免elasticsearch占用内存过多设置其初始内存和最大内存,修改容器中的==jvm.options==配置文件
1.4 配置跨域
1.4.1 进入容器
进入容器中修改相应的配置信息
| docker exec -it elasticsearch /bin/bash
|
1.4.2 进行配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ls 结果如下: LICENSE.txt README.textile config lib modules NOTICE.txt bin data logs plugins
cd config
ls 结果如下: elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles elasticsearch.yml jvm.options role_mapping.yml users
vi elasticsearch.yml
http.cors.enabled: true http.cors.allow-origin: "*"
|
1.5 重启容器
由于修改了配置,因此需要重启ElasticSearch容器
| docker restart elasticsearch
|
Docker部署ElasticSearch-head
安装==ElasticSearch-head==的原因是需要又一个管理界面进行查看ElasticSearch的相关信息
2.1 拉取镜像
| docker pull mobz/elasticsearch-head:5
|
2.2 运行容器
| docker run -d --name es_admin -p 9100:9100 镜像id
|
2.3 常见问题
创建索引失败
| docker exec -it es_admin /bin/bash
|
使用此命令进入es_head插件安装目录终端
编辑 /usr/src/app/_site/vendor.js
| 1. 6886行 /contentType: "application/x-www-form-urlencoded 改成 contentType: "application/json;charset=UTF-8" 2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
|