I\'m using Visual Studio 2017 for mac with dotnet Core and EF Core. After setting up the mssql image in Docker container , I was trying to add the connection string but thr
Most likely your server name is localhost and port 1401 (which is the default for Docker container setup). Therefore, you'll need to use the following connection string:
"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;"
Rather than use IP addresses, which would be problematic in a team environment, you can also use host.docker.internal which will resolve to your host IP.
Data Source=host.docker.internal,1433;Initial Catalog=MyDB;User ID=MyUser;Password=MyPassword
I just wrote up a blog post on this. Take a look at richminchuk.io. Otherwise:
sudo docker pull microsoft/mssql-server-linux:2017-latest
docker run \
-e 'ACCEPT_EULA=Y' \
-e 'MSSQL_SA_PASSWORD=YourSTRONG!Passw0rd' \
-p 1401:1433 \
-n sql1 \
-d microsoft/mssql-server-linux:2017-latest
then,
private static string _connStr = @"
Server=127.0.0.1,1401;
Database=Master;
User Id=SA;
Password=YourSTRONG!Passw0rd
";
I solved it by using SQL server Container IP address by inspecting the sql server container for its IP address as shown below
docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <ContainerID | ContainerName>
I had this problem today and I resolved it using a separate network (instead of using default "bridge" network).
docker network create test_network
docker container run -p 1433:1433 -d --name mssql -v mssql_data:/var/opt/mssql -e SA_PASSWORD=********** -e ACCEPT_EULA=Y --network=test_network microsoft/mssql-server-linux
docker container run -p 5000:80 --rm -e ASPNETCORE_ENVIRONMENT=Development --name aspnetcore --network=test_network aspnetcore-image
Also I have such connection string:
Server=mssql;Database=master;User=sa;Password=**********;
About previous answers regarding Connection String with IP address, it is not a good approach, because this address can be changed dynamically, it is better to use container names, as hostnames.