Docker Desktop安装Elastic Search

期末Python的课程项目选了图像分类的选题,其中存储和检索各类图像表征的部分比较适合使用ElasticSearch来做,所以就来学习一下它的基本使用。网上大部分的教程均使用Linux环境下的Docker来安装且使用较旧的7.X版本。本文记录一下在Docker Desktop+WSL的Docker环境中,如何安装并配置最新的8.X版本ElasticSearch以及配套的Kibana可视化平台。

获取Docker镜像

使用以下的命令来下载适用于 x86_64 的ElasticSearch与Kibana的Docker镜像,版本均为 8.11.3

docker pull elasticsearch:elasticsearch:8.11.3-amd64
docker pull kibana:8.11.3-amd64

这两个镜像都比较大,下载可能会需要一段时间。

创建网络

为了后续方便连接ES和Kibana,这里新建一个名为 es-net 的网络:

docker network create es-net

创建并运行ES容器

使用下面的命令从之前下载到的ES镜像创建一个新的容器,并且运行它:

docker run -d --name es -e "discovery.type=single-node" --network es-net  -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch:8.11.3-amd64

在这条命令中,我们指明了容器的名称为 es,端口使用 92009300,网络则使用刚才创建好的 es-net

然后当容器跑起来的时候,按照网上的各种教程,我们可以在浏览器中访问 localhost:9200 来查看当前运行ES的信息。但是当我们兴冲冲地打开这个链接,映入眼帘的却是...
003_01.png

呃... 别慌,我们回到Docker Desktop看一下日志,发现ES确实收到了浏览器发来的请求,但因为没有有效的安全验证,主动把连接关掉了。
003_02.png

解决这个问题有两个办法,一是给elastic生成一个证书(certificate)并配置安全验证,二是直接关掉https的安全验证。这里因为只是临时在本地部署一下,所以就采用简单粗暴的第二种方法。

在ES容器中找到Files一栏,打开文件管理器。找到 /usr/share/elasticsearch/config/elasticsearch.yml 这个文件。将其中的 xpack.security.enabledxpack.security.http.ssl 中的 enabled 改为 false。保存文件,然后重启一下容器,就可以使用浏览器来访问了。

创建并运行Kibana容器

与ES的容器类似,我们可以使用下面的命令创建并运行Kibana的容器,同样使用 es-net 来作为网络,端口为 5601

docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601  docker.elastic.co/kibana/kibana:8.11.3-amd64

如果之前的步骤没有问题,这一步应该非常顺利。完成之后访问 localhost:5601 就可以打开Kibana的图形化前端了。
003_03.png

posted @ 2023-12-25 23:22  DevBobcorn  阅读(235)  评论(0编辑  收藏  举报