Solución:
Acabo de escribir una publicación de blog sobre esto. Eche un vistazo a richminchuk.io. De lo contrario:
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
luego,
private static string _connStr = @"
Server=127.0.0.1,1401;
Database=Master;
User Id=SA;
Password=YourSTRONG!Passw0rd
";
Lo más probable es que el nombre de su servidor sea localhost y el puerto 1401 (que es el predeterminado para la configuración del contenedor Docker). Por lo tanto, deberá utilizar la siguiente cadena de conexión:
"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;"
Tuve este problema hoy y lo resolví usando una red separada (en lugar de usar la red “puente” predeterminada).
-
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
También tengo tal cadena de conexión:
Server=mssql;Database=master;User=sa;Password=**********;
Acerca de las respuestas anteriores con respecto a la Cadena de conexión con dirección IP, no es un buen enfoque, porque esta dirección se puede cambiar dinámicamente, es mejor usar nombres de contenedor, como nombres de host.