我做了一个docker容器,在其中设置了python 3.6和一些特定的软件包。在那里,我运行了一个应用程序,该应用程序连接到具有按IP调用比率限制的远程API服务(即IP不可能每分钟向API服务发送超过x个调用,否则将被阻止)。结果,我想使用同一个容器的多个副本,每个副本使用不同的IP连接,这样我就可以绕过该问题。
问题
是否可以将公共IP分配给linux容器?如何对Docker容器进行操作?也许通过代理?
答案 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。