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

同Docker网络下Nginx容器无法访问Express.js应用容器如何解决

问题根因与解决方案

核心原因

你的Express服务仅绑定了App容器内部的本地回环地址127.0.0.1,该地址仅允许容器内部的请求访问,同一Docker网络下的其他容器发起的外部请求无法被监听到,因此会返回连接拒绝错误。

验证方法

进入App容器的CLI,执行以下命令查看端口监听状态:

ss -tulpn | grep 3030

如果返回结果中的监听地址为127.0.0.1:3030,即可确认该问题。

修复步骤

  1. 修改Express应用的启动监听配置,将监听地址从127.0.0.1替换为0.0.0.0,示例代码如下:
// 修改前
app.listen(3030, '127.0.0.1', () => {
  console.log('服务启动成功')
})

// 修改后
app.listen(3030, '0.0.0.0', () => {
  console.log('服务启动成功')
})
  1. 重新构建App容器镜像并重启服务,再次从Webserver容器发起curl请求即可正常得到响应。

其他排查方向

如果修改监听地址后问题仍然存在,可检查App容器内部是否开启了ufw、iptables等防火墙规则,确认3030端口未被拦截。你当前的docker-compose网络配置完全正常,无需调整网络相关参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:15:09