当前位置: 首页 > 面试题库 >

在Elastic Beanstalk中从Docker公开多个端口

郦祺
2023-03-14
问题内容

通过阅读AWS文档,似乎将Docker用作Elastic
Beanstalk(EB)(与Tomcat等相对)的平台时,只能公开一个端口。我试图了解为什么亚马逊创建了此限制-
看来您现在甚至无法同时提供HTTP和HTTPS。

我想使用Docker作为容器,因为它允许我在同一容器中运行多个互连的服务器进程,其中一些需要多个端口(例如RTSP)。对于这种应用程序,是否有任何变通办法,例如RTSP和HTTP服务器都可以在EB上的同一Docker容器中运行?


问题答案:

您可以为Elastic Beanstalk的LoadBalancer / ReversProxy编写启动配置文件,以将其他端口转发到其EC2实例。Ben
Delarre的
一个例子:

"Resources" : {
  "AWSEBLoadBalancerSecurityGroup": {
    "Type" : "AWS::EC2::SecurityGroup",
    "Properties" : {
      "GroupDescription" : "Enable 80 inbound and 8080 outbound",
      "VpcId": "vpc-un1que1d",
      "SecurityGroupIngress" : [ {
        "IpProtocol" : "tcp",
        "FromPort" : "80",
        "ToPort" : "80",
        "CidrIp" : "0.0.0.0/0"
      }],
      "SecurityGroupEgress": [ {
        "IpProtocol" : "tcp",
        "FromPort" : "8080",
        "ToPort" : "8080",
        "CidrIp" : "0.0.0.0/0"
      } ]
    }
  },
  "AWSEBLoadBalancer" : {
    "Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
    "Properties" : {
      "Subnets": ["subnet-un1que1d2"],
      "Listeners" : [ {
        "LoadBalancerPort" : "80",
        "InstancePort" : "8080",
        "Protocol" : "HTTP"
      } ]
    }
  }
}

参考:

  • 定制AWS EB的ENV http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-resources.html
  • http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-elb-listenerconfig-quickref.html


 类似资料:
  • 问题内容: 所以我有3个端口应该暴露在机器的接口中。使用Docker容器可以做到这一点吗? 问题答案: 要只暴露一个端口,这是您需要做的: 要公开多个端口,只需提供多个参数:

  • 问题内容: 我在Docker中设置了一个简单的节点服务器。 Docker文件 example.js 现在建立图像 现在在容器中运行 验证容器正在运行并且端口已映射: 现在,让我们附加到容器并验证服务器是否在其中运行: 并在容器命令行中输入: 看起来不错吧? 问题 当我在主机上执行相同的curl命令(或使用浏览器导航到http:// localhost:1337 )时,什么都看不到。 知道为什么容器

  • 我正在尝试创建一个Docker容器,它的作用就像一个完整的虚拟机。我知道我可以使用Dockerfile中的EXPOSE指令来公开端口,并且我可以使用标志和来分配端口,但是一旦容器实际运行,是否有命令来实时打开/映射其他端口? 例如,假设我有一个正在运行sshd的Docker容器。另一个使用容器SSH的人安装了httpd。有没有一种方法可以公开容器上的端口80,并将其映射到主机上的端口8080,这样

  • 问题内容: 我正在尝试创建一个行为像完整虚拟机的Docker容器。我知道我可以在Dockerfile中使用EXPOSE指令公开端口,并且可以使用标志来分配端口,但是一旦容器实际运行,是否有命令打开/映射其他端口? 例如,假设我有一个运行sshd的Docker容器。有人使用ssh容器安装了httpd。有没有办法公开容器上的端口80并将其映射到主机上的端口8080,以便人们可以访问容器中运行的Web服

  • 所以我有3个端口应该暴露在机器的接口上。有可能用Docker容器做到这一点吗?