Docker镜像运行后无法请求:Postman报socket hang up,本地无响应
问题分析与解决
核心问题是Docker端口映射不匹配:你的Node.js应用在容器内部监听的是5000端口,但运行容器时把主机的5555端口映射到了容器的80端口,两者完全不对应,导致外部请求无法到达应用服务。
解决步骤
修正容器运行命令
把端口映射改为主机端口对应容器内应用的5000端口:docker run -d -p 5555:5000 buxonlineappv2(如果之前的容器还在运行,先执行
docker stop 6fd90778e2df && docker rm 6fd90778e2df清理旧容器)验证容器内服务状态
查看容器日志确认服务是否正常启动:docker logs <容器ID>日志里应该能看到:
- "Connected to MongoDB"(确认数据库连接成功)
- "Server listening on 5000 and host 0.0.0.0"(确认服务在5000端口监听)
测试请求
用curl或Postman访问:localhost:5555/hello此时应该能收到"Hello"的JSON响应。
额外排查点
如果日志显示MongoDB连接失败,说明服务根本没启动起来:
- 检查
configs.DB_URL是否正确,如果是连接本地MongoDB,容器内需要用host.docker.internal代替localhost(Docker桌面版),或者配置Docker网络让容器能访问宿主机的数据库服务。
内容的提问来源于stack exchange,提问作者Zein Rein
相关产品推荐
相关产品推荐

