sql-server - Docker 中的 SQL Server 命名实例
问题描述
如何在 Docker 容器中运行命名 SQL Server 实例?
我有一个应用程序,它的连接字符串指向一个命名的 SQL Server 实例,例如Data Source=HostName\InstanceName
;这个连接字符串对我来说是非常有问题的。我想对那个 SQL Server 实例进行 dockerize。我已经对其进行了配置,以便我可以通过sqlcmd
using连接到 dockerized 实例,sqlcmd -S HostName
但是在使用时sqlcmd -S HostName\InstanceName
(应该等同于此应用程序正在使用的连接字符串)它不会建立连接。
解决方案
Docker 容器不支持命名实例;这在这里提到:
没有命名实例的概念。每个容器都可以有一个唯一的名称。
...
容器没有运行多个 SQL Server 实例的概念。因此,没有运行多个实例名称的选项。
真的,您应该更改连接字符串。如果您无法更改连接字符串(但您确实应该更改连接字符串),另一种方法是使用本地客户端网络实用程序或配置管理器在每个客户端上创建一个别名。
例如,您可以在客户端上创建一个别名,该别名指向HostName\InstanceName
但在下面,映射实际上会重定向到HostName,2700
(假设2700
是您在 中指定的端口docker run ... -p 2700:1433 ...
)。
别名在这里讨论得更彻底,我在这里讨论为 Docker 容器使用自定义和特定端口。
我是否提到更改连接字符串更合乎逻辑?这可能是您要解决的问题。
推荐阅读
- c - 如何在C中求和?
- ruby - 如何使用 ruby、cucumber、capybara 和 bddfire gem 打开 chrome 浏览器?
- ssl - DNS 重新路由 SSL 问题
- r - 绘图图:在 R 中计数 x 小时
- node.js - React 应用程序在多个异步图像下载时重新加载
- node.js - Node.js Lambda 函数中的 AWS S3 ListObjects
- ms-access - 使用 VB6 连接到 Access 2013 数据库
- java - 我正在尝试公开一个 ArrayList(在 java 中),以便我可以在不同的类中访问它,我做错了什么?
- python - pip install 失败“找不到满足要求的版本”
- sql - 计算客户购买商品的平均价格