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

Docker环境下PHP容器连接MSSQL容器遇网络错误求助

解决Docker中PHP容器连接MSSQL容器的网络问题

问题核心

你遇到的HYT00登录超时、08001网络连接失败错误,根源是PHP容器内的localhost指向容器自身,而非MSSQL容器。Docker Compose默认会创建独立的内部网络,服务间需通过服务名互相访问,而你用SSMS能连接是因为宿主机的localhost映射了MSSQL容器的端口,和PHP容器的网络空间不互通。

修复步骤

1. 修改PHP连接代码的服务器地址

将$serverName从localhost替换为Docker Compose配置里的MSSQL服务名mssql:

$serverName = "mssql"; 
$connectionInfo = array("Database"=>$database, "UID"=>"sa", "PWD"=>"Password@", "CharacterSet"=>'UTF-8');
$conn = sqlsrv_connect($serverName, $connectionInfo);

2. 额外验证项(若问题仍存在)

  • 检查MSSQL容器状态:执行docker logs mssql,确认日志中出现SQL Server is now ready for client connections
  • 确保PHP容器已安装依赖:检查PHP的Dockerfile是否安装了msodbcsql17驱动和sqlsrv扩展
  • 补全MSSQL容器环境变量:在Docker Compose的mssql服务中添加必要初始化参数,确保SQL Server正常启动:
    mssql:
      container_name: mssql
      build: 
        context: ./docker/mssql
      ports:
        - "1433:1433"
      volumes:
        - .:/var/www
      environment:
        - ACCEPT_EULA=Y
        - SA_PASSWORD=Password@
    

内容的提问来源于stack exchange,提问作者J.Do

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:55:31