2

I'm publishing an application to docker image microsoft/dotnet:1.0.1-core that reference Sql Server instance in connection string:

"Data Source=host\instance;Initial Catalog=database;User ID=user;Password=pass;"

In Windows environment it work's as well, but using docker, the application cannot connect to the database. Changing the Data Source to use port instead of instance it works.

"Data Source=host,port;Initial Catalog=database;User ID=user;Password=pass;"

How can I connect, from docker, to Sql Server using instance instead port?

Ricardo Fontana
  • 4,213
  • 1
  • 18
  • 32

1 Answers1

2

According to Saurabh Singh from Microsoft:

The Instance name support is available in v 1.1 of .Net Core. In v1.0 of .Net Core, Instance names are not supported on OS other than Windows.

So I don't think you can connect from .Net Core 1.0 running on Linux to an SQL Server using instance name.

Your choices seem to be:

  • don't use instance name
  • wait for .Net Core 1.1 (planned for "Fall 2016")
  • use pre-release version of .Net Core 1.1
svick
  • 225,720
  • 49
  • 378
  • 501
  • That's not a .NET Core issue. Instance names are in general a Windows concept. In a docker container, running Linux, the SQL Server will be available through ip/port. Also, usually one container is like just one instance. If you need multiple instances, create multiple containers instead. – Joerg Krause Mar 15 '20 at 21:29