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!
la source
Réponses:
La mise en place d'un réseau de conteneurs est beaucoup plus facile avec weave . Pour plus d'instructions spécifiques à AWS, consultez le blog du projet .
la source
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.
la source