2015-11-16 5 views
1

Я запускаю процесс, процесс A, внутри контейнера Docker, который отправляет HTTP-запрос процессу B, выполняющийся изначально на хосте. Процесс B получает запрос и после обработки отправляет ответ, который не получает процесс A. Я считаю, что это может быть потому, что я не подвергаю порт, на который отправлен ответ. Я понимаю, что этот исходный порт случайно выбран, и я не уверен, как я могу открыть этот порт. Есть ли способ преодолеть эту проблему?Получение ответа HTTP внутри контейнера Docker

+0

Это не из-за наличия или отсутствия порта. Могут быть несколько проблем. Для начала попробуйте, если вы можете отправить любой публичный IP-адрес из контейнера и поделиться своей командой запуска docker. Это поможет устранить неполадки. Также я ожидаю, что если вы отправляете HTTP-запрос для обработки A из внешнего докера, он работает правильно ... –

ответ

0

Я понимаю, что этот порт источника случайно выбран, и я не знаю, как я могу выставить этот порт

Это только если контейнер работает с опцией -P.
Если вы используете -p hostp_port:container_port option (с контейнером_порт, являющимся портом EXPOSE'd в Dockerfile изображения, с которого работает контейнер), это будет работать.

+0

Я не говорю о том, что Docker сопоставляет статический внутренний порт с неконфликтным хост-портом. Я говорю о HTTP-запросе, открывая исходный порт для связи с HTTP-сервером (одна ссылка для этого я могу найти: http://stackoverflow.com/questions/2957757/how-can-an-application-use-port- 80-http-without-conflicting-with-browsers) – Phelodas

+0

@Phelodas, так что это зависит от точного характера службы, открывающей этот порт. Я ничего не знаю об этом. – VonC

Смежные вопросы