Доступ к хосту mongodb из контейнера docker windows

У меня есть проект Visual Studio с добавленной поддержкой докеров. В нем есть файл docker compose с сетевым разделом (я использую контейнеры Windows):

services:
  auth:
    environment:
    - ASPNETCORE_ENVIRONMENT=Development
    ports:
    - "80"
  networks:
    default:
      external:
        name: nat

Docker nat network имеет

"Subnet": "172.17.224.0/20",
"Gateway": "172.17.224.1"

Таким образом, я могу получить доступ к приложению aspnet core 2 с хоста через http://172.17.228.37/api/account/test

Exec ipconfig в образе докера возвращает:

IPv4 Address. . . . . . . . . . . : 172.17.228.37
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . : 172.17.224.1

Приложение использует Mongo. Сервер MongoDB работает на хосте (не внутри докера) и привязан к 0.0.0.0 в mongod.cfg

net:
  bindIp: 0.0.0.0
  port: 27017

Итак, внутри докера я использую строку подключения как mongodb: //172.17.224.1: 27017, и приложение НЕ МОЖЕТ подключиться к хосту mongodb. Однако эхо-запрос IP шлюза (172.17.224.1) в порядке. Мне что-то не хватает при настройке mongodb, docker или приложения net core 2?

Заранее спасибо!

Попробуйте открыть порты в контейнере или прикрепить порт контейнера к порту хоста

trigun117 09.03.2018 15:31

@ trigun117 выставление портов предназначено для доступа к контейнеру с хоста, и я хочу получить доступ к хосту из контейнера

lavrik 09.03.2018 16:32

@lavrik ты когда-нибудь это разбирал? У меня аналогичная проблема

Mark Robson 20.09.2018 21:24

@MarkRobson Да, начиная с версии 18.03 вы можете использовать зарезервированное DNS-имя host.docker.internal

lavrik 21.09.2018 10:34
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
4
677
0

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