文章目录
在本文中,我将为您介绍如何在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
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
创建容器输出以下错误

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
必须通过docker-machine设置vm.max_map_count设置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
必须在docker-desktop容器中设置vm.max_map_count设置:
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece