暴露docker集装箱港口
我知道要公开端口容器中的端口,可以使用-p
标志(例如-p 1-100:1-100
)。 但是有没有一种很好的方法可以将容器中的大部分可能的端口暴露给主机? 例如,如果我在虚拟机中的一个容器中运行一个路由器,并且想将容器中的所有端口从32768向上暴露给65535,那么有没有一个好方法可以做到这一点? 现在,我已经尝试使用-p
标志,它抱怨内存分配错误。
NVM。 我发现我的误解。 -P
是我想要的,我想公开和不明确地映射端口。
TL;博士
docker run --net=host ...
Docker为容器提供了不同的联网模式。 默认情况下,networking模式是bridge
,意味着需要公开端口。
如果你使用联网模式host
运行一个容器,那么你将不需要公开/转发端口,因为docker主机和容器将共享相同的networking接口。
在容器中, localhost
将引用泊坞窗主机。 实际上,在容器中打开的任何端口都是在Docker主机networking接口上打开的。