我正在尝试使用aws的ecs服务设置一个docker容器。我想在主机上保留端口30000 - 60000,并将这些端口映射到容器上的30000 - 60000。但是,Aws文档指出主机上只能保留100个端口:
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
任何人都可以解释为什么有限制/建议解决方法?
答案 0 :(得分:1)
我很确定100端口限制将归因于the way Docker maps ports。
Docker每个映射端口启动一个Go进程,该进程将使用4-6MB的私有内存。因此,在100个端口,Docker进程将消耗大约500MB的内存。
如果您尝试将所有30000 - 60000端口映射到容器,则需要~150GB的内存。如果你想要UDP和TCP,则为300GB。
如果 使用那么多端口,那么您需要开始使用--net=host
,桥接或mapping interfaces directly进入容器。这不太可能得到ECS的支持(在EC2上,我必须从VPC接口和put it on the containers interface获取“真实”MAC地址。)