我制作了一个 docker 容器,在其中设置了 python 3.6 和一些特定的软件包。在那里,我运行一个连接到远程 API 服务的应用程序,该服务具有每个 IP 调用比率限制(即,IP 每分钟不可能向 API 服务发送超过 x 个调用,否则会被阻止)。因此,我想使用同一个容器的多个副本,每个副本都连接到不同的 IP,这样我就可以绕过这个问题。
问题
是否可以为 Linux 容器分配公共(public) IP?如何对 docker 容器进行操作?也许通过代理?
最佳答案
为了将公共(public)IP分配给docker容器,您需要使用Macvlan network driver例如:
Macvlan network driver can be used to assign a MAC address to each container’s virtual network interface, making it appear to be a physical network interface directly connected to the physical network.
此命令将创建一个与给定物理网络接口(interface)桥接的 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 容器并为每个容器分配一个公共(public) IP。
关于linux - 将不同的公共(public)IP分配给同一个Docker容器的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55067209/