DNS для контейнеров
Используйте эту схему, если у вас много контейнеров и нужны DNS-логи, которые проще привязать к конкретному сервису.
Проблема
Раздел «Проблема»В типовой схеме один хост запускает много контейнеров и отправляет DNS-запросы в сетевой резолвер вроде Pi-hole или AdGuard Home.
Без маршрутизации DNS по каждому контейнеру запросы смешиваются в одну «корзину». Это затрудняет поиск конкретного сервиса, который делает подозрительные или вредоносные запросы.
Решение
Раздел «Решение»Запустите отдельный контейнер AdGuard Home как DNS-эндпоинт для остальных контейнеров.
Затем направьте reverse DNS upstream на Docker DNS хоста, чтобы видеть имена контейнеров вместо «сырых» IP.

Общий поток:
-
Создайте bridge-сеть со статической подсетью для вашего стека.
-
Запустите AdGuard Home с фиксированным IP в этой подсети.
-
Назначьте статические IP остальным контейнерам.
-
Укажите AdGuard Home как DNS в каждом контейнере.
-
Добавьте
depends_on, чтобы сервисы стартовали после AdGuard Home.docker-compose.yaml networks:internal:driver: bridgeipam:config:- subnet: 172.20.0.0/16services:agh:image: adguard/adguardhomecontainer_name: aghvolumes:- /path/to/agh/conf:/opt/adguardhome/conf- /path/to/agh/work:/opt/adguardhome/worknetworks:internal:ipv4_address: 172.20.20.20ports:- 13080:80- 13000:3000someapp:networks:internal:ipv4_address: 172.20.0.2dns: 172.20.20.20depends_on:- agh
Конфигурация AdGuard Home
Раздел «Конфигурация AdGuard Home»Пройдите первичную настройку на порту 13000, затем используйте 13080 для web UI.
Общие настройки
Раздел «Общие настройки»Перейдите в Settings > General settings.
- Block domains using filters and hosts files: disabled
- Enable log: enabled
- Query logs rotation:
90days - Ignored domains:
||your-private-domain.tld^ - Enable statistics: enabled
- Statistics retention:
90days - Ignored domains:
||your-private-domain.tld^
DNS settings
Раздел «DNS settings»Перейдите в Settings > DNS settings.
- Upstream DNS servers:
127.0.0.11 - Private reverse DNS servers:
127.0.0.11:53 - Use private reverse DNS resolvers: enabled
- Rate limit:
0