docker安装elasticsearch(es)最新版本

docker安装elasticsearch(es)

docker官网

https://hub.docker.com/

https://www.cnblogs.com/balloon72/p/13177872.html

1、拉取最新项目elasticsearch

docker pull elasticsearch:8.14.3

lscpu 查看架构

2、构建环境

mkdir -p /data/elasticsearch/config
mkdir -p /data/elasticsearch/data
mkdir -p /data/elasticsearch/plugins

sudo chmod -R 777 /data/elasticsearch/
echo "network.host: 0.0.0.0" >> /data/elasticsearch/config/elasticsearch.yml

错了不指定把

3、运行

废弃 指定了yml配置

docker run --name elasticsearch -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elasticsearch/data:/usr/share/elasticsearch/data -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.14.3

端口9200和9300

Elasticsearch 使用不同的端口来处理不同类型的通信。以下是端口9200和9300的主要用途:

端口9200:

这是Elasticsearch的HTTP REST API端口,用于客户端与Elasticsearch集群之间的通信。
客户端通过这个端口发送HTTP请求,执行各种操作,如索引数据、搜索、更新映射、管理索引等。
默认情况下,Elasticsearch监听这个端口上的TCP/IP协议。
端口9300:

这是Elasticsearch的节点间通信(Node-to-Node)端口,用于集群内部节点之间的通信。
节点通过这个端口进行集群状态同步、分片分配、数据恢复等操作。
这个端口通常不对外开放,只限于集群内的节点之间使用。
请注意,端口号是可以配置的,所以9200和9300是Elasticsearch的默认端口,但在实际部署中可能会根据需要进行更改。

安全提示:

端口9200对外开放时,应确保使用HTTPS来加密通信,并限制访问到可信的IP地址。
端口9300不应该对外开放,只限于集群内部使用,以防止未授权的节点加入集群。
如果你需要进一步的帮助或有关于Elasticsearch端口配置的具体问题,请随时提问。

配置密码

方法一、配置内置密码

docker run --name elasticsearch -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /data/elasticsearch/data:/usr/share/elasticsearch/data -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.14.3

设置内置用户的密码
等待几秒钟,直到 Elasticsearch 容器启动并准备好。然后,运行以下命令进入容器并设置密码:

docker exec -it elasticsearch /bin/bash

在容器内,运行以下命令:

elasticsearch-setup-passwords interactive

Note: The 'elasticsearch-setup-passwords' tool has been deprecated. This       command will be removed in a future release.

算了不用了

只允许可信的IP地址访问Elasticsearch的API。你可以在Elasticsearch的配置文件中设置http.hosts来限制允许的主机。

配置下可信ip

https://www.ip.cn/
59.52.8.163

使用google插件 Elasticvue

连接成功!

方法二:docker运行增加密码配置 推荐

docker run --name elasticsearch -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -e "ELASTIC_PASSWORD=3301359!" -v /data/elasticsearch/data:/usr/share/elasticsearch/data -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.14.3

默认用户 elastic

其中elasticsearch.yml是挂载的配置文件,data是挂载的数据,plugins是es的插件,如ik,而数据挂载需要权限,需要设置data文件的权限为可读可写,需要下边的指令。
chmod -R 777 要修改的路径

-e "discovery.type=single-node" 设置为单节点
特别注意:
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ 测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了ES

4、其他 自己选择: kibana

docker pull kibana:7.6.2

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://自己的IP地址:9200 -p 5601:5601 -d kibana:7.6.2
//docker run --name kibana -e ELASTICSEARCH_URL=http://自己的IP地址:9200 -p 5601:5601 -d kibana:7.6.2

进入容器修改相应内容
server.port: 5601
server.host: 0.0.0.0
elasticsearch.hosts: [ "http://自己的IP地址:9200" ]
i18n.locale: "Zh-CN"

然后访问页面
http://自己的IP地址:5601/app/kibana

其他问题

Exception in thread "main" java.nio.file.FileSystemException: /usr/share/elasticsearch/config/elasticsearch.yml.ZUUXZ_u-QKGpIxzy8dQMrg.tmp -> /usr/share/elasticsearch/config/elasticsearch.yml: Device or resource busy

https://blog.csdn.net/wo541075754/article/details/138149179

参考如上:

上述配置虽然格式挣钱,但貌似在该版本中并不支持该配置项目,而需要改为:

network.host: 0.0.0.0

改为上述配置便可正常启动。同时需要注意的是,在该版本中,上述配置是默认的配置,所以可以不用进行指定配置。

相关推荐
启明真纳32 分钟前
elasticache备份
运维·elasticsearch·云原生·kubernetes
TsengOnce1 小时前
Docker 安装 禅道-21.2版本-外部数据库模式
运维·docker·容器
无为扫地僧2 小时前
三、ubuntu18.04安装docker
ubuntu·docker
谷莠子9053 小时前
hadoop实验之创业有感
hadoop·docker·团队开发
G丶AEOM3 小时前
Docker快速入门
docker
大熊程序猿4 小时前
airflow docker 安装
运维·docker·容器
带电的小王5 小时前
Docker在Ubuntu上安装
ubuntu·docker
fanruitian6 小时前
docker 为单个容器设置代理
运维·docker·容器
梁萌6 小时前
Docker快速安装Tomcat
docker·容器·tomcat·镜像
Doker 多克7 小时前
IntelliJ IDEA Docker集成
spring cloud·docker·intellij-idea