是否可以以某种方式指定 docker 容器应该使用哪个 linux 网络接口?我有多个接口,想为不同的容器使用不同的接口。
据我所知,我可以配置默认的 docker 网桥,但我无法为 docker 容器使用几个不同的网桥。
是否可以以某种方式指定 docker 容器应该使用哪个 linux 网络接口?我有多个接口,想为不同的容器使用不同的接口。
据我所知,我可以配置默认的 docker 网桥,但我无法为 docker 容器使用几个不同的网桥。
有几种方法可以回答您的问题。
通常,容器在内部“私有”网络上提供,服务通过端口映射公开。使用这种机制,您只需为-p
选项指定不同的 ip 地址,就可以在不同的接口上公开服务。例如,如果您的主机有:
您可以像这样公开服务eth0
:
docker run -p 192.168.10.10:80:80 httpd mywebserver
在 eth1 上是这样的:
docker run -p 192.168.20.20:5432:5432 postgres mydatabaseserver
在大多数情况下,这就是您想要的。
从技术上讲,将容器直接连接到您的物理接口是可行的,但该过程需要手动干预(即使在 Docker 1.9 中增强了对多个容器网络的支持)。