Установка Portainer для Pi-hole на Raspberry Pi
В интернете много статей об установке Pi-hole в домашней сети. Эта статья не исключение, разве что, Pi-hole будет установлен средствами Portainer. Выбор Portainer в качестве окружения для Docker обусловлен отсутствием команд вводимых в терминале.
Что такое Pi-hole
Pi-hole это программное обеспечение с открытым исходным кодом, которое обеспечивает блокировку рекламы в сети. Блокировка осуществляется по спискам, которые содержат популярные домены используемые для рекламы. Есть даже возможность блокировать сетевые запросы к вредоносным доменам, если доменное имя содержится в списке блокировки.
Установка Portainer
Установка Docker на Raspberry Pi мы рассматривали ранее, поэтому перейдем сразу к установке Portainer.
Установить Portainer можно с помощью следующих команд:
1 2 |
docker volume create portainer_data docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart always portainer/portainer |
restart always — позволяет не запускать каждый раз руками Portainer после перезагрузки Raspberry Pi.
Первый вход и настройка Portainer
Переходим в графический интерфейс Portainer, для это нам потребуется ip адрес нашего Raspberry Pi и порт 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.
Расширенные настройки контейнера
Необходимо настроить 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 используется старая версия, но точно рабочая!