Docker контейнер обновляется заменой контейнера?
Я не выяснял, как это происходит, и сам его не ставил.
Очевидно, настройки как-то сохраняются.
Там нужна доп. настройка, чтобы он получал отдельный IP на роутере.
Я так понимаю Pi-hole это смесь из php и bash?
bash там только установочный скрипт и обновление, насколько я знаю
php, css, js - веб интерфейс (и командная строка, наверное)
FTL - DNS сервер, написанный на C. Собственно, он и отвечает за фильтрацию