Dockerfile可以定义包含挂载了克隆数据库的SQL Server容器。注意容器中环境变量的使用。

  今年早些时候WinDocks与NetApp合作探索使用容器来集成NetApp的SnapClone进程(SDCLI.exe)。结果令人满意,仅一步在50秒内部署了挂载750G克隆数据库的SQL Server容器!
  SQL Server容器对遗留项目的支持
  用户对Windows容器的兴趣正快速上涨,一个针对WinDocks社区版下载者的调查显示了一个惊人的使用范围,流行的还是用它来进行开发和测试,但是为了支持遗留项目如SAP和微软Dynamics的情况也有很多。在这些案例中,SQL Server后端被容器化,并且相关支撑环境也被简化。
  集成SQL Server和.Net容器以及现存架构
  幸运的是,容器对.Net应用提供完美支持,并且集成SQL Server和.Net容器环境是很直截了当的。 ASP.NET架构定义了XML文件、web.config的使用,从而定义.NET应用和SQL Server容器间的配置和链接字符串。
  这里我们使用WinDocks中位于windockssamples estdotnet目录的示例.NET应用来举个例子。使用记事本打开web.config,配置“连接字符串”,指向SQL Server容器的主机地址、端口和SQL认证信息。

  使用运行中的SQL Server容器信息修改主机名(如果需要),端口和SQL Server sa密码。保存并关闭文件(检查下,不要保存成.txt文件)。并运行:

  打开浏览器,访问主机地址和端口来查看集成的应用。

  还有另一种方法集成容器和DNS命名服务。这个方法是在构建时使用Windows NETSH工具将容器动态分配到已知IP地址。
  结论SQL Server容器利用经过微软验证的共享DLL架构来提供在共享主机上SQL Server实例的实践支持。 流行的用例是在开发和测试环节,但有部分是用来使用容器化SQL Server后端来测试遗留项目(主要是SAP和微软Dynamics)。对虚拟机需求数量的降低各有不同,但用户报告平均能有3-5x的减少,同时也显著节省许可证和主机维护的开销。由于更新会在容器刷新时自动传播,主机的维护也得到简化。
  这里提到的例子关注于数据库引擎,若要探索容器对SSIS和其他SQL Server服务的支持,仍需做更多的工作。
  其他正在探索的有前景的使用场景包括迁移工作负荷、高可用、以及灾难恢复。容器的速度和可移植性使得这些更加可行、可实践、也更容易被测试。额外的时间和测试也会有助于回答SQL Server容器是否做好了运行在生产环境的准备。
  鉴于微软没有明确计划,SQL Server容器在Windows Server 2016不太可能得到实践级支持。既然Windows Server 2016不支持,那么理想的容器支持会是将来的SQL Server的Linux移植版,我们期待在2017中的进展。
  现在,是时候开始探索使用SQL Server容器了。