2016-08-08 5 views
0

J'essaie de configurer un conteneur docker avec le service ecs aws. Je voudrais réserver les ports 30000 - 60000 sur la machine hôte et mapper ces ports à 30000 - 60000 sur le conteneur. documentation Aws, précise toutefois que seuls 100 ports peuvent être réservés sur l'hôte:Augmentation de la limite des ports réservés à la définition de tâche AWS ECS

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html

Quelqu'un peut-il expliquer pourquoi il y a une limite/suggérer des solutions de contournement?

Répondre

1

Je suis assez sûr que la limite de 100 ports sera due à the way Docker maps ports.

Docker lance un processus Go par port mappé qui utilisera entre 4 et 6 Mo de mémoire privée. Ainsi, sur 100 ports, les processus Docker consommeront environ 500 Mo de mémoire.

Si vous essayez de mapper tous les ports 30000 - 60000 à un conteneur, vous aurez besoin de ~ 150 Go de mémoire. 300 Go si vous voulez à la fois UDP et TCP.

Si vous avez à utiliser que de nombreux ports, alors vous devez commencer à regarder à l'aide --net=host, pont ou mapping interfaces directly dans un récipient. Ceci est peu susceptible d'être pris en charge par ECS (Sur EC2, j'ai dû prendre l'adresse MAC «réelle» d'une interface VPC et put it on the containers interface).