首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker容器应用程序无法连接到Docker主机中的SQL Server

Docker容器应用程序无法连接到Docker主机中的SQL Server
EN

Stack Overflow用户
提问于 2017-08-23 08:39:51
回答 1查看 3.8K关注 0票数 6

Docker容器中的.NET应用(基于microsoft/dotnet-framework镜像)无法连接到Docker主机系统上安装的SQL Server2016。Docker主机为Windows Server 2016。Docker版本为17.03.2-ee-5。

我使用以下命令序列运行容器和.NET应用程序:

代码语言:javascript
复制
docker run -it microsoft/dotnet-framework cmd
docker cp App <container-id>:/
docker exec -it <container-id> cmd
cd App
TestConn.exe

TestConn.exe在大约10秒后抛出异常,抱怨它无法连接到SQL Server。连接字符串为:

代码语言:javascript
复制
Data Source=localhost;Initial Catalog=SomeDB;Persist Security Info=False;User ID=appuser;Password=apppwd;MultipleActiveResultSets=False;Connection Timeout=30;

如果我在Docker主机系统中运行TestConn.exe,应用程序可以成功连接到SQL Server。

我在docker run命令中添加了--expose=1433 --没有起作用。我期望的工作方式是TestConn.exe尝试连接到本地主机(默认的SQL1433端口),而本地主机又连接到Docker主机中的端口1433,该端口对应于SQL Server。

EN

回答 1

Stack Overflow用户

发布于 2018-10-15 02:43:33

您正在寻找的功能确实存在,ip是"host.docker.internal",您可以替换为"localhost“,应用程序将能够连接到在另一个docker容器中运行的数据库。

这只适用于18.03版以上的Mac和Windows (目前还不支持Linux ...)。在Linux中,在docker run命令中使用--net="host“,那么docker容器中的localhost将指向您的docker主机。

How to access host port from docker container有更多关于这方面的信息。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45828911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档