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

Node Inspector使用问题:Docker部署下3000端口占用报错排查

问题分析与解决

你遇到的EADDRINUSE错误,核心原因是端口冲突:

  • 你的npm脚本里,nodemon的--inspect=0.0.0.0:3000是把Node.js的调试监听端口设为了3000
  • 而你的server.js代码里,应该也在监听3000端口提供服务
  • 容器内这两个监听操作(调试器+服务本身)抢占同一个3000端口,就会触发地址被占用的错误

解决步骤

1. 分离调试端口与服务端口

修改npm脚本,把调试端口换成Node.js默认的9229(或其他未被占用的端口),比如:

"watch": "nodemon --inspect=0.0.0.0:9229 --legacy-watch server.js"

如果需要远程调试你的Node服务,在docker-compose.yaml的ports里添加调试端口映射:

ports:
  - "3000:3000"
  - "9229:9229"

不需要调试的话,甚至可以直接去掉--inspect参数。

2. 确认服务监听配置

检查server.js里的监听代码,确保它使用的端口(比如3000)和调试端口完全不重复,比如:

// server.js 示例
app.listen(3000, '0.0.0.0', () => {
  console.log('Server running on port 3000');
});

3. 排查容器内端口占用(可选)

如果上述方法没解决,可以进入容器查看3000端口的占用情况:

# 进入运行中的容器
docker exec -it <容器ID或名称> /bin/bash
# 查看端口占用
lsof -i :3000
# 或者用netstat
netstat -tulpn | grep 3000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:30:44