Как сохранить правила Iptables если установлен docker?
Столкнулся с проблемой сохранения правил фаервола если установлен docker. Сохраняются и его правила соданние автоматически что не хотелось бы. Как правильно организовать работу iptables c докером.
На форуме видел что рекоменуют отключать firewall докера и контейнеры в проде вешать на host
Совет использовать host network namespace однозначно вредный, кроме каких-нибудь личных тестов или специфических случаев типа VPN-клиента в докере. Сетью в докере надо уметь пользоваться с умом, а не пытаться этого избегать.
Что касается сохранения правил, то у меня был когда-то скрипт генерации правил с нуля, а после появления докера понадобилось его правила сохранять, ну я и сделал скрипт, который выделяет и сохраняет текущие правила докера, генерит новые правила и добавляет сохранённые к ним. Но после первичных тестов мы решили для прода просто выключить iptables в докере и работать с сетью через macvlan, так что этот костыль не понадобился.
Сергей Дегтяр, это для варианта, когда в локальную сеть контейнеры выставляются со своими отдельными адресами. Мы заодно получили возможность переносить контейнеры между серверами в пределах датацентра, не дёргая админа-сетевика для переписывания nat, как приходилось делать до этого (и как приходится делать до сих пор на другой платформе с намного более значительным числом приложений).
остановать докер. сохранить правила. запустить докер.
правила докера теперь будут добавляться поверх ваших правил. для вас, как для администратора сервера из правил докера важна только цепочка DOCKER-USER , туда можете добавлять запрещающие и разрешающие правила касающиеся ваших контейнеров.