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

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

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

 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秒后抛出exception,抱怨它无法连接到SQL Server。 连接string是:

 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。

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