0

I'm trying to connect to SQL Server in a docker container via SQL Server Management Studio.

My docker SQL container instance is running with the following command:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Pizza1234$" -p 1433:1433 --name sqlserver-test -d mcr.microsoft.com/mssql/server:2017-latest

I then try to connect to the SQL Server in the docker container using the server name: localhost, 1433

I was unable to connect SSMS to the instance of SQL Server in the sqlserver-test container but then discovered that if I stop my local instance then SSMS will connect to the SQL server instance in docker which would suggest that SQL is attempting to find a local localhost instance and only when it cannot find one it points to the one docker is hosting.

Can I explicitly set a name for the docker instance or can I include an IP address in the server name when trying to connect to the instance in docker via ssms? I can connect when both are running via bash run from docker so I think it is something missing from my server name when using SSMS.

Ashok
  • 3,190
  • 15
  • 31
BanjoPete
  • 5
  • 3

1 Answers1

0

change the mapped port on the host and you should be good to go. The 2 instances are trying to get hold of the port 1433 and only the first will manage to be satisfied.

You can replace the -p 1433:1433 with -p 2434:1433 and change the connection string on the client.

Stefano
  • 4,730
  • 1
  • 20
  • 28