Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser le réseau virtuel de Docker pour les tâches Amazon ECS Linux
Le mode bridge
réseau est uniquement pris en charge pour les ECS tâches Amazon hébergées sur EC2 des instances Amazon.
Avec le mode bridge
, vous utilisez un pont réseau virtuel pour créer une couche entre l'hôte et la mise en réseau du conteneur. De cette façon, vous pouvez créer des mappages de ports qui remappent un port hôte à un port de conteneur. Les mappages peuvent être statiques ou dynamiques.
Avec un mappage statique des ports, vous pouvez définir explicitement le port hôte que vous souhaitez mapper à un port de conteneur. À l'aide de l'exemple ci-dessus, le port 80
de l'hôte est mappé au port 3000
du conteneur. Pour communiquer avec l'application conteneurisée, vous envoyez le trafic au port 80
vers l'adresse IP de l'EC2instance Amazon. Du point de vue de l'application conteneurisée, le trafic entrant est visible sur le port 3000
.
Si vous souhaitez uniquement modifier le port de trafic, les mappages statiques de ports conviennent. Cependant, cela présente toujours le même inconvénient que l'utilisation du mode réseau host
. Vous ne pouvez exécuter qu'une seule instanciation d'une tâche sur chaque hôte. Cela est dû au fait qu'un mappage statique de port ne permet de mapper qu'un seul conteneur sur le port 80.
Pour résoudre ce problème, pensez à utiliser le mode réseau bridge
avec un mappage dynamique des ports, comme indiqué dans le schéma suivant.
En ne spécifiant pas de port hôte dans le mappage des ports, Docker peut choisir un port aléatoire et inutilisé dans la plage de ports éphémères et l'attribuer comme port hôte public pour le conteneur. Par exemple, l'application Node.js qui écoute sur le port 3000
du conteneur peut se voir attribuer un numéro de port aléatoire élevé, comme 47760
sur l'EC2hôte Amazon. Cela signifie que vous pouvez exécuter plusieurs copies de ce conteneur sur l'hôte. De plus, chaque conteneur peut se voir attribuer son propre port sur l'hôte. Chaque copie du conteneur reçoit du trafic au port 3000
. Toutefois, les clients qui envoient du trafic vers ces conteneurs utilisent les ports hôtes assignés de manière aléatoire.
Amazon vous ECS aide à suivre les ports assignés de manière aléatoire pour chaque tâche. Pour ce faire, il met automatiquement à jour les groupes cibles de l'équilibreur de charge et la découverte de AWS Cloud Map service afin d'obtenir la liste des adresses IP et des ports des tâches. Cela facilite l'utilisation des services fonctionnant en mode bridge
utilisant des ports dynamiques.
Cependant, l'un des inconvénients de l'utilisation du mode réseau bridge
est qu'il est difficile de verrouiller les communications de service à service. Comme les services peuvent être affectés à n'importe quel port aléatoire et inutilisé, il est nécessaire d'ouvrir de larges plages de ports entre les hôtes. Cependant, il n'est pas facile de créer des règles spécifiques afin qu'un service particulier ne puisse communiquer qu'avec un autre service spécifique. Les services ne disposent d'aucun port spécifique à utiliser pour les règles de mise en réseau des groupes de sécurité.