如何连接在本地Docker或Kubernetes中运行的ASP.NET Core应用程序的本地SQL Server数据库?

时间:2019-01-07 10:32:51

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

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

接下来,我实现了EF Core功能。之后,我在本地测试了应用程序,然后运行良好,还创建了数据库。但是,每当我在本地Docker或本地Kubernetes中运行应用程序时,该应用程序将无法正常运行。因为我使用了本地SQL Server,所以无论在Docker或Kubernetes中运行的容器是什么,都不知道SQL Server或SQL Server数据库。

有人可以建议如何在Docker或Kubernetes中运行的容器中使用本地数据库吗?

1 个答案:

答案 0 :(得分:1)

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

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

另一种选择是使用网络使用DHCP分配的主机的IP地址。它通常应以192.168。开头。

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