У меня есть проект 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 выставление портов предназначено для доступа к контейнеру с хоста, и я хочу получить доступ к хосту из контейнера
@lavrik ты когда-нибудь это разбирал? У меня аналогичная проблема
@MarkRobson Да, начиная с версии 18.03 вы можете использовать зарезервированное DNS-имя host.docker.internal

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