2016-04-20 2 views
1

Я запускаю Kafka внутри контейнера Docker. Kafka требует подключения к Zookeeper, и поэтому я запускаю Zookeeper в другом контейнере. Я запускаю Docker на OSX, и поэтому у моей виртуальной машины есть IP-адрес: 192.168.99.99.Как обновить конфигурационный файл Kafka с IP-адресом Docker

Что я не могу понять, как обновить мою установку Kockka Docker, чтобы указать на экземпляр Zookeeper, запущенный внутри своего отдельного контейнера Docker, то есть с IP-адресом 192.168.99.9 и портом 2181?

Kafka имеет конфигурационный файл с именем server.properties, который имеет свойство zookeeper.connect, которое я могу установить, но я хочу, чтобы это значение было переопределено динамически, а не жестко-кодирование IP здесь. Как мне это достичь?

И, как дополнительный вопрос, я хочу, чтобы мой файл Docker работать по ОС, - поэтому все, что я должен работать на Linux тоже ..

ответ

0

Вам не нужно, чтобы установить IP в этом файле конфигурации:

С помощью docker-compose v2 (докер 1.10+) создается сеть мостов, которая означает, что оба контейнера находятся в этой сети и видят друг друга.
Подробнее на "Networking in Compose".

Если Zookeeper выставляет свой порт 2181, конфигурационный файл от Kafka может просто ссылаться на zookeeper по имени его контейнера.
И это будет работать на любом докере (boot2docker на Mac или родном докере на Linux)

Смежные вопросы