加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

sql-server-什么会阻止在Docker容器中运行的代码连接到单独服务

发布时间:2020-12-16 03:25:51 所属栏目:安全 来源:网络整理
导读:我在Ubuntu 14.04的Docker容器中运行一个.NET Core 1.1应用程序,但它无法连接到在单独的服务器上运行的SQL Server数据库. 错误是: Unhandled Exception: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while

我在Ubuntu 14.04的Docker容器中运行一个.NET Core 1.1应用程序,但它无法连接到在单独的服务器上运行的SQL Server数据库.

错误是:

Unhandled Exception: System.Data.SqlClient.SqlException: 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: 25 – Connection string is not valid)

>我在另一台Ubuntu 14.04服务器上使用相同的命令行部署了相同的映像,并且连接正常.
>在问题服务器(Docker外部)上运行的控制台应用程序可以使用相同的连接字符串进行连接.

据我从文档中可以看到,默认情况下,在容器中运行的应用可以访问外部网络,那么阻止该连接的原因是什么?

最佳答案

an app running in a container has access to the external network by default

只有为容器分配了有效的IP地址,它才可以访问.有时Docker为容器选择的IP可能与外部网络冲突.

默认情况下,容器在网桥网络中运行,因此请看一下:

docker network inspect bridge

找到容器并检查其IP.

要解决冲突,可以在customize网桥上设置bip参数来更改网络的IP范围(配置文件的位置取决于主机的OS):

"bip": "192.168.1.5/24"

或create一个新的docker网络.

或尝试使用net = host选项:docker run network settings

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读