SQL Docker 中的服务器命名实例

SQL Server named instance in Docker

如何在 Docker 容器中 运行 命名 SQL 服务器实例?

我有一个应用程序有一个连接字符串指向一个命名的 SQL 服务器实例,类似于 Data Source=HostName\InstanceName;这个连接字符串对我来说是非常有问题的。我想 dockerize SQL 服务器实例。我已经配置了它,以便我可以使用 sqlcmd -S HostName 通过 sqlcmd 连接到 dockerized 实例,但是当使用 sqlcmd -S HostName\InstanceName 时(这应该等同于此应用程序正在使用的连接字符串)它不会建立连接。

Docker 容器不支持命名实例;这是提到 here:

There is no concept of a named instance. Every container can have a unique name.
...
Containers don't have a concept of running multiple SQL Server instances. So there is no option of running more than one instance name.

真的,您应该更改连接字符串。如果您不能更改连接字符串(但您确实应该更改连接字符串),另一种方法是使用本地客户端网络实用程序或配置管理器在每个客户端上创建一个别名。

例如,您可以在客户端上创建一个指向 HostName\InstanceName 的别名,但在下面,映射实际上会重定向到 HostName,2700(假设 2700 是您的端口在 docker run ... -p 2700:1433 ...).

中指定

别名讨论得更透彻here and I talk about using custom and specific ports for Docker containers here

我有没有提到更改连接字符串更合乎逻辑? 那个可能是您要解决的问题。