💡 Полезные Советы

Uptime Kuma: Селфхост-мониторинг для ваших сервисов

25.05.26
84

Если у вас крутится зоопарк собственных сервисов, рано или поздно встает вопрос: как узнать, что всё работает, до того, как пользователи (или вы сами) обнаружат ошибку 502?

Uptime Kuma - это легковесный, опенсорсный аналог UptimeRobot, который можно развернуть на своем железе за пару минут. У него красивый интерфейс, поддержка десятков видов уведомлений и богатый функционал для создания публичных статус-страниц.

Для каких проектов подходит Uptime Kuma?

Этот инструмент универсален и отлично вписывается в самые разные сценарии:

  • Домашние лаборатории (Homelab): Идеально для серверов на базе Raspberry Pi или виртуалок в Proxmox. Можно мониторить локальные DNS-фильтры, прокси-менеджеры, умный дом и базы данных, API.
  • Сайты и пет-проекты: Контроль доступности ваших блогов, лендингов и веб-приложений извне
  • Проверка открытых TCP-портов. Удобно, если вы держите, например, сервер по Counter-Strike и хотите знать, когда он "прилег".
  • Контроль SSL-сертификатов: Kuma умеет заранее предупреждать, что сертификат сайта скоро протухнет.

Как установить?

Самый простой, надежный и чистый способ развернуть Uptime Kuma - использовать Docker.

Создайте директорию для проекта, а внутри - файл docker-compose.yml со следующим содержимым:

version: '3.3' # В новый версиях Docker не обязательно указывать!
services:
 uptime-kuma:
   image: louislam/uptime-kuma:1
   container_name: uptime-kuma
   volumes:
     # Обязательно пробрасываем volume, чтобы статистика не пропала при рестарте контейнера.
     # Хранить данные лучше на надежном носителе (например, eMMC или HDD).
     - ./uptime-kuma-data:/app/data
     # Раскомментируйте строку ниже, если планируете мониторить другие Docker-контейнеры
     # - /var/run/docker.sock:/var/run/docker.sock
   ports:
     - "3001:3001"
   restart: unless-stopped

После этого запускаем контейнер:

docker-compose up -d

Готово! Теперь интерфейс доступен по адресу: http://<IP_вашего_сервера>:3001.

Базовая настройка: с чего начать?

При первом входе система попросит создать учетную запись администратора. Дальше начинается самое интересное:

  1. Добавление мониторов:
       Нажмите "+ Новый монитор". Выберите тип (HTTP/HTTPS для сайтов, Ping для хостов, TCP Port для баз данных или игр). Укажите адрес и интервал проверок.
       Лайфхак: Если у вас бывают микроразрывы сети и выскакивают ошибки вроде ECONNRESET, увеличьте параметр "Количество повторных попыток" (Retries) до 2-3. Это избавит от ложных срабатываний.
  2. Настройка уведомлений (Алертов):
       Зайдите в настройки монитора -> "Настроить уведомления". Uptime Kuma поддерживает всё: от Email и Webhooks до Telegram и Discord. Проще всего создать Telegram-бота через BotFather, вписать его токен в Kuma и получать моментальные пуши о падении сервисов прямо в мессенджер.

  3. Публичные страницы статуса (Status Pages):
       В верхнем меню есть кнопка "Страницы статуса". Там можно собрать красивый дашборд с зелеными полосками аптайма, добавить свой логотип, разделить сервисы по группам (например, "Внешние сайты" и "Внутренняя инфраструктура") и выставить это всё в открытый доступ, чтобы ваши пользователи всегда видели актуальное состояние проектов.

Работа с инцидентами (Ручное информирование)

Автоматика - это хорошо, но иногда сервер уходит в оффлайн по вашей инициативе. Например, вы планируете провести обслуживание Raspberry Pi 5 (Сервера), обновить ядро или восстановить систему из бэкапа на eMMC диске. Чтобы на странице статуса не появилась пугающая красная полоса "Недоступен", в Uptime Kuma есть механизм Инцидентов.

На странице статуса нажмите зеленую кнопку "Создать инцидент". Перед вами появится форма:

  • Название инцидента: Краткая суть (например, "Плановое техническое обслуживание" или "Проблемы с хостинг-провайдером").
  • Содержание инцидента: Подробное описание ситуации. Поле поддерживает синтаксис Markdown, так что текст можно красиво отформатировать, добавить списки или ссылки.
  • Стиль: Выпадающий список позволяет выбрать визуальное оформление плашки, которая появится на дашборде.
    • ИНФО - нейтральное уведомление (полезно для плановых работ).
    • ВНИМАНИЕ - желтый алерт (сервис работает нестабильно).
    • ОШИБКА - красный алерт (всё упало, мы уже чиним).
    • ОСНОВНОЙ / СВЕТЛЫЙ / ТЕМНЫЙ - системные цвета для кастомизации под дизайн вашей страницы.

Как только работы завершатся, инцидент можно "Закрыть", и он уйдет в историю, а пользователи увидят, что проблема решена.

Глоссарий

  • Аптайм (Uptime): Время непрерывной работы вычислительной системы или сервиса с момента последней загрузки. Выражается в процентах (например, 99.9% - отличный показатель).
  • Даунрайм (Downtime): Время простоя, когда сервис недоступен для пользователей по техническим причинам.
  • Дашборд (Dashboard): Информационная панель (доска), на которую выводятся ключевые показатели и графики в удобном для чтения виде. В Uptime Kuma это "Страницы статуса".
  • Монитор (Monitor): Отдельная задача проверки в Uptime Kuma, которая регулярно опрашивает конкретный сервис (сайт, IP-адрес, порт) на предмет его "жизни".
  • Инцидент (Incident): Событие, приводящее к прерыванию работы сервиса или снижению качества его работы. На статус-страницах используется для информирования пользователей о текущих проблемах или плановых работах.
  • Пинг (Ping): Базовая сетевая утилита для проверки целостности и качества соединений. Отправляет эхо-запрос к узлу сети и фиксирует время ответа.
  • Self-hosted (Селфхост): Практика самостоятельного размещения и обслуживания программного обеспечения на собственных серверах, а не использования облачных решений от сторонних компаний.

Uptime Kuma работает по принципу "настроил и забыл", потребляет минимум ресурсов.

Бонус: Мониторинг с Grafana и Prometheus

Встроенные публичные "Страницы статуса" в Uptime Kuma отлично подходят для пользователей вашего сайта. Но если вы лично хотите видеть максимально подробную картину с графиками задержек до миллисекунды, историю SSL-сертификатов и глубокую аналитику - данные нужно выводить в Grafana.

Uptime Kuma спроектирована по всем канонам современного мониторинга и умеет отдавать свои метрики в формате базы данных Prometheus (по адресу http://<ваш-ip>:3001/metrics).

Как это работает на практике:

  • Вы разворачиваете контейнер с базой данных Prometheus и указываете ему забирать метрики из Uptime Kuma (добавив блок в prometheus.yml).

    Пример:

    global:
      scrape_interval: 15s
    
    scrape_configs:
      - job_name: 'node-exporter'
        static_configs:
          - targets: ['node-exporter:9100']
    
      - job_name: 'cadvisor'
        static_configs:
          - targets: ['cadvisor:8080']
    
      - job_name: 'uptime-kuma'
        basic_auth:
          username: 'Ваш логин'
          password: 'Ваш пароль'
        static_configs:
          - targets: ['uptime-kuma:3001']
  • Разворачиваете контейнер с Grafana и подключаете к ней Prometheus как источник данных (Data Source).
  • Импортируете готовый шаблон дашборда (например, введя ID 18278 или 25062 в разделе Import).

В результате вы получаете роскошную, интерактивную панель управления с детализацией каждого пинга, которую можно тонко настраивать под себя. Это идеальный вариант для главной страницы вашей внутренней панели управления инфраструктурой.

Полное руководство: Установка и настройка AdGuard Home на Raspberry Pi через Docker (с обходом конфликта портов)

20.05.26
173

Чистый интернет во всей домашней сети, блокировка мобильной рекламы, защита от трекеров и полное скрытие DNS-запросов от провайдера - всё это можно реализовать силами одной лишь Raspberry Pi или другим устройством на Linux.

Долгое время королем сетевой блокировки считался Pi-hole, но сегодня индустрия двинулась дальше. AdGuard Home - более современное решение: оно написано на Go, работает "из коробки" с шифрованием (DoH, DoT, DoQ) и поддерживает мощный Adblock-синтаксис фильтров.

В этой статье мы разберем, как правильно развернуть AdGuard Home в Docker на Raspberry Pi, как решить частую проблему занятого 53-го порта (особенно если у вас стоят другие сервисы вроде v2rayA/Xray) и как правильно настроить систему для RU-сегмента.

Подготовка: Решаем проблему 53-го порта

Главная сложность при установке любого DNS-сервера в Docker - борьба за порт 53. Этот порт необходим для работы DNS, но в современных дистрибутивах Linux (включая Raspberry Pi OS и Ubuntu) он часто уже занят системным резолвером (systemd-resolved), встроенным dnsmasq или прокси-глушилками (например, движком Xray).

Перед стартом проверим, свободен ли порт. Выполните команду в терминале малинки:

sudo ss -tulpn | grep :53

Сценарий 1: Порт занят службой systemd-resolved

Если в выводе вы увидели этот процесс, его нужно отключить, чтобы освободить порт для Docker:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf

Сценарий 2: Порт частично занят другими сервисами (Xray, VPN, dnsmasq)

Если вы увидели, что на порту 53 висят другие важные службы (например, на локальных адресах 127.2.0.17 или 10.42.0.1), отключать их нельзя - это сломает ваши туннели или внутреннюю сеть.

Решение: Мы заставим AdGuard Home слушать порт 53 только на основном IP-адресе вашей Raspberry Pi, который смотрит в домашнюю сеть.

Узнайте локальный IP-адрес малинки:

hostname -I

(Допустим, ваш адрес 192.168.1.50. Запомните его, он пригодится при написании Docker Compose).

Шаг 1: Развертывание через Docker Compose (Предполагается, что у Вас уже установлен и настроен Docker)

Создадим отдельную директорию для проекта и конфигурационный файл:

mkdir -p ~/adguard && cd ~/adguard
nano docker-compose.yml

Вставьте в файл следующий конфиг. Внимание: замените 192.168.1.50 на реальный IP-адрес вашей Raspberry Pi!

services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    restart: unless-stopped
    ports:
      # Привязываем DNS к конкретному IP малинки, чтобы избежать конфликтов
      - "192.168.1.50:53:53/tcp"
      - "192.168.1.50:53:53/udp"
      # Веб-панель управления
      - "80:80/tcp"
      # Порт для первичной инициализации      
      - "3000:3000/tcp"  
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

Сохраните файл (Ctrl+O, затем Enter) и закройте редактор (Ctrl+X).

Запускаем контейнер:

docker compose up -d

Шаг 2: Первичная настройка AdGuard Home

Откройте браузер и перейдите по адресу: http://<IP_ВАШЕЙ_МАЛИНКИ>:3000.

Перед вами откроется приветственный мастер установки:

  1. Веб-интерфейс: Оставляйте "Все интерфейсы" и порт 80.
  2. DNS-сервер: Оставляйте "Все интерфейсы" и порт 53.

    Примечание: Внутри контейнера AdGuard должен слушать всё, Docker сам перенаправит трафик с внешнего IP на внутренний.

  3. Нажмите Далее, придумайте логин и надежный пароль для администратора.

После завершения панель управления станет доступна по обычному адресу: http://<IP_ВАШЕЙ_МАЛИНКИ>.

Шаг 3: Настройка шифрования (DNS-over-HTTPS / QUIC)

По умолчанию AdGuard отправляет запросы в сеть в открытом виде. Провайдер может их перехватывать, анализировать и подменять (так работают базовые блокировки сайтов). Защитим наш трафик.

  • В панели управления перейдите в Настройки -> Настройки DNS.
  • В поле Апстрим DNS-серверы удалите всё и вставьте этот список быстрых и зашифрованных серверов:

    https://dns.cloudflare.com/dns-query
    quic://dns.adguard-dns.com
    tls://dns.quad9.net
    https://dns.google/dns-query
  • Ниже в режиме маршрутизации выберите "Параллельные запросы" - AdGuard будет опрашивать все серверы одновременно и выбирать самый быстрый ответ. Это ускорит загрузку сайтов.
  • В поле Серверы начальной загрузки (Bootstrap DNS) вставьте обычные IP-адреса. Они нужны системе только для того, чтобы в первый раз узнать координаты зашифрованных серверов:

    9.9.9.10
    149.112.112.10
    2620:fe::10
    2620:fe::fe:10
    1.1.1.1
    1.0.0.1
    8.8.8.8
    9.9.9.9
  • Нажмите Проверить апстримы и, если всё ок, нажмите Применить.

Шаг 4: Подключаем лучшие фильтры для рунета (и где искать пропавшие списки)

Чтобы не перегружать оперативную память Raspberry Pi и не вызывать "поломку" нормальных сайтов, списки блокировок нужно подбирать аккуратно. В последних версиях AdGuard Home разработчики сильно почистили встроенные каталоги.

Перейдите в Фильтры -> Черные списки DNS -> Добавить черный список

Рекомендуемый сбалансированный набор:

  • Общие: AdGuard DNS filter (включен по умолчанию, отлично режет базовую рекламу и трекеры) и OISD Blocklist Full (идеальный агрегатор без ложных срабатываний)..
  • Региональные: AdGuard Russian filter и RU AdList (без них реклама Яндекса, Mail.ru и локальных сетей будет пролетать).
  • Безопасность: Phishing URL Blocklist (PhishTank and OpenPhish), Malicious URL Blocklist (URLhaus) (Они надежно защитят домашнюю сеть от фишинга и вирусов.), WindowsSpyBlocker (глушит телеметрию Windows, не ломая обновления системы).

Куда пропал список для России и защита от трекеров?

Если вы не нашли в меню "Региональные" привычный российский фильтр - не пугайтесь. Дело в том, что разработчики AdGuard перенесли все актуальные DNS-блокировки для России (и правила против трекеров) прямо в базовый AdGuard DNS filter. Технически, вы уже защищены от отечественной рекламы "из коробки".

Как добавить кастомные списки вручную (Для продвинутых):

Для максимальной, бескомпромиссной фильтрации специфического мусора в рунете и телеметрии, добавьте пару легендарных списков вручную.
Нажмите "Добавить свой список" и введите:

Нажмите "Сохранить", и AdGuard сам скачает актуальные правила.

Заключение: Направляем трафик

Теперь, когда ваш персональный DNS-сервер готов, нужно направить на него трафик.

У вас есть два пути:

  1. Для всего дома: Зайдите в настройки вашего домашнего роутера, найдите параметры DHCP и в поле Primary DNS (Основной DNS) введите IP-адрес вашей Raspberry Pi. Перезагрузите роутер. Теперь все устройства (телефоны, ТВ, ноутбуки) защищены автоматически.
  2. Для одного устройства: Если не хотите трогать роутер, зайдите в сетевые настройки конкретного ПК или смартфона и укажите IP малинки в качестве DNS вручную.

Что в итоге?

Вы получили полный контроль над своим сетевым трафиком. Вкладка "Журнал запросов" в AdGuard Home наглядно покажет, какие устройства и куда пытаются "стучаться" в фоновом режиме. Если какой-то нужный вам сайт или банк случайно заблокируется - вы сможете внести его в белый список прямо из лога в один клик.

Часто задаваемые вопросы (FAQ)

Почему AdGuard Home не блокирует рекламу внутри видео на YouTube, VK или Rutube?

Потому что эти платформы используют технологию серверной вклейки рекламы (SSAI - Server-Side Ad Insertion). Рекламные ролики и основное видео склеиваются на серверах корпораций и отдаются на ваше устройство с одного и того же домена единым зашифрованным потоком. DNS-фильтр работает на уровне доменов: он либо заблокирует весь видеопоток целиком, либо пропустит его вместе с рекламой. Для блокировки in-stream рекламы вам всё еще понадобятся браузерные расширения (например, uBlock Origin) или модифицированные клиенты (ReVanced).

У меня перестал открываться нужный сайт (Сбербанк, Госуслуги, Кинопоиск). Как починить?

Такое иногда случается - это типичное "ложное срабатывание" одного из черных списков. Не паникуйте! Откройте веб-панель AdGuard Home, перейдите в раздел "Журнал запросов". Найдите там свежую красную строчку с заблокированным доменом вашего сервиса и просто нажмите кнопку "Разблокировать". Сайт моментально заработает.

Что произойдет, если Raspberry Pi зависнет или я выдерну ее из розетки?

Это важный нюанс, о котором нужно помнить. Если вы указали малинку в настройках роутера как единственный DNS-сервер для всего дома, то при её отключении у всех устройств в квартире "пропадет" интернет. Сайты просто перестанут открываться (хотя мессенджеры по прямым IP могут работать). Если вы планируете выключить сервер надолго, не забудьте вернуть в настройках роутера автоматическое получение DNS от провайдера.

Что будет, если дома отключится электричество? Придется ли запускать всё заново?

Нет. В конфигурации нашего Docker-файла прописано правило restart: unless-stopped. Это значит, что как только Raspberry Pi получит питание и загрузится, AdGuard Home запустится автоматически, и интернет у всех устройств в доме восстановится.

Можно ли использовать AdGuard Home одновременно с VPN или обходом DPI (например, v2rayA / Xray)?

Да, они прекрасно работают на одном сервере. Более того, это классическая связка для современного домашнего сервера. Главное правило - грамотно настроить порты (как описано в нашей инструкции), чтобы движок VPN и Docker-контейнер с AdGuard не пытались одновременно занять 53-й порт на всех сетевых интерфейсах. Привязка AdGuard к локальному IP-адресу полностью решает эту проблему.

Глоссарий терминов

  • DNS (Domain Name System) - "телефонная книга" интернета. Переводит понятные человеку адреса (например, riopass.ru) в числовые IP-адреса серверов (например, 192.168.1.1), которые понимают компьютеры.
  • Апстрим DNS (Upstream DNS) - вышестоящий сервер в интернете. Когда вы вводите адрес сайта, а ваш домашний AdGuard Home не знает его IP-адреса, он обращается именно к апстрим-серверам (например, к серверам Cloudflare или Google) за ответом.
  • Серверы начальной загрузки (Bootstrap DNS) - обычные, нешифрованные серверы (например, 1.1.1.1). Они нужны вашему AdGuard только в самую первую секунду работы: чтобы перевести буквенный адрес шифрованного апстрим-сервера (типа dns.cloudflare.com) в цифры и установить с ним защищенное соединение.
  • DNS-over-HTTPS (DoH) / DNS-over-QUIC (DoQ) - современные протоколы шифрования. Заворачивают ваши DNS-запросы в непроницаемый криптографический туннель. Благодаря им ваш интернет-провайдер не видит, на какие сайты вы заходите, и не может подменить ответ (например, выдать страницу-заглушку о блокировке).
  • Порт 53 - стандартная "дверь" в сетевом оборудовании, через которую проходит весь нешифрованный DNS-трафик.
  • DHCP (Dynamic Host Configuration Protocol) - служба на вашем домашнем роутере, которая автоматически раздает IP-адреса и настройки сети (включая адрес нашего нового DNS-сервера) всем подключающимся телефонам, телевизорам и компьютерам.
  • Docker / Docker Compose - система контейнеризации. Позволяет запускать программы (например, AdGuard Home) в изолированной среде со всеми необходимыми зависимостями, чтобы они не конфликтовали с основной операционной системой (Raspberry Pi OS).
  • systemd-resolved - встроенная в Linux системная служба для управления сетевыми именами. Часто является главной головной болью при настройке собственных DNS-серверов, так как намертво занимает порт 53.
  • v2rayA / Xray - мощные современные инструменты для маршрутизации трафика и обхода систем глубокого анализа пакетов (DPI). Часто устанавливаются на тот же сервер, что и AdGuard Home, для создания комплексного домашнего шлюза.
  • SSAI (Server-Side Ad Insertion) - серверная вклейка рекламы. Технология, из-за которой AdGuard Home и другие сетевые блокировщики не могут вырезать рекламу внутри видеороликов на YouTube или VK Video. Видео и реклама отдаются с одного домена единым зашифрованным потоком.
  • Ложные срабатывания (False Positives) - ситуация, когда из-за слишком агрессивных списков фильтрации под блокировку попадает полезный домен. Из-за этого может сломаться верстка сайта или перестать работать авторизация в приложении банка.
  • Локальный IP-адрес - внутренний адрес устройства в вашей домашней сети (обычно начинается на 192.168.x.x или 10.x.x.x). Доступ к нему есть только у устройств, подключенных к вашему домашнему Wi-Fi, из интернета напрямую до него не добраться.

Как установить Docker на Raspberry Pi 5: Полное пошаговое руководство

19.04.26
185

Raspberry Pi 5 - это невероятно мощный мини-компьютер, который идеально подходит для создания домашнего сервера, медиацентра или системы умного дома. Но чтобы выжать из него максимум и не захламлять систему десятками зависимостей, лучше всего использовать контейнеризацию.

Специально для читателей riopass.ru мы подготовили простую и быструю инструкцию по установке Docker на Raspberry Pi 5.

Подготовка системы

Перед установкой любого серьезного программного обеспечения правило номер один - обновить систему. Это поможет избежать конфликтов версий и гарантирует, что вы используете самые свежие пакеты безопасности.

Откройте терминал на вашей Raspberry Pi (или подключитесь к ней по SSH) и введите следующую команду:

sudo apt update && sudo apt upgrade -y

Дождитесь завершения процесса. Если обновлений было много, не лишним будет перезагрузить устройство командой sudo reboot

Установка Docker

Самый простой и официально рекомендуемый способ установки Docker на Raspberry Pi OS (которая базируется на Debian) - использование автоматического скрипта установки.

1. Загрузка установочного скрипта

Скачайте официальный скрипт с сайта Docker с помощью утилиты curl:

curl -fsSL https://get.docker.com -o get-docker.sh

2. Запуск скрипта

Теперь запустите скачанный скрипт с правами суперпользователя:

sudo sh get-docker.sh

Процесс установки займет пару минут. Скрипт самостоятельно определит архитектуру вашего процессора (ARM64 для Raspberry Pi 5) и скачает нужные версии пакетов.

Настройка прав доступа (чтобы работать без sudo)

По умолчанию для выполнения команд Docker требуются права root. Постоянно писать sudo docker - это неудобно и не совсем безопасно. Чтобы этого избежать, нужно добавить вашего текущего пользователя (обычно это пользователь pi или тот, которого вы создали при установке системы) в группу docker

Выполните команду:

sudo usermod -aG docker $USER

Чтобы изменения вступили в силу без перезагрузки всей системы, примените новую группу:

newgrp docker

(Примечание: если после этого команды Docker все равно требуют sudo, просто перезагрузите Raspberry Pi командой sudo reboot).

Проверка установки

Давайте убедимся, что всё прошло успешно. Введите в терминал команду для проверки версии:

docker --version

Вы должны увидеть актуальную версию Docker, например: Docker version 29.4.0, build 9d7ad9f.

А теперь - традиционный тест! Запустим тестовый контейнер hello-world:

docker run hello-world

Если установка прошла успешно, Docker скачает минималистичный образ и выведет на экран приветственное сообщение: "Hello from Docker!".

Настройка автозапуска

Чтобы контейнеры автоматически поднимались после сбоя питания или перезагрузки Raspberry Pi, нужно добавить службу Docker в автозагрузку:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Оставайтесь с riopass.ru, впереди еще много полезных шпаргалок по настройке вашего домашнего сервера!

FAQ: Часто задаваемые вопросы

В: Почему Docker лучше обычной установки программ через apt install?
О: Docker изолирует приложения. Вы можете запустить пять разных версий Python на одной Raspberry Pi 5, и они не будут конфликтовать. Кроме того, удаление программы в Docker - это просто удаление контейнера, после которого в основной системе не остается никакого "мусора".

В: Сильно ли Docker нагружает Raspberry Pi 5?

О: Raspberry Pi 5 обладает мощным процессором и быстрой оперативной памятью, поэтому накладные расходы на работу Docker практически незаметны (обычно это 1-2% ресурсов). Это гораздо эффективнее, чем использование виртуальных машин.

В: Что делать, если Docker не скачивает образы (ошибки "Timeout" или "Connection refused")?

О: В некоторых регионах доступ к официальному Docker Hub может быть ограничен или работать нестабильно. В таких случаях можно использовать зеркала (прокси-репозитории).
Одним из надежных вариантов является прокси от Timeweb. Чтобы им воспользоваться, нужно отредактировать (или создать) файл конфигурации:

sudo nano /etc/docker/daemon.json

Добавьте туда следующий адрес:

{
  "registry-mirrors": ["https://dockerhub.timeweb.cloud/"]
}

После этого перезапустите службу: sudo systemctl restart docker. Теперь образы будут скачиваться через это зеркало.

В: Нужно ли использовать 64-битную ОС для Docker на Raspberry Pi 5?

О: Да, крайне желательно. Raspberry Pi 5 - это 64-битное устройство, и Docker работает эффективнее именно на 64-битных версиях Raspberry Pi OS или Ubuntu. Это также дает доступ к большему количеству современных образов.

В: Как обновить Docker до последней версии?

О: Поскольку мы устанавливали его через официальный репозиторий, Docker будет обновляться автоматически при выполнении стандартной команды обновления системы: sudo apt update && sudo apt upgrade.

Глоссарий

  • Docker (Докер) - специальная платформа, которая позволяет упаковать любую программу со всеми ее настройками и файлами в единый стандартизированный блок. Благодаря этому программа будет одинаково хорошо работать на любом устройстве, будь то ваш ноутбук или Raspberry Pi.
  • Docker Hub - крупнейшее в мире публичное хранилище (реестр) образов Docker. Это своего рода "магазин приложений", откуда скачиваются официальные образы Python, Nginx, PostgreSQL и тысяч других программ.
  • Контейнеризация - сама технология изоляции приложений друг от друга и от основной операционной системы. Контейнеры потребляют гораздо меньше ресурсов, чем традиционные виртуальные машины.
  • Образ (Image) - это готовый неизменяемый шаблон или "чертеж" программы. Скачивая образ (например, hello-world), вы получаете инструкцию для системы, как именно запускать приложение.
  • Контейнер (Container) - это "оживший" образ. Запущенная и работающая в изолированной среде программа. Из одного образа можно запустить несколько одинаковых контейнеров.
  • Репозиторий (Repository) - коллекция образов Docker с одинаковым именем, но разными тегами (версиями). Например, в репозитории python могут быть теги 3.10, 3.12-slim и так далее.
  • Терминал (Командная строка) - текстовый интерфейс для общения с операционной системой. Вместо того чтобы кликать мышкой по иконкам, вы вводите текстовые команды.
  • SSH (Secure Shell) - защищенный протокол, который позволяет вам подключиться к терминалу вашей Raspberry Pi удаленно, например, с основного компьютера или ноутбука.
  • Root / Sudo - Root это главный администратор (суперпользователь) в системах Linux, которому разрешено делать с системой абсолютно всё. Команда sudo (Superuser DO) позволяет обычному пользователю временно выполнить конкретную команду с правами этого самого главного администратора.
  • Скрипт - текстовый файл, содержащий последовательность команд, которые компьютер должен выполнить автоматически (например, скрипт установки Docker скачивает, распаковывает и настраивает все нужные файлы за вас).