我使用VS2017创建了ASP.NET Core Web API。之后,我为我的应用程序启用了Docker支持。
接下来,我实现了EF Core功能。之后,我在本地测试了应用程序,然后运行良好,还创建了数据库。但是,每当我在本地Docker或本地Kubernetes中运行应用程序时,该应用程序将无法正常运行。因为我使用了本地SQL Server,所以无论在Docker或Kubernetes中运行的容器是什么,都不知道SQL Server或SQL Server数据库。
有人可以建议如何在Docker或Kubernetes中运行的容器中使用本地数据库吗?
答案 0 :(得分:1)
您需要提供主机的IP。在Linux中,您可以使用“ host.docker.internal”主机名连接到主机。它据说可以在Windows中运行,但是在Windows中却有很多很多太多的问题。
如果该主机名不适合您,则您有2个IP地址。一个是码头工人的网关,应以10. 。。*或172. 。。*开头,具体取决于您的设置方式。通常,要学习此方法,请使用docker inspect <container>
,然后您可以在网络部分中看到默认网关。但是,Kubernetes可能会更改这些设置,它可能提供了一种更好的访问主机的方法。我没有使用Kubernetes,所以我不知道。
另一种选择是使用网络使用DHCP分配的主机的IP地址。它通常应以192.168。。开头。
您的容器应该能够使用这些IP地址访问主机上的应用程序。如果问题仍然存在,请关闭防火墙,然后尝试从容器内部ping通。