Почему я не могу получить доступ к открытому HTTP-порту потока NiFi через Docker? - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь сделать что-то очень простое: использовать официальный образ док-станции NiFi (https://hub.docker.com/r/apache/nifi/), чтобы запустить очень простое учебное пособие «Hello World» от NiFi (https://github.com/drnice/NifiHelloWorld).

). Проблема в том,что я не могу получить доступ к порту процессора HandleHttpRequest из этого руководства (называемого Nifi-WebServer-HandleHTTP). Порт 6688.

Я сопоставил порт 6688 с localhost, что я подтвердил в portainer: Снимок Portainer, показывающий сопоставления портов

URL localhost: 8080 работает нормально, я могу получить доступ к интерфейсу NiFi и взаимодействовать с ним.

Но когда я пробую localhost: 6688,Я получаю сообщение об ошибке (пустой ответ от сервера).

Дополнительная информация

1) Когда я вхожу через Portainer на консоль контейнера "nifi3", я могу запустить"curl localhost: 6688" и получить ожидаемый результат (возвращение некоторого HTML).

2) Я подтвердил через netstat, что ничто другое не использует 6688 на моем хосте.

3) Команда полного запуска контейнера:

docker run --name nifi4 -d -p 8080:8080 -p 6688:6688 -p 9998:9998 -v `C:/temp/GitHub/NifiHelloWorld/Archive`:/mnt/nifi_hello_world -v C:/temp/nifi_out:/mnt/nifi_out nifi3 -v 4a8bd6cab08f08af457001810a312816757f40a7c16d2583dd6a9eabfd76db78:/opt/nifi/nifi-current/conf

Итак, HTTP-серверКажется, он подключен к правильному порту внутри контейнера, сопоставление портов есть, но я не могу получить к нему доступ извне.

Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 09 февраля 2019

Похоже, вы попали в начало контейнера.Шаблон, который вы используете, задает имя хоста для процессора HandleHttpRequest «localhost».Соответственно, он будет принимать запросы только через интерфейс обратной связи, внутренний для экземпляра контейнера.

Template Configuration

Вам необходимо удалить это из экземпляра шаблона, чтобы он мог связываться со всеми интерфейсами и позволить переадресации портов работать должным образом черезАргументы команды docker.

...