#linux #docker #proxy #ip
#linux #docker #прокси #ip
Вопрос:
Я создал контейнер docker, в котором установил python 3.6 и некоторые конкретные программные пакеты. Там я запускаю приложение, которое подключается к удаленной службе API, которая имеет ограничения по соотношению вызовов для каждого IP (т. Е. IP не может отправлять более x вызовов в минуту в службу API, в противном случае она блокируется). В результате я хочу использовать несколько копий одного и того же контейнера, каждая из которых подключается с другим IP, чтобы я мог обойти эту проблему.
ВОПРОС
Возможно ли назначить общедоступный IP-адрес контейнеру Linux? Как это можно сделать с контейнером docker?Может быть, через прокси?
Комментарии:
1. На самом деле этот вопрос касается программирования и разработки контейнеров docker. То, что вы сделали, несправедливо, независимо от того, какой у вас большой опыт работы здесь.
Ответ №1:
Чтобы назначить общедоступный IP-адрес контейнеру docker, вам необходимо использовать, например, сетевой драйвер MacvlanMacvlan:
Сетевой драйвер 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.
Комментарии:
1. Спасибо. Итак, в глазах остального мира каждый экземпляр контейнера имеет другой IP?
2. Да, точно каждый контейнер будет содержать свой собственный общедоступный IP