Не удалось установить sh новое соединение с сервером Elasticsearch, работающим на виртуальной машине. - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь подключиться из контейнера docker к серверу ES на виртуальной машине. На виртуальной машине работает CentOS, и я установил ES, следуя инструкциям прямо с веб-сайта ES. У меня он запущен, и я могу использовать команды curl, чтобы убедиться, что он работает. Я также могу использовать библиотеку ES python для подключения. Однако, когда я пытаюсь подключиться из своего приложения docker, оно не устанавливается. Я смог имитировать c среду 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

, и он может нормально пинговать; однако, когда я делаю pip install elasticsearch, то пытаюсь подключиться к серверу ES:

from elasticsearch import Elasticsearch
es = Elasticsearch('192.168.0.1', port=9200)
es.ping()

я получаю ответ False. Я могу успешно подключиться к ES на моем ноутбуке, используя тот же метод на моем ноутбуке, но не на сервере CentOS. Я читал много других тем, но в основном они говорят о контейнере ES <-> контейнер приложения, например: ссылка . Пожалуйста, дайте совет. Спасибо!

...