Не удается подключиться к контейнеру MongoDB из другого контейнера Docker - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть два контейнера, связанных вместе с помощью Docker compose, и я могу успешно пропинговать контейнер, содержащий MongoDB, из контейнера, содержащего мое приложение node.js, используя имя хоста.Однако когда дело доходит до фактического соединения с базой данных, node.js сообщает мне, что в соединении отказано.Я использую Docker для Mac, если это поможет.


    mongoose.connect("mongodb://mongo", {server: {auto_reconnect: true}}).catch(error => {
            console.log("DB CONNECTION ERROR");
            console.log(error)
        });


Вот мой файл docker-compose.yml:

    version: "3"

    services:
      mongo:
        image: mongo:latest
        volumes:
          - ./db:/data/db
        restart: always
        expose:
          - 27017
        ports:
          - 27017:27017
        container_name: mongo

      goose:
        depends_on:
          - mongo
        build: .
        volumes:
          - ./app/server/templates:/usr/src/app/app/server/templates
        expose:
          - 3005
        restart: always
        ports:
          - 3005:3005
        container_name: goose-compose

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Я также столкнулся с той же проблемой с приложением весенней загрузки и dong Монго на Windows.Попробуйте указать mongo uri в Dockerfile в формате: data.mongodb.uri = mongodb: //: 27017 / под ENTRYPOINT.

Надеюсь, это поможет.

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

Предоставление портов без публикации их на хост-компьютере - они будут доступны только для связанных служб.Можно указать только внутренний порт.

src : документы докера

Если вы хотите использовать этот подходиспользуя режим моста сети (который, насколько я помню, используется по умолчанию) и expose , вы должны использовать links , который будет объявлен устаревшим очень скоро (или уже есть),или сеть (или сети - я не правильно помню).

Также стоит взглянуть на сеть в составе часть документов.

[править]
Кстати, expose может даже быть опущен, поскольку вы в любом случае сопоставляете порты контейнеров для размещения (я думаю)Пожалуйста, поправьте меня, если я ошибаюсь.

Приветствия.

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