Docker容器的多个静态IP

Hex*_*lic 8 networking iptables docker

我有一个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.29ContainerB等等.ContainerA的地址范围的任何流量都会转发到ContainerA,而传出的流量来自ContainerA可以选择的范围内的地址.这同样适用于ContainerB.


在此输入图像描述


在此输入图像描述


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

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

该命令的--ip选项docker run似乎接近我所需要的,正如本博文中所解释的那样.不幸的是,它似乎不支持每个容器的多个静态IP.

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

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

小智 0

我认为你可以通过自定义 docker0 网桥来做到这一点,甚至创建自己的网桥