Как подключить локальную базу данных SQL Server для приложения ASP.NET Core, работающего внутри локального Docker или Kubernetes? - PullRequest
0 голосов
/ 07 января 2019

Я создал ASP.NET Core Web API, используя VS2017. После этого я включил поддержку Docker для моего приложения.

Далее была реализована функция EF Core. После этого я тестировал приложение локально, затем оно работает нормально, база данных также была создана. Но всякий раз, когда я запускаю приложение в локальном Docker или локальном Kubernetes, приложение не будет работать должным образом, как я ожидал. потому что я использовал Локальный SQL Server, поэтому независимо от того, работает ли контейнер внутри Docker или Kubernetes, он не знает базы данных SQL Server или SQL Server.

Кто-нибудь может подсказать, как использовать локальную базу данных в контейнере, работающем внутри Docker или Kubernetes?

1 Ответ

0 голосов
/ 07 января 2019

Вам нужно указать IP хоста. В Linux вы можете использовать имя хоста host.docker.internal для подключения к хост-машине. Он предположительно работает в Windows, однако у него много, много, слишком много проблем в Windows.

Если это имя хоста не работает для вас, у вас есть 2 IP-адреса. Одним из них является шлюз докера, который должен начинаться с 10. . . * Или 172. . . * В зависимости от того, как вы его настроили. Обычно, чтобы узнать это, используйте docker inspect <container>, и вы можете увидеть шлюз по умолчанию в разделе сети. Тем не менее, Kubernetes может изменить их, и это может быть лучшее средство для доступа к хосту. Я не использовал Kubernetes, поэтому я не знаю.

Другой вариант - использовать IP-адрес хоста, назначенный вашей сетью с использованием DHCP. Обычно он должен начинаться с 192.168. . .

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

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