公开 Docker 个容器端口

Exposing Docker Container Ports

我知道要在 docker 容器中公开端口,您可以使用 -p 标志(例如 -p 1-100:1-100)。但是有没有一种很好的方法可以将大部分可能的端口从容器公开到主机?例如,如果我是 运行 虚拟机中容器中的某种路由器,并且我想公开容器中从 32768 向上到 65535 的所有端口,有没有好的方法可以做到这一点?就目前而言,我已经尝试使用 -p 标志,但它抱怨内存分配错误。

Nvm。我想通了我的误会。 -P 是我想要的,我想公开而不是显式映射端口。

tl;博士

docker run --net=host ...

Docker 为容器提供不同的网络模式。默认情况下,网络模式是 bridge,这意味着需要公开端口。

如果您 运行 一个具有网络模式的容器 host 那么您将不需要 expose/forward 端口,因为 docker 主机和容器将共享非常相同的网络接口。

在容器中,localhost 将引用 docker 主机。在容器中打开的任何端口实际上都在 docker 主机网络接口上打开。