Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS EC2容器服务/弹性Beanstalk Docker容器端口udp绑定_Amazon Web Services_Docker_Amazon Elastic Beanstalk_Amazon Ecs - Fatal编程技术网

Amazon web services AWS EC2容器服务/弹性Beanstalk Docker容器端口udp绑定

Amazon web services AWS EC2容器服务/弹性Beanstalk Docker容器端口udp绑定,amazon-web-services,docker,amazon-elastic-beanstalk,amazon-ecs,Amazon Web Services,Docker,Amazon Elastic Beanstalk,Amazon Ecs,根据ECS任务定义文档,我们就是这样定义端口映射的 "portMappings": [ { "containerPort": integer, "hostPort": integer } ... ] 默认情况下,这是通过tcp绑定端口。如何实现与AWS Elastic Beanstalk(多容器)或AWS ECS中运行的docker容器的udp端口绑定 的GA版本中仍然缺少UDP支持,请参阅的。幸运的是,这个令人惊讶的差距已经解决,新的E

根据ECS任务定义文档,我们就是这样定义端口映射的

"portMappings": [
    {
        "containerPort": integer,
        "hostPort": integer
    }
    ...
]

默认情况下,这是通过
tcp
绑定端口。如何实现与AWS Elastic Beanstalk(多容器)或AWS ECS中运行的docker容器的
udp
端口绑定

的GA版本中仍然缺少UDP支持,请参阅的。幸运的是,这个令人惊讶的差距已经解决,新的ECS代理版本正在等待发布-我预计这个版本很快就会发布,团队通常会在适当的时候快速更新他们的官方图像(请关注相应的公告)。

根据,现在应该支持:

"portMappings": [
    {
        "containerPort": integer,
        "hostPort": integer,
        "protocol": "udp",
    }
    ...
]

@jrc的答案是正确的。我已经在Elastic Beanstalk多容器Docker环境(与单容器Docker环境相反,单容器Docker环境使用nginx作为容器端口的反向代理,不支持多端口和UDP,是ECS的前端)上使用Raintank的Graphite stack映像,
Raintank/Graphite stack
。相应的
dockrun.aws.json
如下所示:

{
  "AWSEBDockerrunVersion": 2,
  "containerDefinitions": [
    {
      "name": "stack",
      "image": "raintank/graphite-stack",
      "essential": true,
      "memory": 850,
      "portMappings": [
        {
          "containerPort": 3000,
          "hostPort": 80
        },
        {
          "containerPort": 8125,
          "hostPort": 8125,
          "protocol": "udp"
        }
      ]
    }
  ]
}
然后登录到相应的EC2实例并键入
sudo docker ps
给出:

CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                                                       NAMES
12a5711dab47        raintank/graphite-stack          "/usr/bin/supervisord"   2 minutes ago       Up 2 minutes        443/tcp, 2003/tcp, 8125/tcp, 0.0.0.0:8125->8125/udp, 0.0.0.0:80->3000/tcp   ecs-awseb-test-abc-1-stack-abc
930a9b814df4        amazon/amazon-ecs-agent:latest   "/agent"                 3 minutes ago       Up 3 minutes                                                                                    ecs-agent

手动发布statsd UDP数据包,
echo“test.statsd:1 | c”| nc-w 1-u test.aws-region.elasticbeanstalk.com 8125
,我看到它出现在Graphite中

我相信弹性豆茎仍然不支持这一点。有人能证实吗?可惜他们花了这么长时间。按照我的标准,与上面断言的6个月“快”相比,苍蝇肯定不快。