首页 > 编程语言 >docker搭建elasticsearch并使用python连接

docker搭建elasticsearch并使用python连接

时间:2023-11-26 16:59:17浏览次数:55  
标签:elastic python ssl elasticsearch docker 运行

title: docker搭建elasticsearch并使用python连接
banner_img: https://cdn.studyinglover.com/pic/2023/10/0863cb015e8d69fbce68ebe57bea96d8.jpg
date: 2023-10-9 21:48:00
categories:
- 踩坑

docker搭建elasticsearch并使用python连接

搭建

创建一个docker网络

docker network create elastic

然后拉elasticsearch 的docker 容器

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.2

运行容器

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",他只会弹出一次。如果忘了也可以重置密码

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

验证是否正常运行

把证书从容器中复制一份

docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .

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

curl --cacert http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200

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

python连接

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

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

标签:elastic,python,ssl,elasticsearch,docker,运行
From: https://www.cnblogs.com/studyinglover/p/17857459.html

相关文章

  • 如何在较旧版本的docker中使用gpu
    参考资料:自己摸索https://blog.csdn.net/qq_43684922/article/details/127024933之前我写过一篇如何在docker中使用gpu的随笔(传送门),当时反响还不错(收获了三个推荐)。但是今天却遇到了坑爹的情况,当时的方法不管用了。回顾一下当时的解决方案:只要加上--gpus......
  • 供应链设施选址模型——Python实现
    选址问题是运筹学中非常经典的问题。选址问题是指在确定选址对象,选址目标区,成本函数以及存在何种约束条件的前提下,以总物流成本最低或总服务最优或社会效益最大化为总目标,以确定物流系统中物流节点的数量、位置,从而合理规划物流网络结构。设施选址问题(FacilityLocationProblem)自......
  • GPU部署llama-cpp-python(llama.cpp通用)
    title:GPU部署llama-cpp-python(llama.cpp通用)banner_img:https://cdn.studyinglover.com/pic/2023/08/a5e39db5abf0853e6c456728df8bd971.jpgdate:2023-8-623:01:00tags:-踩坑GPU部署llama-cpp-python(llama.cpp通用)通用流程我们的安装平台是Ubuntu20.04,Python3.......
  • 【Python爬虫】第10篇:js逆向解析和Mongodb数据库。md集合文档(已分享,附代码)
    本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。全套笔记和代码自取地址:请移步这里感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~共8章,37子模块JS的解析......
  • 【Python】异步迭代器与普通迭代器的区别
    异步迭代器是一个协程,并且每个迭代器返回一个在asyncio事件循环中调度和执行的等待对象,所以我们可以在迭代器的主体内执行和等待awaitable对象。普通迭代器需要实现__iter__和__next__函数,异步迭代器需要实现__aiter__和__anext__函数。......
  • 【Python】async与await用法
    async用于修饰函数,将普通函数变为异步函数。asyncdeft2():print(2)直接调用异步函数不会返回结果,而是返回一个协程对象。协程需要通过其他方式来驱动,如async.run函数。await函数只能在异步函数中使用,可以通过该关键字,挂起当前协程,让另一个协程执行完毕,再次执行本协程......
  • mysql+php+apache的docker坏境搭建
    1:安装dockersudoaptinstalldocker.io2:安装mysqlsudodockerrun--privileged=true-di--restart=always--nameMySqlForPhp01-p55506:3306-eMYSQL_ROOT_PASSWORD=1234qwer-e--character-set-server=utf8mb4-e--collation-server=utf8mb4_unicode_cimysql:8.0......
  • 【Python】迭代器与可迭代对象的区别与关系
    定义可迭代对象:能逐一返回其成员的对象,如列表、字符串、字典等;迭代器:表示一连串数据流的对象;区别可迭代对象实现了__iter__方法,可以通过该方法返回迭代器;迭代器对象实现了__iter__和__next__方法,__iter__用来返回其本身,__next__用来获取下一个成员。联系迭代器一定是可迭......
  • 【Python】使用vscode编码提示找不到模块
    问题描述已经使用pip安装了模块,但是使用vscode没有代码提示。解决办法这种情况一般是因为pc安装了多个python版本,安装模块的pip不是vscode指定的编译环境。点击右下角,选择环境变量中配置的python版本。解决问题:......
  • Python 潮流周刊#28:两种线程池、四种优化程序的方法
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。本周刊开源,欢迎投稿。另有电报频道作为副刊,补充发布更加丰富的资讯。......