Не удается подключиться к mongodb в док-контейнере с локальной машины

У меня есть контейнер Docker с mongodb. someId mongo:3.6 "docker-entrypoint.s…" 11 days ago Up 11 days 0.0.0.0:27017->27017/tcp myMongo Когда я пытаюсь подключиться к этому монго с локальной машины через mongo localhost:27017, я получаю сообщение об ошибке

error: couldn't connect to server localhost:27017, connection attempt failed: SocketException: Error connecting to localhost:27017 (127.0.0.1:27017) :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:328:13

Что я делаю неправильно?

Обновлять Вот вывод docker-compose ps

myMongo docker-entrypoint.sh --wir ... Up 0.0.0.0:27017->27017/tcp

Docker-compose файл

version: '2'

services:
  mongo:
    image: "mongo:3.6"
    container_name: myMongo
    ports:
     - "27017:27017"
    mem_limit: 2G

Окончательное обновление Перезагрузил мою Ubuntu, снова запустил docker-compose, и все заработало, как и ожидалось: mongo localhost теперь работает. Подозреваю, что есть проблема в процессе выхода из Ubuntu 18.04, потому что до этого (и до перезагрузки системы) я несколько раз выполнял вход/выход из системы.

stackoverflow.com/questions/43800164/….
John Rajan 01.02.2019 14:17

он не будет подключаться, поскольку сети контейнеров докеров отделены от вашей локальной системной сети. Поэтому вам нужно запустить докер с разоблачением порта в вашей локальной системе с помощью следующей команды: docker run -d -e ROOT_URL=http://localhost -e MONGO_URL=mongodb://localhost:27017 --network = "host"

krishna Prasad 01.02.2019 14:25

на самом деле я запускаю этот процесс докера с помощью команды docker-compose. Обновил вопрос

maks 01.02.2019 14:31

Затем вам также необходимо добавить сопоставление портов хоста и докера, например ports: - 10005:80.

krishna Prasad 01.02.2019 14:39

Затем вам также необходимо добавить сопоставление портов хоста и докера, например ports: - 10005:80.

krishna Prasad 01.02.2019 14:39

Добавлено сопоставление портов @krishnaPrasad. Что вы имеете в виду под отображением хоста?

maks 01.02.2019 14:41

Вы можете поделиться своим файлом компоновки докеров? у вас явно что-то не так с сопоставлением портов

Ganesh Karewad 01.02.2019 14:53

@maks Я имею в виду, что сопоставление порта хоста и порта докера должно быть выполнено до проверки того, подключается ли он с хост-компьютера или нет.

krishna Prasad 01.02.2019 14:54

поделиться содержимым файла docker composer

krishna Prasad 01.02.2019 14:55

@krishnaPrasad обновил вопрос

maks 01.02.2019 15:07

@maks Я пробовал использовать Mac с предоставленным docker-compose.yml, и он работает нормально. Надеюсь, ваша проблема решена перезапуском.

krishna Prasad 02.02.2019 13:40
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
11
3 175
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Шаги для запуска контейнеров Docker Mongo и подключения из локальной системы:

  1. Создайте файл докера docker-compose.yml как:

    version: '2'
    services:
      mongo:
        image: "mongo:3.6"
        container_name: myMongo
        ports:
         - "27017:27017"
        mem_limit: 2G
    
  2. Прежде чем создавать docker composer, вы должны проверить, что порт 27017 уже занят какими-то другими процессами или нет, как:

    netstat -an | grep 27017
    

    или

    lsof -i -P ;// look for the port 27017
    

    Если номер порта 27017 уже занят, вам нужно изменить номер порта в докере с 27027 на любой другой.

  3. запустите контейнер Docker с помощью команды ниже [вы должны находиться в том же каталоге, где находится файл docker-compose.yml]

    docker-compose up
    

    проверьте скриншот ниже, как контейнеры созданы и запущены

  4. Теперь ваш докер-контейнер с mongo db 3.6 запущен и работает, откройте новый терминал и подключитесь к оболочке mongo как mongo, если порт по умолчанию 27017, иначе mongo --port <whateverport number in docker compose>

Надеюсь, это объяснение поможет вам, а также кому-то еще :)

спасибо, кажется, проблема связана с процессом выхода / входа в систему на моей Ubuntu 18.04, так как это происходит, когда я выхожу из системы, а затем вхожу в работающую ОС. В качестве альтернативы, если я перезагружаю свою ОС - все работает нормально

maks 03.02.2019 20:01

Другие вопросы по теме