我可以下载并运行microsoft/mssql-server-windows-express
所以这是可行的:
docker run -d -p 1433:1433 -e sa_password=MyPassword1 -e ACCEPT_EULA=Y microsoft/mssql-server-windows-express
我可以通过 powershell 和 Sql服务器管理工作室(本地主机,1433以及SA和MyPass1)将其连接 这样我就可以看到数据库并使用它们。
但是,在.NET Core API应用程序中,我无法连接到dockerized mssql服务器Express(Windows dockerized而非Linux)
"ConnectionStrings": {
"Default": "Server=127.0.0.1,1433;Database=master;User=sa;Password=MyPassword1 ;"
},
不幸的是,我总是得到这个SQL异常:
System.Data.SqlClient.SqlException:与网络相关或 建立与以下对象的连接时发生特定于实例的错误 SQL Server。服务器未找到或无法访问。校验 实例名称正确并且已将SQL Server配置为 允许远程连接。 (提供商:TCP提供程序,错误:0-否 由于目标计算机主动拒绝,因此可以建立连接 它)。
所以mssql-server-windows-express容器正在运行,我可以通过powershell命令和sql server management studio来访问它,但是当我在visual studio 2017中运行.net core api应用程序时,我得到了这个sql总是例外。
答案 0 :(得分:0)
Localhost与正在运行的Docker实例不同。通过使用127.0.0.1,您可以告诉它连接到自身而不是本地计算机。您需要将其更改为本地计算机的实际 IP。