Running Microsoft SQL Server on Linux in Docker

One of the organizations that recently consulted me for advice, no longer willing to be extortion by Microsoft's high licensing fees, and plans to replace all Windows Server with Linux (Ubuntu). No big deal for services written in PHP, Java, and other cross platform languages. But some of the systems use MicroSoft SQL Server as their Database. The permanent cure is to migrate to MySQL, MariaDB, or other OpenSource Databases. But it takes time to translate all schema and queries. The other solution is to use Microsoft SQL Server on Linux in Docker as a temporary workaround.

Env: Ubuntu 16.04

Run official docker image

Pull and run

$ docker run --name mssql-server-linux -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux


$ docker ps

7c73a9a4d0ef microsoft/mssql-server-linux "/bin/sh -c /opt/m..." 25 minutes ago Up 25 minutes>1433/tcp mssql-server-linux

Connect and run T-SQL

Once it's running, you can connect it with built in mssql tools

$ docker exec -it mssql-server-linux /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'yourStrong(!)Password'


Try some command

1> SELECT Name from sys.Databases;
2> GO

(4 rows affected)
2> GO
1> USE testdb;
2> GO
Changed database context to 'testdb'.
1> CREATE TABLE inventory (id INT, name NVARCHAR(50), quantity INT);
2> GO
1> INSERT INTO inventory VALUES (1, 'banana', 150);
2> INSERT INTO inventory VALUES (2, 'orange', 154);
3> GO
(1 rows affected)
(1 rows affected)
1> SELECT * FROM inventory WHERE quantity > 152;
2> GO
id          name                                               quantity   
----------- -------------------------------------------------- -----------
          2 orange                                                     154

(1 rows affected)

Additional Info

Data dir

root@7c73a9a4d0ef:~# ls /var/opt/mssql/data/

master.mdf   model.mdf     msdbdata.mdf  tempdb.mdf   testdb.mdf
mastlog.ldf  modellog.ldf  msdblog.ldf   templog.ldf  testdb_log.ldf

In Dockerfile we can see there's no MSSQL server is directly executed

CMD /opt/mssql/bin/

If you want to build your app extending from this image and has your own, this is an example



Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.

About Austere Technologies
Austere Technologies is an IT Services, Consulting and Technology company. We have partnered with global software vendors to help our customers in digital transformation and technology services. We combine a network of top talent with strong technical expertise, Industry knowledge and extensive project experience in delivering solutions that help customers optimize Business Processes, streamline Infrastructure, Cloud services and gain competitive advantage.

Some of the key services we deliver and not limited to are:
Custom application development using open framework and technologies
Implementation and deployment of packaged applications based on Microsoft, SAP and Oracle Technologies
End to end Application Quality Management
Automated Functional and Performance Testing using open and custom frameworks
Application Security
Help our customers in Product demonstration and evaluation process
Onsite and remote support with highly skilled support engineers

Thanks a lot very much for the high your blog post quality and results-oriented help. I won’t think twice to endorse to anybody who wants and needs support about this area. java training in bangalore

Good information, very informative and useful for the people who are in need of this.
SQL Server Online Training | Unix Linux Training

I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.

I really like your post.It’s really informative and interesting.I really appreciate that.Thank you for sharing valuable information. Nice post. I enjoyed reading this post. The whole blog is very nice found some good stuff and good information here Thanks...

Embedded training in Chennai

We are truly thankful for your blog entry. You will discover a great deal of methodologies in the wake of going to your post...

PLC training Institute in Chennai

Nice post..Thanks for sharing this useful and interesting article..

IEEE Projects in Chennai | Mechanical project centre in Chennai

Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this. angularjs training in chennai

Excellent information, really helpful to me.
Angularjs Training in Chennai

This is what I am looking for since days ago. Now, feeling happy after reading this and I used to read your blog regularly...
Docker Online Training | Struts Training

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.