为同一Docker容器的多个实例分配不同的公共IP

时间:2019-03-08 16:27:22

标签: linux docker proxy ip

我做了一个docker容器,在其中设置了python 3.6和一些特定的软件包。在那里,我运行了一个应用程序,该应用程序连接到具有按IP调用比率限制​​的远程API服务(即IP不可能每分钟向API服务发送超过x个调用,否则将被阻止)。结果,我想使用同一个容器的多个副本,每个副本使用不同的IP连接,这样我就可以绕过该问题。

问题

是否可以将公共IP分配给linux容器?如何对Docker容器进行操作?也许通过代理?

1 个答案:

答案 0 :(得分:1)

要将公共IP分配给Docker容器,您需要使用Macvlan network driver例如:

  

Macvlan网络驱动程序可用于为每个容器的虚拟网络接口分配MAC地址,使其看起来像是直接连接到物理网络的物理网络接口。

此命令将创建一个Macvlan网络,该网络与给定的物理网络接口桥接

docker network create -d macvlan -o macvlan_mode=bridge --subnet=172.16.86.0/24 --gateway=172.16.86.1 -o parent=eth0 pub_net

然后创建一个将使用上述网络的容器:

docker run --name web_container --net=pub_net --ip=172.16.86.2 --mac-address 25-EE-4E-B5-21-48 -itd nginx

现在您在172.16.86.2上运行了一个面向公众的容器,并确保从同一docker映像中可以运行多个docker容器并为每个Docker分配一个公共IP。