在Windows上的Docker从dotnetcore应用程序连接到SQL服务器
我已经使用asp.net核心构build了一个简单的API,从SQL Server数据库返回一些数据。
它在VS和命令行运行良好,但是当我build立和运行应用程序作为我的Windows 10机器上的docker容器时,我打电话给API我不断收到这个错误
System.Data.SqlClient.SqlException:连接超时过期。 login后阶段过去的超时时间。 在等待服务器完成login过程和响应时,连接可能已经超时; 或者尝试创build多个活动连接时可能已超时。 试图连接到这个服务器的时间是 – [Pre-Login] initialization = 425; 握手= 265; [login]初始化= 5; authentication= 9; [后login]完整= 14034; —> System.ComponentModel.Win32Exception:未知错误258
我真的不知道这是什么告诉我,这就好像它不能findSQL Server的机器。 我不得不在泊坞窗configuration或当我运行的容器了端口1433
吗?
正如Tseng在他的评论中解释的,你的容器是在他们自己的networking中,而不是在你的主机的networking中。 您确实需要公开该端口(或映射到主机上的另一个可用端口),您可以使用Docker Compose轻松完成此操作。 在下面的例子中(你可以在docker-compose.yml文件中), sql是数据库容器的名称, 1337是本地端口, 1433是容器的端口。
sql: ports: - "1337:1433"
- 带有linux docker容器的Asp.net核心
- Docker Image上找不到来自wwwroot的Assetss
- Visual Studio团队服务失败任务Docker生成
- docker工人的视觉工作室IP地址与.net核心问题
- 将docker容器中的Connectionstring连接到主机中的SQL Server dblocal
- 事件名称应至less有3个部分用斜杠分隔。 Asp.Net核心Docker中的参数名称eventName
- 将.net核心应用程序部署到docker会给“Microsoft.DotNet.Props”找不到错误
- Docker:在CLI上运行dotnet发布-o / output会导致非零的错误
- 我应该使用docker的用户机密或环境variables