簡體   English   中英

為同一個 Docker 容器的多個實例分配不同的公共 IP

[英]Assign different public IPs to several instances of same Docker container

我制作了一個 docker 容器,在其中設置了 python 3.6 和一些特定的軟件包。 在那里,我運行了一個連接到遠程 API 服務的應用程序,該服務具有每個 IP 的調用率限制(即,IP 不可能每分鍾向 API 服務發送超過 x 個調用,否則它會被阻止)。 因此,我想使用同一個容器的多個副本,每個副本都使用不同的 IP 連接,以便我可以繞過該問題。

是否可以將公共 IP 分配給 linux 容器? 如何對 docker 容器進行處理?也許通過代理?

為了將公共 IP 分配給docker容器,您需要使用Macvlan 網絡驅動程序,例如:

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 容器並為每個容器分配一個公共 IP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM