Полное руководство по установке Pi-hole с помощью Docker

Последнее обновление: 30 августа 2026
Автор: TecnoDigital

Устали от постоянной рекламы при каждом посещении интернета или использовании мобильных приложений? Есть отличное решение — Pi-hole, который, по сути, работает как интеллектуальный DNS-фильтр . Самое приятное, что вам не нужно устанавливать ничего на каждое устройство в вашем доме; система работает из ядра вашей сети, перехватывая и блокируя нежелательный контент еще до того, как он попадет на ваш экран.

Для настройки этой системы сегодня наиболее разумным вариантом является использование Docker. Разместив Pi-hole в контейнере, вы избегаете засорения операционной системы вашего компьютера, значительно упрощаете обновления и получаете максимальную отдачу от вашего оборудования — будь то Raspberry Pi, старый сервер или даже виртуальная машина под управлением Ubuntu или Debian — без каких-либо конфликтов служб.

Блокируйте рекламу с помощью Pi-hole
Связанная статья:
Полное руководство по блокировке рекламы с помощью Pi-hole

Предварительные условия и подготовка площадки

Прежде чем углубиться в детали, стоит отметить, что Pi-hole чрезвычайно легковесен. Для его бесперебойной работы требуется всего около 512 МБ оперативной памяти и от 2 до 4 ГБ дискового пространства. Что касается операционной системы, он отлично работает с дистрибутивами, использующими systemd или sysvinit, такими как Debian, Ubuntu, Fedora или Raspberry Pi OS.

Ключевым моментом является сеть. Для стабильной работы системы Pi-hole требуется статический IP-адрес . Если вы не хотите возиться с ручной настройкой сервера, вы можете зарезервировать IP-адрес на своем маршрутизаторе, чтобы он всегда назначал один и тот же адрес компьютеру, на котором размещен контейнер.

  Что такое Webminal: онлайн-терминал Linux для обучения

Развертывание Pi-hole с использованием Docker

Простейший способ настроить это — использовать файл docker-compose.yml . Этот метод позволяет определить всю конфигурацию сразу. Крайне важно сопоставить тома (например, /etc/pihole и /etc-dnsmasq.d) с локальными папками на вашем хосте, чтобы при обновлении образа контейнера вы не потеряли все свои конфигурации или черные списки.

Микрокомпьютер Raspberry Pi в прозрачном корпусе, представляющий собой аппаратную часть сервера Pi-hole.
Связанная статья:
Полное руководство по Pi-hole и Unbound для обеспечения конфиденциальности в интернете.

В конфигурационном файле обратите внимание на порты. Порт 53 — это основной порт DNS, и он должен быть свободен. Если вы видите, что контейнер не запускается, вероятно, этот порт на хосте используется службами systemd-resolved или dnsmasq . В таких случаях вам потребуется отключить конфликтующую службу или настроить мост для перенаправления трафика.

Если вы решите использовать Pi-hole также в качестве DHCP-сервера, не забудьте добавить возможность NET_ADMIN в раздел cap_add файла compose и, желательно, использовать сетевой режим хоста (network_mode: host), чтобы избежать проблем с подключением.

Первоначальная настройка и управление доступом.

После выполнения команды docker-compose up -dСистема будет запущена. Для доступа к панели управления подключитесь к IP-адресу вашего сервера через назначенный вами порт (по умолчанию 80, хотя вы можете изменить его на 8080 или 89, чтобы избежать конфликтов с другими веб-серверами). Если вы не задали пароль в переменной среды... ВЕБ-ПАРОЛЬСистема сгенерирует случайный файл, который вы сможете найти, проверив журналы с помощью команды. docker logs pihole | grep random.

Для дополнительной безопасности лучше как можно скорее сменить пароль. Вы можете получить доступ к контейнерному терминалу, используя... docker exec -it pihole /bin/bash и запустите команду pihole -a -p установить пароль, который вам будет легко запомнить, но который будет сложно запомнить другим.

  5 инструментов для изучения программирования на Python

Фильтрация исходящих запросов и оптимизация DNS

Чтобы Pi-hole знал, к кому обращаться, если не распознает адрес, необходимо настроить вышестоящий DNS-сервер. Очень надежный вариант — Quad9 ; просто выберите его отфильтрованные серверы (например, 9.9.9.9) на вкладке настроек DNS. Это добавит дополнительный уровень безопасности и конфиденциальности к вашему просмотру веб-страниц.

В основе Pi-hole лежат списки блокировки. Если вы хотите начать с чего-то надежного, можете добавить список Стивена Блэка . При каждом изменении списков, будь то удаление записей с помощью SQLite3 или добавление новых URL-адресов, необходимо перейти в «Инструменты» и запустить команду «Обновить Gravity» , чтобы база данных обновилась и изменения вступили в силу.

Расширенные советы: Локальные домены и управление

Если у вас дома несколько сервисов, вы можете создать локальные доменные имена чтобы избежать необходимости запоминать IP-адреса. Для этого создайте файл с именем... local.list На смонтированном томе Pi-hole укажите формат IP-адреса и домена. Затем создайте конфигурационный файл для dnsmasq, который будет ссылаться на этот список, и перезапустите контейнер.

Для управления системой без доступа к веб-сайту можно использовать очень полезные команды, которые можно запускать с хоста. Например, чтобы добавить домен в черный список, используйте `pihole -b mydomain.com` , а чтобы временно отключить фильтрацию на 10 минут, можно использовать `pihole disable 10m` , что очень удобно, когда легитимный веб-сайт по ошибке заблокирован.

Взять под контроль домашнюю рекламу вполне реально, если сочетать скромное оборудование с гибкостью Docker, убедиться, что порт 53 свободен, и правильно настроить тома для сохранения данных. После настройки DNS на маршрутизаторе и оптимизации списков Gravity вы получите более чистую и гораздо более быструю сеть на всех ваших устройствах.

Крупный план платы Raspberry Pi с видимыми электронными компонентами, микросхемами и разъемами на поверхности, идеально подходящий для иллюстрации основного аппаратного обеспечения, рассматриваемого в этом уроке.
Связанная статья:
Полное руководство по установке и оптимизации AdGuard Home на Raspberry Pi.