如何在MSSQL Server连接字符串中从Docker容器引用主机端口?

问题描述 投票:1回答:1

编排:

  • Windows主机
  • 我的数据库正在本地主机上的容器中运行:1444。
  • 我的API在本地主机上的容器中运行:5000/5001。
  • 它们都在默认(bridge)网络上运行。
  • 我无法使用自定义网络,因为当前我们的应用引用了另一个不在容器中的API

起初,我只是将连接字符串保留为.,1444,但意识到容器必须在自身之外查找才能获得所需的host本地主机。

到目前为止,我已经尝试过:

  • 127.0.0.1:1444
  • host.docker.internal:1444
  • 127.0.0.1,1444
  • host.docker.internal,1444
  • .,1444

我一直收到此错误:

     Connection id "0HLV8EI9HSV9D", Request id "0HLV8EI9HSV9D:00000009": An unhandled exception was thrown by the application.
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)```


windows .net-core network-programming sql-server-2017 docker-desktop
1个回答
0
投票

最常见的方法是在docker run命令中添加--network="host",然后docker容器中的127.0.0.1将指向您的docker主机。

如果这不适合您this question包含许多破解方法来实现相同的目的。

例如:

  • 在容器中映射本地IP别名(DNS)
  • 为通信目的而批量装载某些文件
  • 为docker0接口启用route_localnet

我相信该链接将帮助您找到最适合您的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.