Подключите клиент websocket в док-контейнере к серверу websocket хоста - PullRequest
0 голосов
/ 30 августа 2018

На моем хосте запущен сервер веб-сокетов, прослушивающий порт 8080. В контейнере Docker я развернул клиент websocket, прослушивающий указанный сервер, используя следующий фрагмент:

connect_url="ws://0.0.0.0:80/"

и, открывая / отображая порт 80 контейнера на порт 8080 хоста.

Dockerfile:

EXPOSE 80

Когда я запустил контейнер:

docker run -p 8080:80 <name>

Но я получаю эту ошибку:

docker: Ответ об ошибке от демона: драйвер не смог запрограммировать внешнее соединение на конечной точке: ошибка при запуске прокси-сервера пользователя: сбой привязки для 0.0.0.0:8080: порт уже выделен.

Теперь я думаю, что эта ошибка связана с тем, что сервер на хосте уже использует порт 8080, поэтому его нельзя сопоставить.

С учетом приведенных данных я просто хотел узнать , как мой клиент веб-сокета в док-контейнере может подключиться к серверу веб-сокета на хосте .

1 Ответ

0 голосов
/ 30 августа 2018

Я думаю, проблема в том, что порт 80 внутри вашего контейнера уже используется, а не 8080 на вашем хост-компьютере. Попробуйте использовать другой порт для подключения сокета внутри вашего док-контейнера вместо 80 (например, порт 777). Затем запустите docker run -p 8080:777 <name>

Кстати, проверьте порт вашей хост-машины уже у пользователя или нет: sudo lsof -i tcp:8080 Если это не так, значит порт 8080 еще не используется. Incase уже используется. Убейте этот процесс на порту 8080: sudo kill -9 your_PID_ID Затем попробуйте снова

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