Exécution de Docker dans VPC et accès au conteneur à partir d'une autre machine VPC


10

Je rencontre des problèmes lors de l'exécution de Docker dans AWS VPC.

Voici ma configuration: j'ai deux machines fonctionnant en VPC:

  • 10.0.100.150
  • 10.0.100.151

les deux ayant une IP élastique qui leur est affectée, les deux s'exécutant dans le même sous-réseau activé Internet.

Supposons que j'exécute un serveur Web qui sert des fichiers statiques dans un conteneur sur la machine 10.0.100.150 du conteneur:

  • IP: 172.17.0.2
  • le port 8111 est transféré sur le port 8111 de la machine.

J'essaie d'accéder aux fichiers statiques à partir de ma machine locale (ou une autre machine non VPC a également essayé une instance EC2 ne fonctionnant pas dans le VPC) et cela fonctionne parfaitement.

Si j'essaie d'accéder aux fichiers de l'autre machine (10.0.100.151), il se bloque. J'utilise wget pour extraire les fichiers.

J'ai essayé de le déboguer avec tcpdump et ngrep et ce que j'ai vu, c'est que la demande atteint le conteneur. Si je ngrep sur la machine hôte, je vois les demandes entrer mais aucune réponse ne revient. Si je ngrep sur le conteneur, je vois les demandes entrer et la réponse revenir.

J'ai essayé plusieurs configurations iptables (avec postrouting activé, avec des ports de transfert manuels, etc.) mais sans succès.

Aide en aucune façon - même les instructions de débogage seraient très appréciées.

Merci!



Double-lisez le message avec exposer les conteneurs dockers au réseau VPC, mais cette chose est totalement différente.
Bogdan Gaza

C'est ça? La vérification de l'IP source / destination est-elle déjà désactivée le 10.0.100.150?
Michael - sqlbot

Ouais, je l'ai désactivé et également testé sur un autre VPC non par défaut, même bug.
Bogdan Gaza

Pouvez-vous répertorier les groupes de sécurité pour les instances EC2? Il semble que les instances ne figurent pas dans le groupe de sécurité par défaut pour autoriser le trafic entre d'autres instances de ce groupe de sécurité.
Andy Shinn

Réponses:



0

Cela semble que les instances EC2 ne peuvent pas communiquer entre elles car elles ne font pas partie d'un groupe de sécurité qui permet aux ports 8111 d'accéder les uns aux autres. Vérifiez que le groupe de sécurité autorise l'accès à lui-même (et ajoutez les deux instances EC2 au groupe de sécurité) ou qu'il autorise le sous-réseau VPC au port 8111.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.