Минимальные контейнеры Docker для каждого ПК

Почему небольшой набор контейнеров лучше, чем большой

Прочитав “5 just-enough Docker containers I use on every PC” на XDA, мы пересмотрели свои собственные стеки и сократили две трети того, что запускали. Домашняя лаборатория, которой никто не касается, потому что требует часа на размышления, — это мертвая лаборатория. Небольшой, обдуманный набор контейнеров, охватывающий админ-интерфейс, мониторинг, секреты, блокировку рекламы и обновления, — это версия, к которой мы возвращаемся годами спустя, на Windows с Docker Desktop, на macOS с OrbStack и на Linux с простым Docker Engine.

Мы протестировали восемь контейнеров через полный цикл установки на каждом из этих хостов, затем запустили стек для рабочей недели, чтобы проверить использование ОЗУ, простой процессора и количество обнаруженных ошибок. Всё здесь можно запустить командой docker compose up -d и оно прекрасно работает за брандмауэром домашней сети.

На что обратить внимание в минималистском наборе контейнеров

Быстрое сравнение

Приложение Лучше всего для Потребление в ожидании Веб-интерфейс Лицензия
Portainer Управление контейнерами визуально Низкое Да Community edition free
Uptime Kuma Мониторинг служб и получение оповещений Очень низкое Да MIT
Vaultwarden Самостоятельно размещённый менеджер паролей Очень низкое Да GPLv3
Pi-hole Блокировка рекламы и трекеров на уровне DNS Очень низкое Да EUPL
Watchtower Автоматическое обновление контейнеров Очень низкое Нет веб-интерфейса Apache 2.0
Homepage Личная панель для стека Очень низкое Да GPLv3
Traefik Обратный прокси для остального стека Низкое Да (панель) MIT
Duplicati Резервная копия хоста и томов контейнеров Низкое Да LGPLv2.1

Восемь контейнеров, которые мы запускаем на каждом хосте

1. Portainer, администраторский интерфейс, который делает Docker понятным

Portainer — это браузерная панель управления, которая превращает командную строку Docker в набор экранов. Запуск и остановка контейнеров, загрузка образов, проверка томов, просмотр логов, exec в контейнер, диаграммы сетей — всё это. Для тех, кто не хочет держать в голове последние тридцать команд docker, Portainer — это начало дня.

Где это не работает: Business edition требует лицензию; Community edition охватывает всё, что нужна для домашней лаборатории с одним узлом, но некоторые функции для предприятий (RBAC сверх пары аккаунтов, зашифрованное хранилище секретов) платные.

Цена:

Работает на: Windows Docker Desktop, macOS OrbStack, Docker Engine на Linux.

Загрузить: portainer.io

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

2. Uptime Kuma, монитор, который скажет вам прежде, чем ваша семья узнает

Uptime Kuma — это самостоятельно размещённая страница статуса и система оповещений. Она пингует URL, TCP-порт, базу данных или проверку здоровья контейнера по расписанию, затем показывает доску статуса и отправляет оповещения (Discord, Telegram, email, ntfy), когда что-то сломается. Добавление нового сервиса — это двухминутная форма.

Где это не работает: Не разработана для сотен сервисов (это инструмент для домашней лаборатории, а не Datadog). Собственные перезагрузки оставляют пробел в временной шкале.

Цена:

Работает на: Docker на Windows, macOS, Linux.

Загрузить: Uptime Kuma on GitHub

Вывод: Контейнер, который делает остальной стек видимым. Добавьте его вторым.

3. Vaultwarden, компактный самостоятельный Bitwarden

Vaultwarden — это переимплементация на Rust серверного API Bitwarden. Работает на доле ОЗУ, которую занимает официальный контейнер, использует тот же протокол, что и официальные приложения Bitwarden, и хранит всё в одном файле SQLite, который тривиально резервировать.

Где это не работает: Проект сообщества, не поддерживается Bitwarden. Некоторые функции для предприятий (провайдеры SSO, синхронизация каталогов) заблокированы для платных уровней на размещённом Bitwarden.

Цена:

Работает на: Любом хосте Docker.

Загрузить: Vaultwarden on GitHub

Вывод: Контейнер, который наконец позволяет вам уйти из размещённого менеджера паролей, не теряя синхронизацию между устройствами.

4. Pi-hole, блокировщик рекламы для каждого устройства в сети

Pi-hole запускает DNS-сервер, который возвращает ничего для доменов в его чёрных списках. Направьте DNS вашего маршрутизатора на контейнер Pi-hole, и каждое устройство в сети (телефоны, телевизоры, принтеры) внезапно теряет связи с рекламой и трекерами на уровне DNS, без установки на каждом устройстве.

Где это не работает: Некоторые сервисы полагаются на домены трекеров для работы ссылок; мышечная память белого списка требует неделю. Блокировки только HTTPS всё ещё пропускают рекламу, подаваемую с того же домена, что и сайт.

Цена:

Работает на: Docker на любом хосте; счастлив на всегда включённом хосте.

Загрузить: pi-hole.net

Вывод: Единственный контейнер, который меняет то, что видит вся семья, что хороший результат за десять минут compose.

5. Watchtower, дворник, который держит контейнеры свежими

Watchtower следит за вашими другими контейнерами, проверяет новые образы и загружает плюс перезагружает по расписанию, которое вы установили. Добавьте уведомление Discord или Slack, и каждое утро вы получаете сводку того, что обновилось ночью.

Где это не работает: Автоматические обновления могут сломать запущённые сервисы, если образ поставляет плохой релиз. Привязка к конкретным тегам или использование фильтров меток — это смягчение.

Цена:

Работает на: Любом хосте Docker.

Загрузить: containrrr.dev/watchtower

Вывод: Контейнер, который помешает остальному стеку гнить.

6. Homepage, панель, которая делает стек находимым

Homepage — это лёгкая панель, которая выводит список ваших сервисов с иконками, проверками здоровья и интеграциями, которые показывают живые данные (статус Uptime Kuma, счётчики Portainer, очереди Sonarr, если вы его запускаете). Добавьте её в закладки в каждом браузере, и вы никогда не потеряете URL контейнера.

Где это не работает: Конфигурация — это YAML на диске; хорошая часть в том, что она живёт в git, плохая часть в том, что это не пользовательский интерфейс click-to-add.

Цена:

Работает на: Docker на любом хосте.

Загрузить: Homepage on GitHub

Вывод: Контейнер, который превращает остальной стек из “URLs, которые я помню” в настоящую входную дверь.

7. Traefik, обратный прокси, через который общается остальной стек

Traefik — это обратный прокси, который позволяет каждому другому контейнеру отвечать на его собственный поддомен (portainer.home, kuma.home, vault.home) вместо запоминания номеров портов. Он следит за метками Docker и автоматически обновляет маршрутизацию, поэтому добавление нового контейнера с публичным URL требует три строки метки и применение compose.

Где это не работает: Первое развёртывание Traefik имеет больше ручек, чем другие; метки маршрутизатора и настройка TLS-резолвера требуют внимательное чтение документов.

Цена:

Работает на: Любом хосте Docker.

Загрузить: traefik.io

Вывод: Единственный контейнер, который меняет весь стек с “IPs и портов” на “понятные URL”.

8. Duplicati, резервная копия, которая защищает тома контейнеров

Duplicati — это клиент резервного копирования для остального стека. Направьте его на ваши тома Docker и bind mounts, выберите назначение (локально, SSH, S3, B2, WebDAV), установите расписание, и каждую ночь важные данные получают зашифрованную, дедублированную резервную копию вне хоста.

Где это не работает: Веб-интерфейс функционален, а не полирован. Рабочие процессы восстановления требуют прохождение в первый раз.

Цена:

Работает на: Docker на любом хосте.

Загрузить: duplicati.com

Вывод: Контейнер, который люди пропускают, а затем жалеют, когда диск умирает. Добавьте его рано.

Как выбрать правильный минималистский стек

ЧастоЗадаваемые вопросы

Эти контейнеры работают на Windows ПК с Docker Desktop?

Да. Каждый из восьми поставляет официальный образ multi-arch (linux/amd64 и linux/arm64), который работает идентично на Docker Desktop для Windows, OrbStack на macOS и Docker Engine на Linux.

Сколько ОЗУ использует этот стек в режиме ожидания?

На Raspberry Pi 5 с 4GB и на небольшом мини-ПК с 8GB восемь контейнеров вместе используют низкие сотни мегабайт ОЗУ в режиме ожидания. Vaultwarden и Pi-hole — самые лёгкие; Traefik и Duplicati растут кратко во время активной работы.

Безопасно ли оставлять Watchtower на автоматических обновлениях?

В основном. Более безопасный паттерн — запустить Watchtower с фильтрами меток, поэтому обновляются только контейнеры, помеченные вами как “безопасно для автоматического обновления”, и оставить остальное на ручных обновлениях. Привязка к тегам основных версий — ещё один обычный способ смягчения.

Нужен ли мне Portainer, если я уже комфортно работаю с Docker CLI?

Portainer — это удобный слой. Если вы хорошо с CLI и читаете логи с docker compose logs -f, вы можете его пропустить. Большинство людей, которые его добавляют, перестают его удалять после недели.

Могу ли я запустить этот стек на Synology или QNAP NAS?

Да. Оба производителя поставляют пользовательские интерфейсы Container Manager, которые читают стандартные файлы compose, и каждый контейнер здесь совместим. На Synology DSM 7 Container Manager может импортировать файл compose напрямую.