You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSMS如何区分Docker与主机上的SQL Server?端口1433解惑

为什么主机SQL Server 2022和Docker中的SQL Server 2019能共用1433端口并分别访问?

核心原因在于两者的网络监听范围和连接方式的差异,具体拆解如下:

  • Docker端口映射的本质:你执行的-p 1433:1433参数,是让Docker在主机的网络栈中创建端口转发规则——将发送到主机0.0.0.0:1433(即所有网卡的1433端口)的流量,转发到容器内部的SQL Server实例(容器内的1433端口)。

  • Windows主机SQL Server的监听特性:默认安装的SQL Server 2022默认实例,通常仅监听127.0.0.1(本地环回地址)和Windows命名管道,不会绑定主机的所有网卡地址(0.0.0.0)。这意味着:

    • 当你在SSMS中连接localhost、.或(local)时,会优先通过命名管道或127.0.0.1连接到主机本地的SQL Server 2022实例;
    • 当你连接主机的实际局域网IP地址(比如192.168.3.10)时,流量会命中Docker的端口转发规则,被路由到容器内的SQL Server 2019实例。
  • 端口冲突的避免:如果主机的SQL Server确实绑定了0.0.0.0:1433,Docker启动时会直接报错提示端口被占用。你的场景能同时运行,说明两者的监听范围没有重叠——主机SQL Server只占了本地环回的1433,Docker占了全局网卡的1433,两者互不干扰。

你也可以通过以下命令验证监听差异:
打开命令提示符,执行:

netstat -ano | findstr :1433

查看结果中1433端口的监听地址和进程ID:

  • 对应主机SQL Server的进程(通常是sqlservr.exe),监听地址会是127.0.0.1:1433;
  • 对应Docker的进程(通常是com.docker.backend.exe),监听地址会是0.0.0.0:1433。

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 11:57:17