如何从 Azure Data Studio 与 Docker 中托管的 SQL Server 2019 容器通信

How to communicate with SQL Server 2019 container hosted inside Docker from Azure Data Studio

我正在尝试在 visual studio(.NET 核心 Web 应用程序)中创建登录 Web 应用程序。我正在使用 Azure Data Studio(ADS) 连接到应用程序的本地数据库。但是当我 运行 使用 docker 的应用程序时,网络应用程序加载成功但无法加载本地数据库。

现在,在网上寻找一些解决方案后,我在 Docker 上拉取了 SQL Server 2019 容器的映像并将其连接到 ADS。我无法在 visual studio 中设置连接字符串到托管在 ADS 上 docker 中的 SQL 服务器数据库。

有人可以提供有关如何在 ADS 上 Docker 内设置我的登录应用程序和 SQL 服务器容器之间的连接的线索吗?

Nugget 包管理器控制台中的错误消息

这是其中一种方式Connecting to SQL Server container hosted inside Docker

假设您已经执行了下面提到的命令来执行SQL Server 2019容器。

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Sample123$" -p 1433:1433 --name mssql2019indocker -d mcr.microsoft.com/mssql/server:latest

Azure 数据工作室:

您可以使用 server=localhostAuthentication Type=SQL LoginUser name = sapassword = Sample123$。这些详细信息基于您执行的创建容器的命令。请参考下图。

Azure Data Studio 登录 SQL Server 2019 Docker 容器

注意:如果您使用 EF Core 工具迁移数据库,服务器应该是“localhost”,如 Azure Data Studio 登录图像所示。

.NET Core 应用程序连接到 Docker 容器

这里的情况是.NET core应用程序在一个Docker容器中执行,SQL Server 2019在另一个容器中执行。

请执行以下命令找出SQL Server 2019 Docker容器的IP地址。请参考下图。在我的场景中,IP 地址是 172.17.0.3.

docker inspect <ContainerIdOfSQLServer2019>

获得 IP 地址后,请在下面提到的连接字符串中更新它。

Server=<IPAddressOfTheSqlServer2019DockerContainer>;Database=myDataBase;User Id=myUsername;Password=myPassword;

正在查找 SQL 服务器 2019 Docker 容器的 IP 地址

使用 Docker 配置执行 Web 应用程序