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

如何配置让Docker(WSL2)容器内应用读取Windows主机SQL Server数据

解决WSL2 Docker容器访问Windows主机SQL Server的配置方案

1. 开启SQL Server远程连接支持

  • 打开SQL Server配置管理器,展开「SQL Server网络配置」,找到对应实例的「协议」,启用TCP/IP协议。
  • 双击TCP/IP协议,切换到「IP地址」选项卡:
    • 拉到最底部的「IPAll」区域,设置「TCP端口」为1433(默认端口,若修改过请用自定义端口),清空「TCP动态端口」。
  • 重启SQL Server服务,确保配置生效。

2. 配置Windows防火墙放行SQL Server端口

  • 打开Windows Defender防火墙,点击「高级设置」→「入站规则」→「新建规则」。
  • 规则类型选择「端口」,下一步;选择「TCP」,输入指定端口(如1433),下一步。
  • 选择「允许连接」,下一步;应用到所有网络类型,下一步;给规则命名(如「SQL Server 1433端口」)后完成。

3. 获取Windows主机在WSL2中的可访问IP

  • 在WSL2终端执行命令:cat /etc/resolv.conf,输出结果里的nameserver对应的IP就是Windows主机的可访问IP(这个IP是WSL2默认映射的主机地址)。
  • 备选方式:在Windows命令行执行ipconfig,找到「以太网适配器 vEthernet (WSL)」的IPv4地址,也是可用的主机IP。
  • 注意:WSL2重启后IP可能变化,若需固定,可在Windows主机设置静态IP,或在WSL2的/etc/hosts中添加映射(如192.168.x.x windows-host)。

4. 配置容器内应用的连接字符串

  • 连接字符串需使用上述获取的Windows主机IP、SQL Server端口,搭配正确的数据库用户名和密码。
  • 示例(以.NET应用为例):
    Server=192.168.x.x,1433;Database=YourTargetDB;User Id=sa;Password=YourStrongPassword;TrustServerCertificate=True;
    
  • 必须添加TrustServerCertificate=True,避免容器与主机间的SSL证书验证失败问题。

5. 验证连接有效性

  • 在容器内安装sqlcmd工具(以Ubuntu镜像为例:apt update && apt install -y mssql-tools),执行测试命令:
    sqlcmd -S 192.168.x.x,1433 -U sa -P YourStrongPassword
    
  • 若能进入SQL命令行提示符,说明连接成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:18:09