Как мы можем сопоставить IP докера во внешнем приложении - PullRequest
0 голосов
/ 05 июля 2019

Я установил zookeeper и Kafka с помощью докера по следующей ссылке https://crunchytechbytz.wordpress.com/2018/01/28/install-apache-kafka-in-docker-container/

Теперь я хочу опубликовать сообщение на одну из тем в Кафке. Если я получаю ip из docker kafka с помощью следующей команды.

docker network inspect kafka-net

Я использую этот IP в своем приложении. Я могу опубликовать сообщение в очереди kafka. Как мы можем сделать автоматическое картирование.

Я попробовал однонаправленное отображение порта контейнера докера на отображение внешнего порта. Это делает его очень медленным, и после этого потребитель также не может потреблять это.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Можете ли вы вставить то, что находится внутри вашего контейнера Кафки?(docker inspect kafka) Если в вашем отображении портов ничего нет, вам нужно запустить docker образ kafka с параметром -p, который открывает порт для внешнего мира.-p имеет такой синтаксис: «-p outside_port: inside_port», и когда вы хотите пропинговать kafka, вы будете пинговать с внешним портом.

0 голосов
/ 05 июля 2019

Если вы хотите получить доступ к Kafka из-за пределов вашего приложения, вы должны предоставить порт (как вы указали, например, для сопоставления с внешним портом) или напрямую работать в хосте сетевого режима --net=host.

При доступе необходимо указать внешний порт, а не внутренний.

Для тестирования соединения Kafka попробуйте:

telnet <ip_of_your_outer_machine>:<outer_port>

Если вы можете использовать telnet, вы можете подключиться к нему извне.

Если вы выберете --net=host, то вы сможете получить доступ к Kafka через внутренний порт (поскольку в этом режиме вы используете внешний порт и один и тот же внутренний порт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...