【发布时间】:2019-11-19 03:35:25
【问题描述】:
我有 2 个 docker 容器(在其中一个容器中我有一个应用程序,在另一个 SQL Server 中)。
我尝试从带有应用程序的 docker-container 连接到另一个容器内的 SQL Server 数据库。
为此我做了:
root@application:/# sqlcmd -S 172.17.0.1 -U sa -P test
遇到问题后:
Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:登录超时已过期。
Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:TCP 提供程序:错误代码 0x2749。
Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:建立与 SQL Server 的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。。
当我在没有-S 172.17.0.1 的 SQL Server 数据库的 docker-container 中使用此选项时,它可以正常工作。
任何想法如何通过sqlcmd从带有应用程序的容器连接到带有数据库的容器?
更新
我弄错了,我使用从 docker-container 向数据库传递这个命令。 从应用程序到数据库的连接仍然有问题
【问题讨论】:
-
如果你不传递服务器值,你的命令应该如何找到服务器?我很困惑。
-
@JacobH 我弄错了,更新了问题,可能有人可以帮助我
-
你试过用docker容器名代替ip地址吗?
-
@DanielN 是的,它可以工作,但我需要 172.17.0.1 并且不知道有什么变化以及我需要在哪里
-
我认为你不应该依赖 IP。如果你放弃你的容器或重建它,你可能会得到一个新的 ip。使用主机名或服务作为下面的答案
标签: sql sql-server docker sqlcmd