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

Docker网络转发失败:PHP应用本地访问连接重置问题求助

问题解决:本地访问Docker内PHP应用出现Connection reset by peer

问题根源

从Docker日志能明确看到,PHP开发服务器启动时仅绑定了容器内部的回环地址:

2024-03-27 19:25:34 [Wed Mar 27 18:25:34 2024] PHP 8.3.4 Development Server (http://127.0.0.1:36001) started

这种情况下,服务只接收容器内部发起的请求,即便Docker配置了端口映射,宿主机的请求也无法穿透到容器内的服务,最终触发连接重置错误。

解决方案

修改PHP开发服务器的启动命令,将绑定地址改为0.0.0.0,让服务监听容器的所有网卡:

php -S 0.0.0.0:36001

具体修改位置

  1. 若启动命令写在Dockerfile中:
    找到类似命令行,将127.0.0.1替换为0.0.0.0:

    # 修改前
    CMD ["php", "-S", "127.0.0.1:36001"]
    # 修改后
    CMD ["php", "-S", "0.0.0.0:36001"]
    
  2. 若通过docker-compose.yml的command字段启动:
    在web服务下添加或修改command配置:

    services:
      web:
        # ...其他原有配置
        command: php -S 0.0.0.0:${WEB_PORT?error}
    

验证修改

重启容器后:

  • 容器内执行netstat -tulpn,确认服务监听地址为0.0.0.0:36001
  • 本地执行curl localhost:36001,即可正常获取响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:12:45