Подключение к локальному контейнеру Mongodb Docker с локального сервера в духе Микросервиса - PullRequest
0 голосов
/ 24 декабря 2018

Я создал сервис Mongodb с Docker на моей локальной машине, и имя хоста настроено в docker-compose.yml с синтаксисом container_name: mongodb, затем с духом MicroserviceЯ запустил службу RESTful API на облегченном встроенном сервере, скажем Jetty , также локально.

Проблема заключается в том, что локальный API RESTfulслужба не может связаться со службой Mongodb, используя определенное имя контейнера Mongodb - mongodb - в локальном контейнере Docker из-за различий в сети.

Вопросы:

  1. Является ли это хорошей практикой, например, путем запуска службы RESTful API только на встроенном сервере, особеннов производстве, без другого контейнера Docker, отличного от контейнера Mongodb?
  2. Если это хорошая практика, как настроить, чтобы RESTful API на локальном встроенном сервере имел доступ к Mongodb в локальном контейнере Docker?

1 Ответ

0 голосов
/ 24 декабря 2018

О запуске баз данных в Docker - это прекрасно.Возможно, вы захотите смонтировать volumes со своего хоста, чтобы сконфигурировать базу данных для хранения там данных, так как хранение данных в контейнере не всегда удобно.Конфигурирование обычно выполняется с помощью переменной среды, передаваемой в docker и конфигурационных файлов, расположенных в общих томах.

Сама сеть не должна быть проблемой, существуют различные сетевые режимы, поддерживаемые Docker, которые позволяютВам общаться с хозяином.Самый простой, но не рекомендуемый для производственных целей - просто использовать --network=host.Это не позволяет Docker создавать новые сети и совместно использовать контейнеры localhost.Это означает, что вы можете получить доступ ко всем службам из контейнера, просто используя localhost в качестве имени хоста.

Почему бы не рекомендовать: потому что это устраняет уровень защиты / изоляции, обычно предоставляемый Docker, как только вселокальная сеть становится доступной в контейнере.

...