2、docker安装elasticSearch和head插件

本文详细介绍了如何在CentOS 7.9上使用Docker部署Elasticsearch 7.14.2,并配置数据卷、启动Head插件进行测试。通过设置端口映射、环境变量以及修改配置文件,实现了对外部访问的配置。在运行过程中遇到了406错误,通过修改Head插件的源代码解决了问题。最后,文章提供了访问Elasticsearch和Head的外部URL。

一、安装环境

操作系统: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 hub

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,plugins}
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/config /data/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/logs /data/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/data /data/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/plugins /data/elasticsearch

执行之后查看本机/data/elasticsearch/logs中有刚才启动后生成的日志文件

停止并删除elasticsearch容器

docker rm elasticsearchID

启动并挂在外部文件夹

docker run -d --name elasticsearch.7.14.2 \
-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/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.14.2

测试

curl localhost:9200

结果

四、启动elasticsearch-head插件

docker images

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

在这里插入图片描述

访问elasticsearch-head

在这里插入图片描述

六、遇到问题

使用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就成功了!

elasticsearch设置用户名和密码
请查阅 该贴https://blog.youkuaiyun.com/IT_road_qxc/article/details/121858843

新手最近开始写文章,手敲不易,请多多支持!在此感谢每位读者0.0

### 如何在 Docker安装配置 Elasticsearch Head 插件 #### 获取镜像并启动容器 为了使 Elasticsearch Head 正常工作,需先拉取对应的 Docker 镜像。命令如下: ```bash docker pull mobz/elasticsearch-head:5 ``` 随后通过 `docker run` 命令来创建并启动容器,指定端口映射其他必要参数[^2]。 ```bash docker run -d \ --name es-head \ --restart=always \ --network=host \ docker.io/mobz/elasticsearch-head:5-alpine ``` 此操作会以后台模式运行名为 `es-head` 的新容器,并将其绑定到主机网络上以便于访问[^4]。 #### 修改文件挂载路径 (可选) 如果希望自定义某些配置文件或脚本,则可以考虑将本地目录中的特定文件挂载至容器内部相应位置。例如修改 JavaScript 文件时可用下面的方式启动容器[^3]: ```bash docker run -d \ --name es-head \ -p 9100:9100 \ -v /usr/local/docker/elasticsearch-head/app.js:/usr/src/app/_site/app.js \ -v /usr/local/docker/elasticsearch-head/vendor.js:/usr/src/app/_site/vendor.js \ mobz/elasticsearch-head:5 ``` 这允许外部编辑 `_site/vendor.js` 其他资源而不必每次都重建整个容器实例[^1]。 #### 使用 Docker Compose 方便管理服务组合 对于更复杂的部署场景,推荐采用 `docker-compose.yml` 来简化多服务环境下的设置过程。一个简单的例子可能看起来像是这样[^5]: ```yaml version: '3' services: es-head: restart: always image: elasticsearch-head:5 container_name: es-head ports: - "9100:9100" volumes: - ./config/vendor.js:/usr/src/app/_site/vendor.js ``` 保存上述 YAML 文档后,在同一目录下执行 `docker-compose up -d` 即可一键完成所有相关组件的一次性构建与激活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值