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

无法访问Next.js Docker多环境示例镜像,求解决方案

解决Next.js Docker容器外部无法访问问题

核心问题定位

Next.js默认仅监听容器内部的127.0.0.1(localhost),即使Docker配置了端口映射,外部请求也无法穿透到容器内的服务,这是导致连接重置的根本原因。

具体解决步骤

  • 修改Next.js监听地址
    在项目根目录的package.json中,将dev命令修改为:

    "scripts": {
      "dev": "next dev -H 0.0.0.0",
      // 其他命令保持不变
    }
    

    或者在next.config.js中添加全局配置:

    module.exports = {
      serverOptions: {
        host: '0.0.0.0',
        port: 3000
      }
    }
    

    修改完成后,重新执行构建和启动命令:

    make build-development
    make start-development
    
  • 验证容器内端口监听状态

    1. 获取容器ID或名称:docker ps
    2. 进入容器:docker exec -it <容器ID/名称> bash
    3. 安装网络工具(若未安装):apt update && apt install net-tools -y
    4. 检查端口监听:netstat -tulpn | grep 3000
      输出应为0.0.0.0:3000,而非127.0.0.1:3000,确认服务已对外监听。
  • 确认本地防火墙规则
    检查Ubuntu的ufw防火墙是否允许3001端口:

    sudo ufw allow 3001/tcp
    sudo ufw reload
    

    虽然其他Docker服务正常,但个别端口可能未被放行,执行上述命令确保端口可被外部访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:45:02