2016-10-25 2 views
2

Я начал грузчиком контейнер с помощью командыНе удается получить доступ к порту на хосте отображаются в докер контейнерный порт

sudo docker run -it -P -d plcdimage 

Изображение строится с использованием Dockerfile, который имеет инструкции ПОДВЕРГАТЬ 8080. Контейнер работает JBoss сервер с приложением развернуты на нем. отображения портов являются:

Command: sudo docker port be1837e849dc 

Output: 8080/tcp -> 0.0.0.0:32771 

Когда я пытаюсь получить доступ к веб-приложение, работающее на JBoss в контейнере из преобразованного порта хоста, используя URL:

http://IPAddressOfHost:32771/

я получаю отказ в соединении ошибки. Ниже приведен результат команды «NETSTAT -tulpn»

(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.) 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  -    
tcp6  0  0 :::9999     :::*     LISTEN  -    
tcp6  0  0 :::22     :::*     LISTEN  -    
tcp6  0  0 :::32771    :::*     LISTEN  -    
udp  0  0 0.0.0.0:68    0.0.0.0:*       -   

Я пытался делать телнет hostip 32771, и это также приводит в связи отказался.

Docker version 1.12.1 
build 23cf638 

В чем может быть причина?

Заранее спасибо

+2

Первое, что нужно проверить, если ваш контейнер действительно прослушивает порт 8080. Вы можете получить IP-адрес вашего контейнера с 'Докер inspect' и попробовать просмотр с хоста на http: // [container-ip]: 8080' –

+1

Каков результат 'sudo docker ps'? – Rao

ответ

1

Я обнаружил, что JBoss-сервер, работающий внутри контейнера не прослушивает 0.0.0.0. Один из вариантов сделать это - при запуске автономного сервера использовать -b 0.0.0.0.

/bin/standalone.sh -b 0.0.0.0