System.Net.Sockets.SocketException: 'An attempt was made to access a socket in a way forbidden by its access permissions.'
System.Net.Sockets.SocketException: 'An attempt was made to access a socket in a way forbidden by its access permissions.'
我在本地应用程序中有一个 tcp 侦听器,在一个 docker 容器中有另一个应用程序。在 docker 容器中,我公开端口 5555:5555 以在应用程序 docker 与正在侦听 127.0.0.1:5555.
的 tcp 侦听器之间建立套接字
问题是当我在 docker 容器中暴露端口时 (-p 5555:5555) windows 排除这个端口。
enter image description here
这就是为什么我不能 运行 我的 tcp 侦听器,我得到 System.Net.Sockets.SocketException 的原因:'An attempt was made to access a socket in a way forbidden by its access permissions.'
我没有找到解决办法,所以最后我为我的tcp服务器创建了一个新的容器,并在容器之间建立了一个网络。
docker network create --driver bridge nat
在 docker-compose 中定义网络并为我的 tcpServer 提供一个静态 ip
services:
tcpServer:
networks:
test:
ipv4_address: 172.18.192.157
....
networks:
test:
external:
name: nat
我首先尝试设置主机网络,但我意识到此功能在 windows 中不可用。
- 主机网络驱动程序仅适用于 Linux 主机,不支持 Docker Desktop for Mac,Docker Desktop for Windows,或 Docker Windows 服务器
的 EE
我在本地应用程序中有一个 tcp 侦听器,在一个 docker 容器中有另一个应用程序。在 docker 容器中,我公开端口 5555:5555 以在应用程序 docker 与正在侦听 127.0.0.1:5555.
的 tcp 侦听器之间建立套接字问题是当我在 docker 容器中暴露端口时 (-p 5555:5555) windows 排除这个端口。
enter image description here
这就是为什么我不能 运行 我的 tcp 侦听器,我得到 System.Net.Sockets.SocketException 的原因:'An attempt was made to access a socket in a way forbidden by its access permissions.'
我没有找到解决办法,所以最后我为我的tcp服务器创建了一个新的容器,并在容器之间建立了一个网络。
docker network create --driver bridge nat
在 docker-compose 中定义网络并为我的 tcpServer 提供一个静态 ip
services:
tcpServer:
networks:
test:
ipv4_address: 172.18.192.157
....
networks:
test:
external:
name: nat
我首先尝试设置主机网络,但我意识到此功能在 windows 中不可用。
- 主机网络驱动程序仅适用于 Linux 主机,不支持 Docker Desktop for Mac,Docker Desktop for Windows,或 Docker Windows 服务器 的 EE