Over a million developers have joined DZone.

Using Docker SQL Server Containers and Instances for Modern Data Delivery

DZone 's Guide to

Using Docker SQL Server Containers and Instances for Modern Data Delivery

While containers don’t support all configurations needed today, they can be combined with the support of SQL Server instances for efficient, secure data delivery services.

· Database Zone ·
Free Resource

Many view containers as the future of application-driven infrastructure, and containers are supplanting virtual machines (to a degree) with increased app density and compute utilization. Windocks has focused on SQL Server containers for several years, and our conviction on the value of containers is stronger than ever. Windocks clients are realizing great results using a combination of SQL Server containers and instances with database cloning. Full disclosure, I am a principal at Windocks, and this article is based on client feedback.

This article summarizes how to quickly assess options available to modernize the delivery of production SQL Server data. Common uses include dev/test, QA, and reporting and BI, with instances updated with production data, securely, and available for use in less than a minute. Where containers are used, organizations realize added benefits of simplified operations and a reduction in VMs used. Each of the solutions outlined here run wherever Windows servers are supported, including the major public clouds and any on premise infrastructure.

Begin With DB Cloning and Storage Array Snapshots

Modernizing SQL Server workflows begin with fast, efficient delivery of production data. Most organizations today rely on users or DBAs to restore backups for data access. Updates are infrequent and slow, are loaded with security concerns, and consume storage and network resources.

Snapshots and database cloning provide secure delivery of data environments that support full read/write operations, which can be updated daily and minimize storage. When Storage Arrays are available, they are preferred, and provide access to up-to-date production data. Windocks simplifies what has been a complex environment with an integrated support that manages the creation of snapshots and associated mount points and mounts the databases to target SQL Server environment.

Windocks also supports the use of SQL Server backups to build clonable images, which support delivery of clones. A Windows-based database clone can deliver a read/write supporting Terabyte class data environment in under a minute while using less than 40 MB of storage. The solution is based on Windows Virtual Hard Drives (VHD), which support Hyper-V and is robust and industry-tested.

Image title

Database clones are foundational for anyone looking to modernize availability of enterprise data. Data can be delivered on demand in less than a minute, and environments are available in less than a minute and incorporate security policies on delivery. SQL Server scripts are applied in the delivery process to add user/group permissions, data masking, and encryption. The result is dramatically improved user access, with improved data governance and security.

Windows and SQL Server Versions Define Your Options

Your options for modernizing with SQL Server clones and snapshots vary based on the Windows and SQL Server versions involved. There are three options, and each can be deployed on-premise or on the public cloud, and can also be combined.

In each case, Windocks acts as a data delivery platform, authenticating users, orchestrating the creation of snapshots, and mounting databases to the target. Windocks allows both automated delivery and user-driven access through a simple web UI and simplifies the integration and use of SAN-based storage. The three options include:

  • Instances: Database clones are mounted to SQL Server instances on the LAN. This option is available for any combination of Windows and SQL Server 2008 onward.

  • Windocks SQL containers: Database clones are mounted to Windocks-hosted SQL Server containers, running on a shared Windows Server 2012 or 2016, for all versions and editions of SQL Server.

  • Microsoft SQL containers: Clones are mounted to a shared Windows Server 2016 with SQL Server 2016 developer, or SQL Server 2017. A Linux host running SQL Server 2017 is also supported.

Image title

Data security is enhanced with DBA-approved images that include enterprise data security policies. Organizations planning for continuous integration should use containers when possible for greater speed and automation. Containers combined with clones and snapshots are ideal for automated testing, as they support destructive testing and database writes and are quickly replaced with an immutable source. The output of the CI process with containers includes immutable Docker images as artifacts, further enhancing the CI process.

Containers Aren't for All Use Cases Today

SQL Server containers support a subset of the full SQL Server capabilities today. As an independent port of Docker to Windows, Windocks supports some configurations and Microsoft’s supports a slightly different set of capabilities. Some of the SQL Server SQL configurations that aren’t supported today include replication, Azure stretch databases, and machine learning.

In time, containers will support the full range of SQL Server configurations. Windocks continues to expand support for SQL Server containers, and will soon support Report Server and Analysis Server. Microsoft is also expanding SQL container support, particularly for SQL Server 2017 on Linux.


Database cloning combined with SQL Server containers is the ideal combination for modernizing enterprise data management and delivery. While containers don’t support all configurations needed today, they can be combined with the support of SQL Server instances for efficient and secure data delivery services.

docker ,database devops ,cloud ,devops ,sql server

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}