简介
在本文中,我将为您介绍如何在Docker
中安装ElasticSearch 8.6.2
。ElasticSearch是一个流行的开源搜索和分析引擎,可以帮助您快速、准确地搜索和分析数据。通过在Docker
中安装ElasticSearch
,您可以轻松地部署和管理您的ElasticSearch
实例,并确保系统的可移植性和可靠性。
准备
在安装ElasticSearch
之前,您需要在计算机上安装Docker
。Docker
是一个跨平台的容器化技术,可以帮助您快速、可靠地构建和部署应用程序。
要安装Docker
,请访问Docker
官方网站并下载适合您操作系统的版本。安装程序会自动下载和安装Docker
引擎,并将其添加到您的计算机中。
确保为 Docker 分配了至少 4GiB 的内存。
下载映像
在安装ElasticSearch
之前,您需要从Docker Hub
下载ElasticSearch
映像。Docker Hub
是一个Docker
映像仓库,可以帮助您快速找到、下载和部署各种开源软件。
要下载ElasticSearch
映像,请在终端中输入以下命令:
docker pull elasticsearch:8.6.2
运行
创建网络
docker network create elastic
在 Docker
中创建Elasticsearch
容器。为用户elastic
生成密码,并且 输出到终端,以及用于注册 Kibana
的注册令牌。
docker run --name es01 --net elastic -p 9200:9200 -it elasticsearch:8.6.2
运行成功后,输出用户elastic
密码等信息,复制生成的密码和注册令牌,并将其保存在安全的环境中 位置。这些值仅在您第一次启动 Elasticsearch
时显示。
单机测试
复制证书
将http_ca.crt
安全证书从Docker
容器复制到本地计算机。
docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .
访问接口
使用从Docker
容器复制的http_ca.crt
文件,通过进行经过身份验证的调用来验证是否可以连接到Elasticsearch
集群。提示时输入用户elastic
的密码。
集群
第一次启动Elasticsearch
时,安装过程默认配置单节点集群。此过程还生成注册令牌并将其打印到您的终端。如果要节点加入现有群集,请使用生成的注册令牌启动新节点。
注册令牌的有效期为30分钟。失效请参照下文重置注册令牌
在您启动第一个节点的终端中,复制生成的注册令牌,用于添加新的Elasticsearch
节点。
在您的新节点上,启动Elasticsearch
并包含生成的注册令牌
docker run -e ENROLLMENT_TOKEN="eyJ2ZXIiOiI4LjYuMiIsImFkciI6WyIxNzIuMTguMC4yOjkyMDAiXSwiZmdyIjoiMTU4Mjg1ZTA1ODIwYTc3MjgxNDE2YjgzNDA3YzlmNjcxNzBlNWJhODliYzU0MTQxOTgyYTYwZjgyZDM1NmQ3MiIsImtleSI6Ik84UG1YSWNCeUNUelowUlRoX2VJOjlZSHpYd3VmU1FXUUxwMDdlVFNTNFEifQ==" --name es02 --net elastic -it elasticsearch:8.6.2
<token>
换成复制的注册令牌
执行命令,将Elasticsearch
配置为加入现有集群。
过期示例
重置注册令牌
如果需要生成新的注册令牌,请在现有节点上运行elasticsearch-create-enrollment-token
工具。此工具可在Docker容器的Elasticsearch
/bin
目录中使用。
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
参数
-E <KeyValuePair>
配置标准Elasticsearch
或X-Pack
设置。
-f, --force
强制命令针对不健康的群集运行。
-h, --help
返回所有命令参数。
-s, --scope
指定生成的令牌的范围。支持的值为node
和kibana
。
--url
指定该工具用于向Elasticsearch提交API请求的基本URL (本地节点的主机名和端口)。默认值是根据elasticsearch.yml文件中的设置确定的。如果xpack.security.http.ssl.enabled设置为true,则必须指定HTTPS URL
示例
创建一个注册令牌,用于将Elasticsearch
节点注册到集群中:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
创建一个注册令牌,用于将Kibana
实例注册到集群中。指定的URL
指示elasticsearch-create-enrollment-toke
工具试图到达本地Elasticsearch
节点的位置:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana --url "https://172.0.0.3:9200"
重置密码
如果您需要重置用户的密码或其他 内置用户,运行elasticsearch-reset-password
工具。 此工具位于 Docker
容器的 Elasticsearch
目录中。 例如:elastic
/bin
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password
参数
-a, --auto
将指定用户的密码重置为自动生成的强密码。(默认)b, --batch
运行重置密码进程,而不提示用户进行验证。-E <KeyValuePair>
配置标准Elasticsearch
或X-Pack
设置。-f, --force
强制命令针对不健康的群集运行。-h, --help
返回所有命令参数。-i, --interactive
提示输入指定用户的密码。使用此选项可以显式设置密码。-s --silent
在控制台中显示最小输出。-u, --username
原生领域用户或内置用户的用户名。--url
指定该工具用于向Elasticsearch提交API请求的基本URL (本地节点的主机名和端口)。默认值是根据elasticsearch.yml文件中的设置确定的。如果xpack.security.http.ssl.enabled设置为true,则必须指定HTTPS URL。-v --verbose
在控制台中显示详细输出。
示例
将elastic
用户的密码重置为自动生成的值,并在控制台中打印新密码:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
在终端中提示所需密码后,重置用户名为user1
的本机用户的密码:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password --username user1 -i
将用户名为user2
的本机用户的密码重置为自动生成的值,从而在控制台中打印新密码。指定的URL
表示elasticsearch-reset-password
工具试图到达本地Elasticsearch
节点的位置:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password --url "https://172.0.0.3:9200" --username user2 -i
常见错误
第二个节点启动时第一个节点所在的容器退出的问题
如果遇到第二个节点启动时第一个节点所在的容器退出的问题,请显式设置JVM
堆大小的值。要手动配置堆大小,请在启动每个节点时包含ES_JAVA_OPTS
变量并为-Xms
和-Xmx
设置值。例如,以下命令启动节点es02
,并将最小和最大JVM
堆大小设置为1 GB
:
docker run -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -e ENROLLMENT_TOKEN="<token>" --name es02 -p 9201:9200 --net elastic -it docker.elastic.co/elasticsearch/elasticsearch:8.6.2
vm.max_map_count [65530] is too low
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
创建容器输出以下错误
linux
vi /etc/sysctl.conf
在最后一行加入
vm.max_map_count=262144
重启
sysctl -p
删除创建失败的容器再次创建
docker rm es01
docker run --name es01 --net elastic -p 9200:9200 -it elasticsearch:8.6.2
Windows and macOS with Docker Desktop
必须通过docker-machine
设置vm.max_map_count
设置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
Windows with Docker Desktop WSL 2 backend
必须在docker-desktop
容器中设置vm.max_map_count
设置:文章来源:https://www.toymoban.com/news/detail-427370.html
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
官网文档
Install Elasticsearch with Docker文章来源地址https://www.toymoban.com/news/detail-427370.html
到了这里,关于【ElasticSearch】Docker安装最新版ElasticSearch 8.6.2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!