windows 10上的Docker。如何将所有端口映射到相同的主机端口?

windows 10上的Docker。如何将所有端口映射到相同的主机端口?,docker,Docker,我是docker的新手,在windows 10上有两台windows机器。我希望公开所有端口,因为我正在运行多个服务,并且它们是内部的 调用其他NodeJS服务 所以我在windows PowerShell上做了 docker run -dit -p 3000:3000 -p 6379:6379 --name manish1v manish1:1.0 这暴露了我的服务的3000端口和redis 6379端口。但是,它需要另一个随机出现的端口 有时那个端口是6000,有时是6001,有

我是docker的新手,在windows 10上有两台windows机器。我希望公开所有端口,因为我正在运行多个服务,并且它们是内部的 调用其他NodeJS服务

所以我在windows PowerShell上做了

  docker run -dit -p 3000:3000 -p 6379:6379   --name manish1v  manish1:1.0
这暴露了我的服务的3000端口和redis 6379端口。但是,它需要另一个随机出现的端口

有时那个端口是6000,有时是6001,有时是赎金。当我暴露了-P6000:6000,内部是6000,一切正常。 如果它不匹配,事情就要进行折腾了

如何在windows上公开映射到相同端口的所有端口

我试了两件事

  • docker运行--网络主机
  • 不幸的是,windows似乎不支持它

  • docker run-P
  • 不幸的是,它不起作用。因为它似乎在随机端口上公开,但我希望它们在相同的端口上公开


    请提供帮助。

    最好的方法是将您的服务修复为使用已知(或可配置)端口,而不是随机选择某个端口。一个容器同时运行Express服务和Redis也是非常不寻常的,正如您所展示的,您几乎总是在两个单独的容器中运行这两个东西(每个容器都只有一个
    docker run-p
    选项)。正如@David Maze所说,imo。您可以指定一系列端口,但是,如果您甚至不知道这种情况,就不建议这样做,应该有一种方法来指定在主机端发生这种情况的端口。