.NET Core Web API 应用程序无法连接到 Docker 上的 SQL 服务器 运行

.NET Core Web API Application cannot connect to SQL server running on Docker

使用MAC。错误(提供商:TCP 提供商,错误:40 - 无法打开与 SQL 服务器的连接)。

Connection string "Data Source=localhost,1433;Initial Catalog=MyDatabase;Integrated Security=True;User id=sa;Password=MyPassword;MultipleActiveResultSets=true"

使用 .NET Core 3.1。 Web API 在容器

中运行

数据库是 运行 在 docker 容器上。端口映射 1433:1433 能够从 Azure Data Studio 查询数据库。但是在尝试从 .net.core 应用程序连接时,它给了我上面的错误。

using System.Data.SqlClient;
SqlConnection connection = new SqlConnection(_connectionString);
connection.Open();

有什么想法吗?

编辑

因此,尝试使用容器的 ip "Server=172.17.0.2,1433;..." 但错误仍然存​​在。

EDIT2 - 解决方案

因此,docker-compose 解决了这个问题,在 docker.

中插入了 slq 运行 的设置

按名称引用容器。你可以这样做

sql-data:
   environment:
      - SA_PASSWORD=Pass@word
      - ACCEPT_EULA=Y
    ports:
      - "5433:1433" # Important: In a production environment, you should be using a managed service



- ConnectionStrings__DefaultConnection=Server=sql-data;Database=MyDatabase;User Id=sa;Password=MyPassword;MultipleActiveResultSets=true