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

AWS EC2实例Docker部署API请求超时及无200状态码求助

排查EC2上Docker API请求超时/无200响应的实用步骤

1. 先盯紧Docker端口映射(新手高频坑)

  • 登录EC2,执行docker ps查看容器的PORTS列,必须是0.0.0.0:主机端口->容器内API端口/tcp格式(比如0.0.0.0:80->8000/tcp)。如果只显示8000/tcp,说明没把容器端口绑定到EC2主机,外界根本无法访问。
  • 映射错误的话,重新启动容器并添加-p 主机端口:容器内端口参数,例如API在容器内跑8000、对外用80端口,命令为docker run -p 80:8000 你的镜像名

2. 检查EC2主机本地防火墙

  • 执行sudo iptables -L,或若安装了ufw则执行sudo ufw status,确认你使用的主机端口(如80、443)允许入站流量。
  • 若被拦截,直接添加规则:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT(对应80端口);用ufw的话则执行sudo ufw allow 80/tcp

3. 抠细节检查EC2安全组

  • 别只说开了HTTP/HTTPS,需确认:
    • 入站规则的来源为0.0.0.0/0(测试阶段全开放,后续可锁定自身IP),避免误设为内网IP段。
    • 规则的目标端口是你映射的主机端口(如80、443),而非容器内的端口。
    • 安全组确实绑定到当前EC2实例,勿绑定错误机器。

4. 先在EC2内部测试API可用性

  • 登录EC2后,执行curl -X POST http://localhost:主机端口/你的API接口路径,查看是否能拿到200响应。
  • 若内部都无法访问,问题出在API本身或容器配置:比如API未启动成功,或容器内API监听的是127.0.0.1(需改为0.0.0.0才能让容器外访问)。

5. 排查VPC网络配置

  • 确认EC2处于公有子网(子网已关联互联网网关),若在私有子网,需配置NAT网关才能对外提供服务。
  • 检查实例的公网IP是否为当前有效IP,临时公网IP会随实例重启变更,避免使用错误的IP/DNS。

6. 本地测试网络连通性

  • 本地执行ping 你的EC2公网IP,能通说明基础网络正常;ping不通则回头排查安全组和子网配置。
  • 执行telnet 你的EC2公网IP 主机端口,能建立连接说明端口已开放;若连不上,仍需排查端口开放相关配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:42:41