Я не могу подключиться к своему контейнеру Mongo по имени - PullRequest
0 голосов
/ 08 мая 2018

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

Я использую официальный образ монго

Я запускаю его, используя:

docker run --name some-mongo --network-alias some-mongo -d mongo

По умолчанию он работает на порту 27017. Я могу подключиться к нему с помощью оболочки Монго:

mongo --host mongodb://172.17.0.2:27017

Но я не могу подключиться к нему по имени

mongo --host mongodb://some-mongo:27017

MongoDB shell version: 3.2.19
connecting to: mongodb://some-mongo:27017/test
2018-05-07T17:23:20.813-0400 I NETWORK  [thread1] getaddrinfo("some-mongo") failed: Name or service not known
2018-05-07T17:23:20.813-0400 E QUERY    [thread1] Error: couldn't initialize connection to host some-mongo, address is invalid :
connect@src/mongo/shell/mongo.js:223:14
@(connect):1:6
exception: connect failed

Вместо этого я получаю сообщение об ошибке, как я не могу подключиться к хосту Монго:

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

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Вы должны запустить свой контейнер с передачей портов на хост-машину:

docker run -p 27017:27017 --name some-mongo --network-alias some-mongo -d mongo

Затем вы можете подключиться к MongoDB с вашего хост-компьютера:

Если вы не хотите этого делать, вы можете подключиться к mongo с помощью команды docker container

docker exec -it some-mongo mongo
0 голосов
/ 08 мая 2018

Ваш подход не изменяет конфигурацию системы вашего хоста, поэтому служба mongo не будет доступна просто так. Соглашаясь с @ unm4sk, вы должны скомпоновать сервисы своего приложения в один файл для составления, например:

version: '2'
services:
 mongo:
   image: mongo
   expose:
     - "27017"
   [...]
 service_utilizing_mongo:
   [...]
   links:
     - mongo:mongo

Тогда у вашего service_utilizing_mongo будет запись DNS, которая сделает эту службу доступной к вашей mongo службе через псевдоним mongo через порт 27017 по умолчанию.

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