正在访问 docker 中托管的 windows 服务

Accessing windows service hosted in docker

出于某种原因,我有一个 window 服务公开端口。我在容器中将其设置为 运行,但我似乎无法连接到容器外部的应用程序。 我运行容器是这样的:

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”;这将确保容器实际上正在监听它在主机上绑定的端口。