2016-10-21 5 views
1

У меня есть контейнер с скажем, 3 порта, 1000 (nodejs-express), 1001 (python-flask) и 1002 (angular2-client). Когда я используюДокер с несколькими открытыми портами

docker run --name test -d -p 1000:1000 -p 1001:1001 -p 1002:1002 docker_image 

Только сервер Express отлично работает на главном компьютере. Однако, когда я вхожу в контейнер и делаю curl, все три сервера отвечают просто отлично.

Любые идеи о том, что происходит с несколькими связями портов с докером/хостом?

+0

Можете вдаваться в подробности? Что вы имеете в виду, не работая нормально? Вы не можете достичь их или не предоставлять вам то, что хотите. В настоящее время я понимаю, что вы не можете связаться с серверами, кроме выражения из Localhost, но они хорошо работают внутри контейнера. Не могли бы вы вернуть нам «docker ps»? –

+0

Привет Титуан - да, эти порты не работают. Я не могу до них добраться. Вот вывод docker ps: CONTAINER ID IMAGE COMMAND СОЗДАНО СОСТОЯНИЕ ПОРТЫ НАЗВАНИЯ 25f293fb7dbf mvangala/bib: 0.0.1 "/ bin/bash ./run_serv" 19 секунд назад Вверх 13 секунд 0.0.0.0:7998-8000->7998 -8000/tcp dockerflow_test – mvangala

+0

Используемые порты - это фактически 7998,7999 и 8000 (не 1000-1002). Пожалуйста, поделись своими мыслями. Спасибо. – mvangala

ответ

2

После того, как вы выполните следующие действия:

  1. ПОДВЕРГАТЬ порты на DockerFile
  2. установлен флаг -p для каждого порта, чтобы выставить внешне

Вам просто нужно, чтобы убедиться, что ваши услуги позволяет внешние соединения.

i.e. for python колба: http://dixu.me/2015/10/26/How_to_Allow_Remote_Connections_to_Flask_Web_Service/ По умолчанию прослушивание является localhost. Удостоверьтесь, что он прослушивает 0.0.0.0

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