【问题标题】:How do I connect the local SQL Server database for the ASP.NET Core application running inside either local Docker or Kubernetes?如何为在本地 Docker 或 Kubernetes 中运行的 ASP.NET Core 应用程序连接本地 SQL Server 数据库?
【发布时间】:2019-06-02 00:21:07
【问题描述】:

我使用 VS2017 创建了一个 ASP.NET Core Web API。之后,我为我的应用程序启用了 Docker 支持。

接下来,我实现了 EF Core 功能。之后我在本地测试了应用程序,然后它工作正常,数据库也创建了。但是,每当我在本地 Docker 或本地 Kubernetes 中运行应用程序时,应用程序都不会像我预期的那样正常工作。因为我使用的是本地 SQL Server,所以无论在 Docker 或 Kubernetes 中运行的容器如何,它都不知道 SQL Server 或 SQL Server 数据库。

谁能建议如何在 Docker 或 Kubernetes 中运行的容器中使用本地数据库?

【问题讨论】:

  • 您是否收到错误消息?请不要写“行不通”。而是描述问题

标签: sql-server docker kubernetes asp.net-core-2.0


【解决方案1】:

您需要提供主机的 IP。在 linux 中,您可以使用“host.docker.internal”主机名连接到主机。据说它可以在 Windows 中运行,但它在 Windows 中存在很多、很多、太多的问题。

如果此主机名不适合您,您有 2 个 IP 地址。一个是 docker 的网关,它应该以 10...* 或 172...* 开头,具体取决于您的设置方式。一般要学这个,用docker inspect <container>就可以在网络部分看到默认网关了。然而,Kubernetes 可能会改变这些,它可能会提供更好的访问主机的方法。我没有使用 Kubernetes,所以我不知道。

另一个选项是使用主机的 IP 地址,由您的网络使用 DHCP 分配。它通常应该以 192.168.. 开头。

您的容器应该能够使用这些 IP 地址访问您主机上的应用程序。如果问题仍然存在,请关闭防火墙,然后尝试从容器内部 ping。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2020-11-14
    相关资源
    最近更新 更多