Docker下载elasticsearch

1  https://hub.docker.com/ 搜索elasticsearch

 选择对应的版本下载

2.docker images查看下载的镜像

3.启动容器

es比较占用内存,为了防止服务器卡死,在启动时设置内存范围  -e "ES_JAVA_OPTS=-Xms512m -Xmx1024m"

 docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
> -e "discovery.type=single-node" \
> -e "cluster.name=elasticsearch" \
> -e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
> -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
> -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
> -d elasticsearch:7.17.3
4.通过docker ps -a 查看启动的容器

5.查看防火墙是否关闭或者开启且放开9200端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent

firewall-cmd --reload

6.查看服务器是否放开端口

7.浏览器访问服务ip:9200

 几个问题:

1.如果重启失败可能是虚拟内存太小: 

sysctl -w vm.max_map_count=262144

2.如果容器启动后但状态是exited,可能是/mydata/elasticsearch/data/文件权限问题

chmod 777 /mydata/elasticsearch/data/后重启服务

docker restart 容器id

3.如果启动有其他问题,可以通过查看日志找问题

docker logs 容器名/容器id

下载分词器IKAnalyzer

下载安装中文分词器IKAnalyzer,注意下载与Elasticsearch对应的版本,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

下载压缩包到解压到Elasticsearch的/mydata/elasticsearch/plugins目录下

unzip elasticsearch-analysis-ik-7.17.3.zip -d ik

更改文件夹权限 chmod -R 777 ik/

然后删除压缩包 rm -r elasticsearch-analysis-ik-7.17.3.zip

重启容器

下载elasticsearch-head

1.下载镜像

docker pull mobz/elasticsearch-head

 2.docker run -d --name=elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

启动容器

3.docker ps -a查看容器是否启动

4.外部访问 ip:9100

5.连接es

常见问题:

连接es报错

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

因为elasticsearch 6 增加了请求头严格校验,返回报错

首先 进入容器内部

docker exec -it elasticsearch-head /bin/sh vi _site/vendor.js

修改vendor.js

1.找到6886行
contentType: "application/x-www-form-urlencoded

修改 

contentType: "application/json;charset=UTF-8"

2.找到7573行

var inspectData = s.contentType === "application/x-www-form-urlencoded" 

修改

var inspectData = s.contentType === "application/json;charset=UTF-8" 

3.退出容器,重启es-head容器

### 如何在 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` 即可一键完成所有相关组件的一次性构建与激活。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值