前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker搭建elasticsearch并使用python连接 - plus studio

docker搭建elasticsearch并使用python连接 - plus studio

作者头像
plus sign
发布2024-02-29 08:27:30
1460
发布2024-02-29 08:27:30
举报
文章被收录于专栏:个人博客

docker搭建elasticsearch并使用python连接

搭建

创建一个docker网络

代码语言:text
复制
docker network create elastic

然后拉elasticsearch 的docker 容器

代码语言:text
复制
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.2

运行容器

代码语言:text
复制
docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.10.2

如果遇到报错Elasticsearch exited unexpectedly, with exit code 78 ,在终端运行sudo sysctl -w vm.max_map_count=262144然后删掉刚才的镜像,重新运行容器。(这个设置重启后会失效,可以在/etc/sysctl.conf以设置使其永久有效。)

成功运行终端会弹出很多信息,然后最后会给出密码等,如下

记得保存密码,可以将密码加到环境变量里export ELASTIC_PASSWORD="your_password",他只会弹出一次。如果忘了也可以重置密码

代码语言:text
复制
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

验证是否正常运行

把证书从容器中复制一份

代码语言:text
复制
docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .

然后运行命令查看restful api是否正常运行

代码语言:text
复制
curl --cacert http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200

如果看到类似下图的信息就成功了

image.png
image.png

python连接

运行下面的代码,password改成你自己的代码。

代码语言:text
复制
from elasticsearch import AsyncElasticsearch
import ssl
import asyncio

ssl_context = ssl.create_default_context(cafile='info/http_ca.crt')
es = AsyncElasticsearch(
    ['https://localhost:9200'],
    http_auth=('elastic', 'password'),
    scheme="https",
    ssl_context=ssl_context
)

async def main():
    info = await es.info()
    print(info)
    await es.close()

# 运行主函数
asyncio.run(main())

看到类似下面的输出代表运行成功

image.png
image.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-9,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker搭建elasticsearch并使用python连接
    • 搭建
      • 验证是否正常运行
        • python连接
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档