Экспонирующий узел Сервер, работающий на докере, не работает - PullRequest
0 голосов
/ 24 января 2019

Я запускаю угловое приложение на сервере узлов и в файле server.js. Я указал app.listen(8084,localhost) .. Поэтому, когда я запускаю npm start в контейнере Docker и пытаюсь -p 8084:8084 при запуске Docker, я не смог получитьчто угодно, даже если команда curl внутри моего контейнера curl localhost:8084 давала мне правильный результат.Так что я изменил app.listen(8084) и -p 8084:8084 начал работать .. Я не уверен, почему?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

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

0 голосов
/ 24 января 2019

Когда вы открываете сокет, вам нужно привязать его к какому-либо интерфейсу в вашей системе. Есть предопределенные значения:

0.0.0.0 - все интерфейсы, ваш сервис будет доступен с любого интерфейса

locahost, 127.0.0.1 - привязка локально . Это означает, что услуга не доступна от oustide - это ваш случай.

Вы также можете указать конкретный IP-адрес интерфейса для привязки к нему.

Когда вы запускаете свой контейнер, по умолчанию запускается Docker default bridge network, поэтому ваш контейнер помещается в отдельную сеть и для доступа к ней вам нужно разрешить входящие удаленные соединения в контейнере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...