【问题标题】:Connect from a docker container to SQL Server LocalDB从 docker 容器连接到 SQL Server LocalDB
【发布时间】:2021-03-02 05:41:09
【问题描述】:

如何从 Linux 容器连接到主机上运行的 (localdb)\msSqlLocalDB?

我有几个包含数据库的容器,从本地计算机连接到它们没有问题。我还有使用 host.docker.internal 连接到我的盒子上的资源的容器。在这种情况下,我需要从容器连接到在我的机器上运行的 SQL Server localdb。

我是一个大团队的一员,开发人员正在使用 localdb。我正在使用我的新应用程序将 docker 引入我们的环境,它需要连接到他们现有的 localdb。

我知道如何使用 host.docker.internal 来引用主机,但我不知道如何连接到 localDB。我认为 LocalDB 使用命名管道而不是网络名称,我在连接字符串时遇到了问题。

【问题讨论】:

    标签: sql-server docker localdb docker-networking


    【解决方案1】:

    我不相信这是可能的。

    LocalDb 仅支持命名管道连接。从 Linux Docker 容器到基于主机的资源的连接仅支持 TCP/IP,并且 Linux 命名管道和 Windows 命名管道不可互操作。

    【讨论】:

    • 这是客户端驱动方面的问题吗?只是我认为理论上可以使用 Samba 连接到 Windows 管道
    • 当然。命名管道已经在 TCP/IP 上运行了很长时间。因此,可以为 Linux 编写 TDS-over-Named Pipes 客户端。但是 localdb 只侦听本地命名管道,这些管道在共享内存上运行,而不是 TCP/IP。所以它还需要一些 docker 魔法。
    • 出于好奇,是否可以在命名管道句柄上使用SetSecurityInfo,可能来自 SQLCLR 模块,或者在作为 SYSTEM 运行时,从而向网络打开 LocalDB?跨度>
    • 我也添加了类似的要求。但事实证明只有两种选择。 1.在docker容器中移动数据库。 2. 将数据库移动到云端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2016-12-26
    • 2022-08-16
    • 2016-11-29
    • 2022-01-04
    • 2020-06-12
    • 1970-01-01
    相关资源
    最近更新 更多