尝试连接到EC2上的Docker容器时连接被拒绝

问题描述

我目前正在EC2的docker容器中运行spring boot应用程序。我的docker-compose文件如下所示(替换了一些值):

version: '3.8'

services:

  my-app:
    image: ${ecr-repo}/my-app:0.0.1-SNAPSHOT
    ports:
    - "8893:8839/tcp"

networks:
  default: 

docker容器已部署并运行状况良好,运行状况检查命令为:

wget --spider -q -Y off http://localhost:8893/my-app/v1/actuator/health

如果我使用docker ps -a,则可以看到端口:

0.0.0.0:8893->8893

我的Alb健康检查返回了502,所以我暂时允许了从我的IP直接连接到安全组中的EC2。规则是:

Allow Ingress on 8893 from my Alb security group
Allow Ingress on 8893 from my IP
Allow Egress to anywhere (0.0.0.0)

当我尝试使用邮递员在端口8893上使用ec2的公共DNS到达应用程序的运行状况检查端点时,出现错误:连接ECONNREFUSED

如果我放下Docker容器,然后使用https://fabianlee.org/2016/09/26/ubuntu-simulating-a-web-server-using-netcat/中的命令模拟Web服务器,则该命令是:

while true; do { echo -e "HTTP/1.1 200 OK\r\n$(date)\r\n\r\n<h1>hello world from $(hostname) on $(date)</h1>" |  nc -vl 8080; } done

我收到一个200的预期响应,表示这不是安全组的问题。

肯定启用了弹簧启动的执行器端点,就像我尝试通过intellij运行该应用程序并单击该端点时,它返回200并处于向上状态。

关于我在这里可能缺少的或如何进一步调试它的任何建议?似乎Docker由于某种原因未选择与端口的连接。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...