Linux,  Raspberry Pi

Установка Portainer для Pi-hole на Raspberry Pi

В интернете много статей об установке Pi-hole в домашней сети. Эта статья не исключение, разве что, Pi-hole будет установлен средствами Portainer. Выбор Portainer в качестве окружения для Docker обусловлен отсутствием команд вводимых в терминале.

Что такое Pi-hole

Pi-hole это программное обеспечение с открытым исходным кодом, которое обеспечивает блокировку рекламы в сети. Блокировка осуществляется по спискам, которые содержат популярные домены используемые для рекламы. Есть даже возможность блокировать сетевые запросы к вредоносным доменам, если доменное имя содержится в списке блокировки.

Установка Portainer

Установка Docker на Raspberry Pi мы рассматривали ранее, поэтому перейдем сразу к установке Portainer.

Установить Portainer можно с помощью следующих команд:

restart always — позволяет не запускать каждый раз руками Portainer после перезагрузки Raspberry Pi.

В моем случае Raspberry Pi имеет ip 192.168.0.11

Первый вход и настройка Portainer

Переходим в графический интерфейс Portainer, для это нам потребуется ip адрес нашего Raspberry Pi и порт 9000.

http://192.168.0.11:9000

При первом входе, Portainer попросит установить пароль администратора.

Мы будем подключаться к локальной установке Docker, поэтому нажимаем Local и кнопку Connect.

Добавляем образ Pi-hole с помощью Portainer

В левой панели навигации нажимаем на Containers, выбираем Local, затем кнопку Add container. Дальше потребуется ввести имя для нового контейнера, затем необходимо указать образ докера. Вводим pihole/pihole:latest в качестве имени.

По умолчанию используется сетевой режим мост. В режиме моста необходимо настроить сопоставления портов между хост-системой и контейнером Docker, в котором работает Pi-hole. Кнопка Publish all exposed network ports to random host ports сопоставит все открытые порты на контейнере со случайными портами на хосте. К сожалению, такой вариант неправильный, поэтому порты нужно сопоставить вручную. Для этого жмем на кнопку publish a new network port и сопоставляем порты.

Для работы необходимы следующие порты:

80/TCP, 443/TCP, 53/TCP и 53/UDP.

В случае использовании встроенного DHCP-сервера в Pi-hole, требуется сопоставить порт 67/UDP.

Расширенные настройки контейнера

Необходимо настроить Volumes, чтобы сохранить файлы конфигурации при обновлении образа/контейнера Pi-hole новой версией.

Переходим на вкладку Network, указываем hostname и DNS.

На вкладке Env, добавляем поля для TZ (time zone), DNS и WEBPASSWORD (пароль веб-администрирования для Pi-hole).

Последнее, что нам нужно установить, — это политика перезапуска. Переходим на вкладку Restart policy, а затем нажимаем кнопку Unless stopped. Это означает, что контейнер Pi-hole всегда будет перезапущен, если произойдет сбой, и он также запустится после загрузки Raspberry Pi.

Теперь нажимаем кнопку Deploy the container и ожидаем разворачивания Pi-hole.

На вкладке Containers можно наблюдать статус:

PS

Избегая вопросов в комментариях

На всех скриншотах видно, что Portainer просит произвести обновление на свежую версию. Да, действительно, при установке Portainer используется старая версия, но точно рабочая!