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

从ASP.NET Core 5容器访问Docker内SQL Server出现连接错误如何解决?

错误点与修复方案
  • 连接字符串端口配置错误
    同一个docker-compose默认网络下的容器互相访问时,使用的是容器内部暴露的端口,而非宿主机映射端口。你的db容器中SQL Server默认监听1433端口,你配置的Server=db,22指向的是不存在的容器内22端口,导致连接失败。
    修正后的连接字符串(额外补充TrustServerCertificate=True解决SQL Server默认自签证书不信任问题):
"Server=db,1433;Database=OrdersDatabase;User ID=sa;Password=123Mudar#;TrustServerCertificate=True"
  • mssql.env文件格式错误
    env文件的键值对需用=分隔,而非冒号,你当前的配置会导致SA密码、EULA协议参数未被正确注入,SQL Server容器会启动失败。
    修正后的mssql.env:
SA_PASSWORD=123Mudar#
ACCEPT_EULA=Y
  • 未处理服务启动顺序依赖问题
    depends_on仅保证db容器先启动,但不会等待SQL Server完成初始化(SQL Server首次启动需要10-30秒完成初始化配置),web服务先启动完成时发起数据库连接会直接失败。你可以在ASP.NET Core代码中增加数据库连接重试逻辑,或者用wait-for类工具在启动web服务前等待db端口可达。

  • 缺少数据库初始化逻辑
    首次启动的SQL Server实例默认不存在OrdersDatabase数据库,你需要通过EF Core迁移、手动执行建库脚本等方式提前创建对应数据库,否则连接后会报数据库不存在错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:21:03