Docker容器的多个静态IP

问题描述 投票:8回答:1

我有一个Docker主机,应该允许每个容器有多个静态IP地址。然后,容器内的应用程序应该能够选择将流量发送到远程主机的地址(例如ping -I <source-address> example.com)。

想象一下这样的设置:IP地址10.0.0.10 - 10.0.0.19被分配给ContainerA,10.0.0.20 - 10.0.0.29被分配给ContainerB,依此类推。 ContainerA的地址范围的任何流量都会转发到ContainerA,而传出的流量来自ContainerA可以选择的范围内的地址。这同样适用于ContainerB。


enter image description here


enter image description here


默认的--net=bridgemode似乎不支持这一点。我能得到的最接近的是,任何ContainerA地址的传入流量都被正确地转发到容器,但是传出流量始终来自同一个地址。

使用--net=host时,第一个容器将附加到所有可用的IP地址,因此第二个容器将无法打开其IP范围内的套接字。

--ip命令的docker run选项似乎接近我所需要的,正如this blog post所解释的那样。不幸的是,它似乎不支持每个容器的多个静态IP。

如果更方便,使用CIDR子网而不是IP范围就可以了。

我如何配置Docker来实现这一目标?

networking docker iptables
1个回答
0
投票

我认为你可以通过customizing docker0 bridge做到,甚至创建你的own network bridge

© www.soinside.com 2019 - 2024. All rights reserved.