SQL Server in Docker
This GitHub repository aims to provide a centralized location for community engagement. In here you will find documentation, Dockerfiles and additional developer resources.
SQL Server in Docker comes in two different flavors:
- Linux-based containers: This Docker image uses SQL Server 2017 Developer Edition on Linux on top of an Ubuntu 16.04 base image. This is meant to be run on Docker Engine on its multiple platforms. There are also Dockerfiles here for building RHEL & CentOS based images.
- Windows-based containers: These Docker images use SQL Server 2017 Express Edition and SQL Server 2017 Developer Edition. Both images are based on Windows Container technology and can only be run using Docker Engine for Windows Containers. You can currently sign-up for SQL Server 2019 on Windows Containers available in our Early Adopter Preview program.
Before choosing to run a SQL Server container for production use cases, please review our support policy for SQL Server Containers to ensure that you are running on a supported configuration.
SQL Server Command Line Tools(sqlcmd,bcp) are also available as a Docker Image. You can now deliver SQL Server management payload using this as a base image for your CI/CD scenarios. Check out the mssql-tools Docker Image to get started.
Visit the Microsoft Docker Hub page for more information and additional images.
Documentation
Take our survey
Let us know more about how you would like to use SQL containers by taking our survey.
Issues
For any issues with the repo, please file under this GitHub project on the Issues section.
If you require support with a production related issue, then please raise a support incident with Microsoft here.
There is also a Gitter channel for SQL Server in DevOps that you can join and discuss interesting topics with other container, SQL Server, and DevOps enthusiasts.
Troubleshooting & Frequently Asked Questions
-
"Unknown blob" error code: You are probably trying to run the Windows Containers-based Docker image on a Linux-based Docker Engine. If you want to continue running the Windows Container-based image, we recommend reading the following community article: Run Linux and Windows Containers on Windows 10.
-
When using the Windows Docker CLI you must use double quotes instead of single ticks for the environment variables, else the mssql-server-linux image won't find the
ACCEPT_EULA
orSA_PASSWORD
variables which are required to start the container. -
The 'sa' password has a minimum complexity requirement (8 characters, uppercase, lowercase, alphanumerical and/or non-alphanumerical)
-
Licensing for SQL Server in Docker: Regardless of where you run it - VM, Docker, physical, cloud, on prem - the licensing model is the same and it depends on which edition of SQL Server you are using. The Express and Developer Editions are free. Standard and Enterprise have a cost. More information here: https://www.microsoft.com/en-us/sql-server/sql-server-2016-editions
License
The Docker resource files for SQL Server are licensed under the MIT license. See the LICENSE file for more details.