- 一、安装环境
- 二、下载镜像文件
- 三、启动elasticsearch
- 查看是否启动
- 设置数据卷
- 将docker文件拷贝出来
- 停止并删除elasticsearch容器
- 启动并挂在外部文件夹
- 测试
- 四、启动elasticsearch-head插件
- 测试
- 五、外部访问测试
- 访问elasticsearch
- 访问elasticsearch-head
- 六、遇到问题
- 解决办法
- 修改完之后退出容器并重启
操作系统:CentOS Linux release 7.9.2009 (Core)
docker版本: 20.10.11
上docker hub查看elasticsearch和head版本号,选择下载
docker pull elasticsearch:7.14.2 docker pull mobz/elasticsearch-head:5-alpine
执行命令查看刚刚拉去的文件
docker images三、启动elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:7.14.2
-d 后台启动
–name 起别名即:NAMES
-p 9200:9200 将端口映射出来
elasticsearch的9200端口是供外部访问使用;9200端口是供内部访问使用集群间通讯
–net somenetwork暂不使用
-e启动时替换elasticsearch的配置文件
-e “discovery.type=single-node"单节点启动
-e ES_JAVA_OPTS=”-Xms256m -Xmx256m" 限制内存大小
docker ps设置数据卷
将docker的文件映射在docker外部
配置文件、创建存放日志和数据的文件夹
mkdir -p /data/elasticsearch/{config,data,logs}
vi /data/elasticsearch/config/elasticsearch.yml
elasticsearch.yml内容
cluster.name: "docker-cluster" network.hosts:0.0.0.0 # 跨域 http.cors.allow-origin: "*" http.cors.enabled: true将docker文件拷贝出来
docker cp elasticsearch:/usr/share/elasticsearch/logs /data/elasticsearch/logs docker cp elasticsearch:/usr/share/elasticsearch/data /data/elasticsearch/data
执行之后查看本机/data/elasticsearch/logs中有刚才启动后生成的日志文件
停止并删除elasticsearch容器docker rm elasticsearchID启动并挂在外部文件夹
docker run -d elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs -v /data/elasticsearch/data:/usr/share/elasticsearch/logs elasticsearch:7.14.2测试
curl localhost:9200四、启动elasticsearch-head插件
docker images
docker run -d --name=elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5-alpine
mobz/elasticsearch-head:5-alpine 为REPOSITORY和TAG
测试curl localhost:9100
这是使用的腾讯云服务器,登录控制台,将9200和9100端口放开
使用elasticsearch-head创建index的时候没有反应,查看控制台报错406
解决办法进入elasticsearch-head容器内
docker exec -it elasticsearch-head /bin/sh vi _site/vendor.js
修改vendor.js
将第6886行 contentType: "application/x-www-form-urlencoded", 改为 contentType: "application/json;charset=UTF-8", 将第7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 改为 var inspectData = s.contentType === "application/json;charset-UTF-8" &&修改完之后退出容器并重启
exit docker restart elasticsearch-head
再次创建index就成功了!
新手最近开始写文章,手敲不易,请多多支持!在此感谢每位读者0.0



