Не удается подключиться к Kafka в локальном контейнере Docker (Windows) - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь локально запустить Kafka в контейнере Docker, но, похоже, комбинация опций неверна.

Я работаю в Windows 10, Docker ce версии 2.0.0.3 (31259).

Что я делаю

  1. запустить Zookeeper в контейнере Docker

    docker run -d --name=zookeeper1 --network=host --env-file=zookeeper_options confluentinc/cp-zookeeper

Я опущу файл среды, поскольку zookeeper работает нормально.

запустить Kafka в контейнере Docker

docker run -d --network=host --name=kafka --env-file=kafka_options confluentinc/cp-kafka

с файлом kafka_options, содержащим

KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181
KAFKA_LISTENERS=PLAINTEXT://localhost:9092
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092

Попробуйте получить список метаданных

kafkacat -b localhost:29092 -L

(это я делаю в подсистеме Ubuntu в Windows 10, остальные я запускаю из PowerShell.У меня также есть небольшое приложение Java Kafka, которое демонстрирует то же поведение, хотя)

В результате

% ОШИБКА: не удалось получить метаданные: Локальный: ошибка транспорта брокера

То, что я прочитал

Очевидно, Быстрый старт с документацией Docker , который использует docker-compose, который мне не нужен;а также раздел Docker документации .

Помимо этого, наиболее заметным является этот пост Робина, объясняющий концепцию рекламируемых слушателей , но я все еще не могупосмотрите, что я делаю неправильно.

Я также обнаружил эту проблему о разнице в Windows , которая не позволяет вам использовать официальные шаги быстрого запуска в Windows;это побудит меня попробовать альтернативный запуск с отдельной сетью.

Отдельная сеть

Выполните следующие действия в этом выпуске:

  1. docker network create confluent
  2. docker run -d --name=zookeeper1 --network=confluent -p 22181:2181 --env-file=zookeeper_options confluentinc/cp-zookeeper
  3. docker run -d --network=confluent --name=kafka -p 29092:9092 --env-file=kafka_options confluentinc/cp-kafka
  4. kafkacat -b localhost:29092 -L

Это меняет результат на

% ОШИБКА: не удалось получить метаданные: локально: время ожидания истекло

Похоже, что по крайней мере он подключается, но это не очень помогает в конце.

Вопрос в том, что я делаю не так?Это параметры конфигурации Kafka или проблема Docker, о которой я не знаю?

EDIT:

Он работает с образец docker-compose.yml здесь , но разве мы не можем запускать контейнеры отдельно?

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