Содержание
Так как большинство энтузиастов домашней виртуализации используют Proxmox или планируют это делать в будущем, запуск контейнеров Docker поверх среды Proxmox становится естественным шагом. Proxmox — это виртуализационная платформа корпоративного уровня. Docker остаётся стандартом для запуска контейнеров с приложениями. Совмещение этих технологий — мощное решение, однако у многих возникает вопрос: как сделать это правильно? Можно ли или стоит ли устанавливать Docker прямо на Proxmox? Лучше использовать LXC или полноценную виртуальную машину? Рассмотрим лучшие практики запуска Docker на Proxmox и основные ошибки, которых стоит избегать.
Является ли Proxmox хорошей платформой для запуска контейнеров Docker?
Да. Proxmox поддерживает разные типы виртуализации — как контейнеры Linux (LXC), так и полноценные виртуальные машины. Docker отлично вписывается в эту экосистему, предоставляя гибкость для размещения приложений.
С помощью Docker можно запускать контейнеризированные приложения для автоматизации, медиа-серверов, CI/CD, мониторинга и многого другого. Использование Docker также помогает разделять сервисы — вы можете создать отдельную виртуальную машину или LXC, которая будет служить хостом Docker. Это помогает поддерживать порядок в инфраструктуре и не позволяет одному контейнеру потреблять все системные ресурсы.
Неправильный способ запуска Docker на Proxmox
Рассмотрим распространённую ошибку. Часто возникает соблазн установить Docker прямо на хост Proxmox. Это возможно, но приведёт к множеству проблем и конфликтов.
При установке Docker изменяются сетевые настройки системы:
- Docker изменяет конфигурации сети;
- Манипулирует правилами iptables;
- Может мешать работе виртуальных мостов и сетей, используемых Proxmox для ВМ и LXC;
- Усложняет обновления и восстановление, ведь теперь один хост обслуживает и Proxmox, и Docker;
- При переустановке Proxmox вы рискуете потерять контейнеры и конфигурации.
Лучше запускать Docker внутри виртуальной машины или контейнера LXC, созданного специально для этого. Это изолирует Docker от хоста Proxmox, обеспечивает контроль ресурсов, упрощает резервное копирование и восстановление.

Вариант 1: Запуск Docker в виртуальной машине
Это самый надёжный способ. Вы можете создать виртуальную машину с базовой ОС, например Ubuntu Server, Debian или Rocky Linux, а затем установить Docker и Docker Compose.
Преимущества:
- Полный контроль над ядром и поддержка всех функций Docker;
- Простое резервное копирование через снимки Proxmox или Proxmox Backup Server;
- Изоляция от хоста;
- Легко переносить и клонировать на другие серверы.
Недостатки:
- Немного выше расход ресурсов из-за полноценной ОС.
Лучшие практики при использовании Docker в ВМ:
- Используйте Debian или Ubuntu Server — обе ОС хорошо поддерживаются Docker.
- Установите QEMU guest agent для лучшей интеграции и мониторинга.
- Применяйте сетевые адаптеры virtio для максимальной производительности.
- Создайте отдельный диск для томов Docker, смонтировав его в
/optили/srv, чтобы разделить данные и систему. - Резервируйте тома с помощью rsync, restic или Proxmox Backup Server, включая этот диск. Можно также использовать Duplicati для резервирования данных контейнеров.

Вариант 2: Запуск Docker внутри контейнера LXC
LXC-контейнеры в Proxmox очень эффективны по ресурсам. Они используют ядро хоста, что делает их быстрыми и лёгкими. Однако при запуске Docker в LXC необходимо выполнить некоторые настройки.

Преимущества:
- Минимальное потребление ресурсов и быстрое развертывание;
- Малый объём хранения;
- Подходит для небольших приложений и веб-сервисов.
Недостатки:
- Некоторые функции Docker могут не работать (зависит от модулей ядра);
- Не все образы корректно запускаются в окружении с общим ядром;
- Требуется более точная настройка.
Как правильно настроить:
- При создании контейнера включите nesting и keyctl в параметрах;
- Используйте шаблон Debian или Ubuntu;
- Установите Docker официальным скриптом или через пакетный менеджер;
- Проверьте поддержку cgroup v2 и наличие модулей
overlayиaufsна хосте; - Настройте постоянное хранилище с помощью монтирования Proxmox или bind mount в /opt/appdata.
Такой подход отлично подходит для лёгких приложений, например Nginx Proxy Manager, Dozzle или AdGuard Home. Если же возникают ошибки, связанные с ядром или правами, лучше перенести контейнеры в ВМ.
Сеть Proxmox при использовании Docker
Сеть — важный аспект, требующий планирования. И Proxmox, и Docker используют мосты, и при неаккуратной настройке возможны конфликты. Лучше запускать Docker в изолированной среде — внутри LXC или ВМ.

- Оставьте мост
vmbr0для трафика ВМ и контейнеров; - Используйте драйверы macvlan или ipvlan для прямого подключения контейнеров к сети;
- При необходимости отключите модификацию iptables в Docker, установив “iptables”: false в /etc/docker/daemon.json.
Также можно создать отдельный мост (например, vmbr1) специально для Docker, чтобы управлять IP-адресацией и VLAN.
Хранение данных Docker: рекомендации
По умолчанию Docker хранит данные в /var/lib/docker. Это удобно, но если диск системный, хранилище может быстро заполниться. Лучше смонтировать отдельный диск для постоянных данных Docker, например в /opt/docker или /srv/docker. В Proxmox можно подключить дополнительный виртуальный диск, CephFS или NFS-ресурс.

Такое разделение облегчает создание снимков, миграцию и резервное копирование данных, не затрагивая систему.
Резервное копирование Docker в Proxmox
Контейнеры сами по себе считаются временными. Главное — сохранить тома, конфигурации и образы.
- Снимки ВМ — если Docker работает в ВМ, можно делать полные бэкапы средствами Proxmox Backup Server.
- Синхронизация томов — используйте rsync, rclone или restic для копирования каталога /opt/docker на NAS или в облако.
- Git-репозиторий — храните файлы Compose и .env в приватном репозитории для быстрого восстановления среды.
- Portainer — регулярно экспортируйте настройки стеков и конфигурации.
Лучше всего комбинировать защиту на уровне ВМ и копирование данных. Тогда вы сможете восстановить контейнеры одной командой:
docker compose up -d Мониторинг Docker
Мониторинг помогает отслеживать производительность и потенциальные проблемы. Proxmox предоставляет базовую статистику хоста, но для анализа контейнеров нужны дополнительные инструменты.
Бесплатное решение — связка cAdvisor и Node Exporter с Prometheus и Grafana для визуализации метрик.

Из коммерческих решений с лицензией для домашнего использования можно выделить Netdata — она мониторит и хост Proxmox, и контейнеры одновременно.

Основные ошибки, которых стоит избегать
- Установка Docker на хост Proxmox — вызывает сетевые конфликты и усложняет обновления и бэкапы;
- Отсутствие постоянного хранилища — без bind-монтов данные пропадают при пересоздании контейнеров;
- Неправильные бэкапы — нужны копии томов, а не только снимки;
- Пересечение подсетей — планируйте IP-адреса заранее;
- Отсутствие мониторинга — без наблюдения можно пропустить проблемы с ресурсами или местом на диске.
Заключение
Proxmox и Docker — отличные инструменты для домашней лаборатории. Они прекрасно дополняют друг друга. Главное — избегать распространённых ошибок и правильно организовать архитектуру. Используя ВМ или LXC под Docker, вы сможете получить стабильную, безопасную и управляемую среду.
Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

