Docker无法访问主机上端口80以外的端口

时间:2020-01-14 07:41:22

标签: powershell docker port

我遇到从Docker访问主机上非80端口的问题。我的容器中有一个应用程序需要访问主机上的此端口55555。

我有2个VM-VM1和VM2。 VM1具有泊坞窗和正在运行的容器。 VM2是我用来进行测试的机器。

用于启动容器的命令

docker run -dit --hostname VM1 --name ContainerTest mcr.microsoft.com/dotnet/framework/sdk:3.5-20191008-windowsservercore-ltsc2019

我执行exec -it XXXX powershell以执行所需的PowerShell脚本。我使用test-netconnection来测试我的连接。

问题:

  1. 我尝试从我的容器中运行以下PowerShell脚本test-netconnection -ComputerName "VM1" -port 55555-失败。 但是,我可以运行test-netconnection -ComputerName "VM1" -port 80并且可以接收TcpTestSucceeded。我尝试过的所有其他端口也都失败了。

我尝试了什么:

  1. 我证明了VM1的端口55555已向公众开放,因为我可以ping通,并通过tcp成功地将其从VM2测试到VM1。

  2. 关闭VM1上的防火墙。也没有成功。

我也知道docker有--expose and -p命令公开端口,但是,就我而言,我认为不需要,因为我的目标是从容器而不是其他容器访问主机的端口。方式。

我不明白为什么端口55555仅可从VM2访问VM1,而不能从容器访问VM1,并且该容器只能通过端口80访问VM1。谁能分享一些正在发生的事情?欣赏它。

1 个答案:

答案 0 :(得分:0)

一般来说,有一种服务可以打开端口,而不仅仅是端口号 在docker中,您应该使用docker网络驱动程序覆盖,以便在其他网络中使用docker 希望链接能帮到你 https://docs.docker.com/network/