tbh, большую часть работы сделал systemd. PrivateNetworks=yes автоматически запульнул докер в изолированный неймспейс. Оставалось только дописать пачку ExecStartPre, чтобы этому неймспейсу со стороны хоста настроить айпишники, и проложить связь
А ну и фаерволл, мой любимый nftables, чтобы разрешить докеру выходить в ens3. Каеф в том, что правила хоста докер теперь не трогает вообще. Не каеф в том, что пулять в докера пакетами придётся вручную, но мне наверное даже лучше будет так, вручную контроллировать открытые порты
А да, вот ссылка на мануал
https://wiki.archlinux.org/title/Nftables#Working_with_Docker
имхо, это самый красивый способ заставить докер работать с nftables :ageblobcat: