Доступ к службе Windows, размещенной в Docker - PullRequest
0 голосов
/ 27 марта 2019

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

docker run --net=nat -p:8080:8080 [container] 

В коде, который прослушивает сервер, он использует

    _listener = new TcpListener((IPEndPoint)listenEndPoint);//localhost,8080

Если я присоединяюсь к контейнеру и запускаю команду powershell, чтобы подтвердить, что портоткрываю и слушаю, все работает.Это команда powershell:

New-Object System.Net.Sockets.TcpClient("127.0.0.1", 8080)

Есть ли еще какие-то настройки, которые мне нужно сделать, чтобы подключение работало?

Редактировать : в той же службе, гдеЯ слушаю TCP клиентов через код выше, я размещаю конечную точку WCF.Это решает нормально.

1 Ответ

0 голосов
/ 27 марта 2019

Интерфейс loopback контейнера отличается от интерфейса хоста. Если вы запускаете службы в контейнере, вы должны привязать его к «0.0.0.0»; это гарантирует, что контейнер действительно прослушивает порт, к которому он привязан, на хост-компьютере.

...