Принудительно установить реплику MongoDB для использования IP вместо имени хоста при создании - PullRequest
0 голосов
/ 20 февраля 2019

Я устанавливаю набор реплик MongoDB через Mongo Cloud Manager.Два экземпляра Mongo запускаются внутри контейнера докера, имеющего произвольное имя хоста.Во время создания MongoDB устанавливает имя хоста контейнера в качестве хоста члена в конфигурации (поле rs.conf (). Members [i] .host).Из-за этого я не могу получить доступ к этому набору реплик, так как имя хоста контейнера не видно снаружи контейнера.

Я не хочу выполнять дополнительную ручную настройку хоста контейнера, чтобы сделать имя хоста контейнера видимым (так как оно уже есть).сеть, настроенная Docker, и контейнер имеют определенный IP, по которому он доступен извне).

Есть ли способ заставить MongoDB использовать IP вместо имени хоста при создании набора реплик?

Iпопытался с опцией bind_ip, но получил ошибку: «Неверная конфигурация: bind_ip 172.17.0.2 не содержит действительный адрес локального хоста»

Спасибо, что заглянули!Любая помощь высоко ценится.

1 Ответ

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

На данный момент я решил передать --hostname с IP-адресом хоста контейнера (вдохновленный комментарием @ Джо) при запуске образа докера с Mongo Cloud Automation Agent.Я понимаю, что это довольно уродливое решение, но я считаю, что это нормально, поскольку внутри контейнера нет ничего, кроме mongo (контролируемого Automation).

И для DB, предназначенной для использования только локально (включенохост контейнера) Я просто передаю статический IP-адрес контейнера (я использую docker-compose с настроенной сетью, и его статический IP-адрес задан для контейнера)

Другие решения, такие как создание набора реплик вручную и импорт в Mongo CLoud Manager(я думаю, наиболее актуальный) или Попытка исправить хосты вручную после создания развертывания через консоль mongo, не стоит их сложности, как для меня.

...