在Elastic Beanstalk的多容器Docker环境中,容器拒绝连接。

问题描述 投票:0回答:1

我想在Elastic beanstalk上部署一个Tomcat容器作为多容器环境的一部分。

在本地使用

docker run -it --rm -p 8888:8080 tomcat:9.0

打开时 http://localhost:8888/ 在浏览器中,HTTP状态为404,脚注为 Apache Tomcat/9.0.34 出现,这是意料之中的,因为我使用的是官方镜像,没有附带任何服务(据我所知)。

enter image description here

现在我想把这个容器作为弹性豆茎集群的访问点。

我选择了 Create Application 并供给我的Dockerrun.aws.json¹。

{
  "AWSEBDockerrunVersion": 2,
  "volumes": [],
  "containerDefinitions": [
    {
      "name": "vanilla-tomcat",
      "image": "tomcat:9.0",
      "essential": "true",
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 8888,
          "containerPort": 8080
        }
      ],
      "mountPoints": []
    }
  ]
}

健康 是绿色的,没有错误,但当我调用地址时,例如用 curl http://vanillatomcat-env.eba-abc.eu-central-1.elasticbeanstalk.com/ 我得到 curl: (7) Failed to connect to vanillatomcat-env.eba-xy.eu-central-1.elasticbeanstalk.com port 80: Connection refusedcurl http://vanillatomcat-env.eba-abc.eu-central-1.elasticbeanstalk.com:8888 我得到 Connection timed out.

安全组有一个入站规则。

Type Protocol Port range Source     Description - optional
HTTP TCP      80         0.0.0.0/0  -

我需要配置什么才能访问我的容器?

¹为了保持简单,我特意只提供一个容器,但其他环境不是解决方案,必须是多容器环境!

进展

  1. 根据(我对)Marcin的建议,我设置了 aws:elasticbeanstalk:environment:process:default:Port 下的不同数值。配置 -> 软件 -> 环境属性:

enter image description here

但这也没有改变任何呼叫 addressaddress:1234

  1. 我进一步尝试用烧瓶做同样的事情,其中图像是 poroko/flask-demo-appcontainerPort 是5000。同样在本地工作(docker run -it --rm -p 8888:5000 poroko/flask-demo-app),但在elastic beanstalk上却没有,所以我认为这个问题不是tomcat特有的,而是由于设置造成的。
amazon-web-services docker tomcat amazon-elastic-beanstalk
1个回答
0
投票

设置 "hostPort": 80 为我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.