Docker网络内API容器连接SQL Server容器失败问题求助
问题分析与解决方案
核心问题
你的配置存在两个关键错误:
- 容器间通信端口误用:Docker网络内部容器互访时,必须使用容器自身监听的端口(SQL Server默认的1433),而非映射到主机的1440端口。
- 连接字符串参数冲突:
Trusted_Connection=True与Integrated Security=false互相矛盾,使用SA账号认证时需禁用Windows身份验证。
修复步骤
修正数据库连接字符串
将连接字符串修改为:Server=SQL-server,1433; User Id=sa; Password=passwordsAreOverrated@dev2023; TrustServerCertificate=true;Integrated Security=false;改动说明:
- 端口从1440改为1433(容器内部SQL Server的监听端口)
- 删除
Trusted_Connection=True,消除参数冲突
重启API容器
确保API应用加载新的连接字符串后重新启动容器:docker run --rm --name Dev-API --network Network-Dev -p 5000:80 api-dev
验证方法
可进入API容器内部测试SQL Server的连通性:
# 进入API容器 docker exec -it Dev-API bash # 用nc测试端口连通性 nc -zv SQL-server 1433
若连通成功,说明网络与端口配置正常,此时再测试API的数据库连接即可恢复。
内容的提问来源于stack exchange,提问作者Gijsbert Brouwer
相关产品推荐
相关产品推荐

