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

问题描述

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

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

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

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

enter image description here

解决方法

这是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$。这些详细信息基于您执行的创建容器的命令。请参考下图。

用于登录 SQL Server 2019 Docker 容器的 Azure Data Studio SQL Server 2019 Docker Container

注意:如果您使用 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 Server 2019 Docker 容器的 IP 地址 Finding IP Address of SQL Server 2019 Docker container

使用 Docker 配置执行 Web 应用 Executing the Web App with Docker Configuration

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...