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

如何解决如何从 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?