使用Docker本地运行AWS Lambda应用遇连接拒绝问题求助
解决Docker容器localhost端口连接拒绝问题(AWS Lambda RIE + lite-server场景)
检查容器运行状态
执行docker ps查看容器是否处于运行状态。如果容器未启动,重新执行启动命令;如果容器已启动但有异常,执行docker logs <容器ID或名称>查看启动日志,确认lite-server或AWS Lambda运行时接口模拟器是否有报错信息。验证容器内服务监听配置
容器内的服务必须监听0.0.0.0而非仅127.0.0.1,否则宿主机无法访问。进入容器内部检查:- 执行
docker exec -it <容器ID或名称> bash进入容器终端 - 用
curl http://localhost:8080测试容器内服务是否正常响应 - 若curl失败,检查服务监听地址:执行
netstat -tulpn | grep 8080(容器需安装netstat工具,或用ss -tulpn),确认服务是否绑定到0.0.0.0:8080 - 若lite-server仅监听127.0.0.1,修改启动命令为
lite-server --host 0.0.0.0,重新构建镜像后启动容器
- 执行
排查端口映射与宿主机网络
- 确认启动命令的端口映射
-p 9000:8080正确,宿主机9000端口未被其他进程占用:执行lsof -i :9000(Linux/macOS)或netstat -ano | findstr ":9000"(Windows)查看端口占用情况 - 尝试用
curl http://127.0.0.1:9000替代localhost访问,部分系统环境下localhost解析可能存在问题 - 若使用Windows/Mac的Docker Desktop,可尝试用宿主机局域网IP(如
192.168.1.100)访问,格式为curl http://<宿主机IP>:9000
- 确认启动命令的端口映射
排除防火墙/安全软件干扰
暂时关闭宿主机的防火墙或安全软件,重新执行curl测试,若恢复正常,需添加允许9000端口入站的规则。
内容的提问来源于stack exchange,提问作者priya1209
相关产品推荐
相关产品推荐

