我在Ubuntu 14.04的Docker容器中运行一个.NET Core 1.1应用程序,但它无法连接到在单独的服务器上运行的SQL Server数据库。
错误是:
未处理的异常:System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。(提供程序:TCP提供程序,错误:25-连接字符串无效)
据我从文档中可以看到,默认情况下,在容器中运行的应用可以访问外部网络,那么什么会阻止此连接?
默认情况下,在容器中运行的应用可以访问外部网络
仅当为容器分配了有效的IP地址时,它才可以访问。有时Docker为容器选择的IP可能与外部网络冲突。
默认情况下,容器在bridge
网络中运行,因此请看一下:
docker network inspect bridge
找到容器并检查其IP。
要解决冲突,可以自定义 bridge
网络并设置bip
参数以更改网络的IP范围(配置文件的位置取决于主机的OS):
"bip": "192.168.1.5/24"
或创建一个新的泊坞窗网络。
或尝试以下net=host
选项:docker运行网络设置
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句