如何从Docker容器访问SQL Server?

我现在正在通过.NET Framework 4.6.1来使用MVC5应用程序,而且我正在使用Windows容器。 其中一个要求是为应用程序创builddocker镜像。 我成功地拉动了microsoft / aspnet:4.6.2图像,并在容器中部署了一个web应用程序。 在Dockerfile中,我添加了“EXPOSE 1433”,以确保SQL Server可以通过此端口访问主机。 问题是与SQL连接。 build立连接导致以下错误:

System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' 

我应该提到连接string是启用集成安全性 。 我曾尝试设置应用程序池标识:

 Set-ItemProperty IIS:\AppPools\DefaultAppPool\ -Name processModel -Value @{username='domain\user';password='somepassword';identityType=3 } 

这不幸的 ,由于停止的应用程序池,导致“ HTTP错误503.服务不可用 ”。 我已经检查了窗口事件存储,我发现了三个事件:

应用程序池DefaultAppPool已被禁用。 Windows进程激活服务(WAS)在启动工作进程为应用程序池提供服务时遇到了故障。

应用程序池DefaultAppPool已被禁用。 Windows进程激活服务(WAS)没有创build工作进程来为应用程序池提供服务,因为应用程序池标识无效。

应用程序池DefaultAppPool的身份无效。 为身份指定的用户名或密码可能不正确,或者用户可能没有批处理login权限。 如果身份未被更正,应用程序池将在应用程序池收到第一个请求时被禁用。 如果批处理login权限导致该问题,则Windows进程激活服务(WAS)可以重试login之前,必须在授予权限后更改IISconfiguration存储中的标识。 如果在处理应用程序池的第一个请求之后身份保持无效,应用程序池将被禁用。 数据字段包含错误编号

我已经检查了凭据,他们是正确的。 我的想法是,容器有自己的私人领域。 这就是为什么我无法连接到SqlServer。 研究我find了这篇文章 。

有没有人试图在Docker容器中configurationActive Directory? 你如何解决SQL连接的问题?

如果要在容器中使用集成Windows身份validation,则需要使用GMSA帐户。 谷歌它或看看我的博客( https://github.com/artisticcheese/artisticcheesecontainer/wiki