我正在尝试从Docker容器连接到虚拟机上的ES服务器。该虚拟机正在运行CentOS,我按照ES网站上的指示直接安装了ES。我正在运行它,可以使用curl
命令来查看它是否正在运行。我也可以使用python的ES库进行连接。但是,当我尝试从docker应用程序连接时,它无法连接。我能够在本地计算机上模拟docker环境;也就是说,泊坞窗应用程序能够连接到我的笔记本电脑上本地安装的ES,并且工作正常。我尝试使用docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 appnet
建立网桥连接,该连接在我的docker <-> ES笔记本电脑实例上有效,但不适用于docker <-> ES CentOS实例。我在CentOS服务器上进行了测试:
docker container run --rm -it --net=appnet python:3.7-alpine sh
apk update && apk add iputils
ping 192.168.0.1
并且可以ping通;但是,当我执行pip install elasticsearch
时,请尝试连接到ES服务器:
from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.0.1', port=9200)
es.ping()
我收到False
的回复。我可以在笔记本电脑上使用相同的方法成功连接到笔记本电脑上的ES,但不能在CentOS服务器上。我阅读了许多其他主题,但它们主要讨论ES容器<->应用容器,例如:link。请提供一些指导。谢谢!