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

Linux Docker容器无法连接本地Windows SQL Server求助

容器连接Windows本地SQL Server问题排查与修复

以下是针对你的问题的分步排查和解决方案:

1. 检查SQL Server核心配置

  • 启用远程连接与TCP/IP协议:打开Windows上的SQL Server配置管理器,展开SQL Server网络配置,找到你的实例对应的协议,确保TCP/IP已启用。双击TCP/IP,在IP地址选项卡中,确保IPAll下的TCP端口设置为1433,并且所有相关IP的已启用设为是。
  • 启用SQL身份验证模式:在SQL Server Management Studio(SSMS)中,右键实例 -> 属性 -> 安全性,选择SQL Server和Windows身份验证模式,重启SQL Server服务生效。

2. 调整Windows防火墙规则

  • 添加入站规则,允许TCP 1433端口访问:打开Windows Defender防火墙高级设置,新建入站规则,选择端口,指定TCP 1433,允许连接,应用到所有网络类型。
  • 若Docker使用桥接网络,建议将规则的作用范围限定为Docker子网(默认是172.17.0.0/16),避免开放全局端口。

3. 修改连接字符串参数

你的连接字符串中Encrypt=True;TrustServerCertificate=False可能导致证书验证失败,因为本地SQL Server通常使用自签名证书。修改为:

"BookStoreContext": "Server=host.docker.internal,1433;Initial Catalog=BookStoreDb;Persist Security Info=False;User ID=admin;Password=xxxxxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;"

如果host.docker.internal解析异常,直接替换为Windows主机的实际IP(如192.168.1.100):

"BookStoreContext": "Server=192.168.1.100,1433;Initial Catalog=BookStoreDb;Persist Security Info=False;User ID=admin;Password=xxxxxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;"

4. 验证容器网络连通性

  • 进入容器内部,测试端口连通性:
    docker exec -it book-store sh
    # 用nc测试(若未安装,先执行apk add netcat-openbsd或apt install netcat)
    nc -zv host.docker.internal 1433
    # 或者替换为Windows IP
    nc -zv 192.168.1.100 1433
    

如果连接失败,说明网络或防火墙未配置正确;如果能连通,再检查SQL Server的权限配置。

5. 修正Docker extra_hosts配置

若host.docker.internal在Linux容器中无法正确解析,手动指定Windows IP到extra_hosts:

version: '3.4'

services:
  book-store:
    image: ${DOCKER_REGISTRY-}bookstore
    extra_hosts:
      - "windows-sql:192.168.1.100" # 替换为你的Windows主机IP
    build:
      context: .
      dockerfile: BookStore/Dockerfile

然后连接字符串使用Server=windows-sql,1433。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:58:19