elasticsearch docker 部署

elasticsearch docker 部署

elasticsearch 和ik分词器的版本不兼容,提前看好ik分词器的版本,然后再找es版本

elasticsearch官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html
dockerHub中elasticsearch地址:https://hub.docker.com/_/elasticsearch
ik分词器地址:https://github.com/infinilabs/analysis-ik

  • 拉镜像和启动容器,默认开启ssl (Elasticsearch服务端版本号是 8.10.2 ,默认是自动启用https的)
  1. docker 创建容器

单机简单版本,没有证书和密码

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch -e "node.name=es01" -e "cluster.initial_master_nodes=es01" -e "xpack.security.enabled=false" -v /data/es/data:/usr/share/elasticsearch/data   docker.elastic.co/elasticsearch/elasticsearch:8.12.2

单机证书简单版本,包含证书和密码
需要修改的属性:
node.name
ELASTIC_PASSWORD
xpack.security.http.ssl.key
xpack.security.http.ssl.certificate_authorities
xpack.security.http.ssl.certificate
xpack.security.transport.ssl.certificate_authorities
xpack.security.transport.ssl.certificate
xpack.security.transport.ssl.key

证书文件放到**/data/es/certs**目录下

docker run --name=elasticsearch -d \
  -e "node.name=es01" \
  -e "ELASTIC_PASSWORD=es123456" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "xpack.license.self_generated.type=trial" \
  -e "discovery.type=single-node" \
  -e "xpack.security.enabled=true" \
  -e "xpack.security.http.ssl.enabled=true" \
  -e "xpack.security.http.ssl.key=/usr/share/elasticsearch/config/certs/test.key" \
  -e "xpack.security.http.ssl.certificate_authorities=/usr/share/elasticsearch/config/certs/test.net.crt" \
  -e "xpack.security.http.ssl.certificate=/usr/share/elasticsearch/config/certs/test.crt" \
  -e "xpack.security.transport.ssl.enabled=true" \
  -e "xpack.security.transport.ssl.verification_mode=certificate" \
  -e "xpack.security.transport.ssl.certificate_authorities=/usr/share/elasticsearch/config/certs/test.crt" \
  -e "xpack.security.transport.ssl.certificate=/usr/share/elasticsearch/config/certs/test.crt" \
  -e "xpack.security.transport.ssl.key=/usr/share/elasticsearch/config/certs/test.key" \
  -v /data/es/data:/usr/share/elasticsearch/data \
  -v /data/es/certs:/usr/share/elasticsearch/config/certs \
  -p 9200:9200 \
  -p 9300:9300 \
  docker.elastic.co/elasticsearch/elasticsearch:8.12.2
  1. 修改 挂载data路径权限
chmod  -R 777 data/
  1. 修改内存
vi /etc/sysctl.conf
  • 在sysctl.conf 中添加配置
vm.max_map_count=262144
  • 使命令生效
sysctl -p
  1. 获取密码(如果run的时候没有设置密码使用这个):
  • 进入到docker 容器中
docker exec -it 容器id /bin/bash
cd /bin
elasticsearch-reset-password -u elastic
  • 用户名:elastic
  • 密码:
  1. 安装ik分词器(可能网络问题下载慢)
bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.12.2/elasticsearch-analysis-ik-8.12.2.zip
  1. 重启容器就能生效了

访问路径 https://ip:9200

可能出现的问题:
1.如果:
failed to obtain node locks, tried [/usr/share/elasticsearch/data]; maybe these locations are not writable or multiple nodes were started on the same data path?
在这里插入图片描述

解决:
是因为data权限不够

chmod  -R 777 data/

2.如果:
node validation exception\n[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. For more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.12/bootstrap-checks.html]\nbootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]; for more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.12/_maximum_map_count_check.html]
在这里插入图片描述

解决:
是因为内存不够

  • 在sysctl.conf 中添加配置
vm.max_map_count=262144
  • 使命令生效
sysctl -p
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Elasticsearch是一个开源的分布式搜索引擎,可以帮助用户快速地存储、搜索和分析海量数据。Docker是一个开源的容器化平台,可以帮助用户方便地创建、部署和运行应用程序。 在国内,由于网络环境的限制,从Docker Hub下载Elasticsearch镜像可能会比较慢或者不稳定。因此,用户可以使用国内的Docker镜像源来加速下载Elasticsearch镜像。 以下是在国内使用Docker镜像源部署Elasticsearch的步骤: 1. 首先,在本地安装Docker,并启动Docker服务。 2. 然后,在终端中执行以下命令来拉取ElasticsearchDocker镜像: ``` docker pull elasticsearch:7.9.3 ``` 这里以Elasticsearch 7.9.3版本为例,你也可以根据需要选择其他版本。 3. 接着,使用以下命令来创建并运行一个Elasticsearch容器: ``` docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.3 ``` 这里使用了-p参数来指定容器端口和主机端口的映射关系,-e参数来设置Elasticsearch的配置项。其中,discovery.type=single-node表示该节点为单节点部署。 4. 最后,使用以下命令来检查Elasticsearch容器是否正常运行: ``` curl http://localhost:9200 ``` 如果能够正确返回Elasticsearch的版本信息,则说明容器已经成功启动。 相关问题: 1. 如何在Docker中安装Elasticsearch? 2. ElasticsearchDocker中的常见问题有哪些? 3. 如何在Docker部署多节点Elasticsearch集群?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值