2016-10-23 2 views
0

У меня есть сервер на hetzner.de с 16 общедоступными IPv4-адресами.Can Docker автоматически добавляет IP-адреса хосту при запуске контейнера

Сейчас я бегу контейнеры, как это:

sudo docker run -d --name test6 -it -p 5.1.2.3:80:80 sunebeck/apache-php 

Это изначально дают эту ошибку:

Error starting userland proxy: listen tcp 5.1.2.3:80: bind: cannot assign requested address. 

, который фиксируется путем добавления адреса IP-на хосте вручную:

ip addr add 5.1.2.3 dev eth0 

После этого он работает по назначению, и сервис открывается как порт 80 на 5.1.2.3. Однако это немного громоздко, чтобы управлять этим вручную.

Может ли Docker автоматически добавлять/удалять IP-адреса с хоста по мере необходимости?

ответ

1

Докер сам по себе не может этого сделать. За некоторыми исключениями (такими как правила iptables, которые создает Docker при запуске контейнера), контейнер не может изменять сетевую среду хоста.

Самый простой способ решить эту проблему, вероятно, просто организовать, чтобы назначить все ваши адреса интерфейсов, когда хост запускается, используя, например, /etc/sysconfig/network-scripts/ifcfg-<interface> на Fedora/CentOS/RHEL или /etc/network/interfaces на Debian/Ubuntu.

Таким образом, адреса будут доступны на интерфейсах до запуска Docker, и привязка вашего порта будет работать без проблем.

+0

Я думал об этом, но я также не хочу, чтобы физический сервер требовал IP-адрес, если другой хост может использовать тот, который использует его в данный момент. – sune

+0

Но я могу, конечно, решить его, создав сценарий оболочки. Или, может быть, использовать некоторые из существующих сервисов для «оркестровки» больших установок. – sune

+0

Право; Я собирался предположить, что использование уровня оркестровки, такого как Kubernetes, может помочь справиться с этим лучше. Однажды я написал инструмент (называемый [kiwi] (https://github.com/larsks/kiwi)), который сделал именно то, что вы хотите, но он никогда не был ужасно надежным и не работал с современными версиями Kubernetes. – larsks

Смежные вопросы