2015-11-16 3 views
1

Je cours un processus, le processus A, à l'intérieur d'un conteneur Docker qui envoie une requête HTTP à un processus, processus B, fonctionnant nativement sur l'hôte. Le processus B reçoit la demande et après le traitement envoie une réponse que le processus A ne reçoit pas. Je crois que cela pourrait être parce que je n'expose pas le port sur lequel la réponse est envoyée. Ma compréhension est que, ce port source est choisi au hasard et je ne suis pas sûr comment je peux exposer ce port. Y a-t-il un moyen de surmonter ce problème?Réception de la réponse http dans un conteneur Docker

+0

Cela n'est pas dû à l'existence ou à l'absence d'un port. Il peut y avoir plusieurs problèmes. Pour commencer, essayez si vous pouvez envoyer une requête ping à n'importe quelle adresse IP publique à partir d'un conteneur et partager votre commande d'exécution de docker. Cela aidera à résoudre les problèmes. Aussi, je m'attends à ce que si vous envoyez une requête HTTP pour traiter A à partir d'un docker externe cela fonctionne correctement ... –

Répondre

0

Ma compréhension est que, ce port source est choisi au hasard et je ne sais pas comment je peux exposer ce port

Il est seulement si votre conteneur fonctionne avec l'option -P.
Si vous exécutez avec -p hostp_port:container_port option (avec container_port étant un port EXPOSE'd dans le Dockerfile de l'image à partir de laquelle le conteneur est en cours d'exécution), cela fonctionnera.

+0

Je ne parle pas de Docker mappant un port interne statique à un port hôte non conflictuel. Je parle de la requête HTTP ouvrant un port source pour la communication à un serveur HTTP (Une référence pour ceci que je peux trouver est: http://stackoverflow.com/questions/2957757/how-can-an-application-use-port- 80-http-without-conflicting-with-browsers) – Phelodas

+0

@Phelodas de sorte que cela dépend de la nature exacte de l'ouverture du service que le port alors. Je ne saurais rien à ce sujet. – VonC