我有一个窗口服务,该窗口服务出于某些原因公开了端口。我正在让它在容器中运行,但是似乎无法在容器外部连接到应用程序。 我这样运行容器:
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端点。可以解决。
答案 0 :(得分:0)
容器的环回接口不同于主机的环回接口。如果您在容器上运行服务,则应将其绑定到“ 0.0.0.0”;这将确保容器实际上正在侦听主机上绑定到的端口。