Как правильно запустить Docker на Proxmox (и избежать распространенных ошибок)

от virtualizationhowto
0 Комментарии 199 просмотров 5 мин на чтение

Так как большинство энтузиастов домашней виртуализации используют 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, обеспечивает контроль ресурсов, упрощает резервное копирование и восстановление.

Запуск docker-стеков
Запуск docker-стеков

Вариант 1: Запуск Docker в виртуальной машине

Это самый надёжный способ. Вы можете создать виртуальную машину с базовой ОС, например Ubuntu Server, Debian или Rocky Linux, а затем установить Docker и Docker Compose.

Преимущества:

  • Полный контроль над ядром и поддержка всех функций Docker;
  • Простое резервное копирование через снимки Proxmox или Proxmox Backup Server;
  • Изоляция от хоста;
  • Легко переносить и клонировать на другие серверы.

Недостатки:

  • Немного выше расход ресурсов из-за полноценной ОС.

Лучшие практики при использовании Docker в ВМ:

  1. Используйте Debian или Ubuntu Server — обе ОС хорошо поддерживаются Docker.
  2. Установите QEMU guest agent для лучшей интеграции и мониторинга.
  3. Применяйте сетевые адаптеры virtio для максимальной производительности.
  4. Создайте отдельный диск для томов Docker, смонтировав его в /opt или /srv, чтобы разделить данные и систему.
  5. Резервируйте тома с помощью rsync, restic или Proxmox Backup Server, включая этот диск. Можно также использовать Duplicati для резервирования данных контейнеров.
Агент QEMU установлен в виртуальной машине Proxmox
Агент QEMU установлен в виртуальной машине Proxmox

Вариант 2: Запуск Docker внутри контейнера LXC

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

Создание контейнера LXC в Proxmox
Создание контейнера LXC в Proxmox

Преимущества:

  • Минимальное потребление ресурсов и быстрое развертывание;
  • Малый объём хранения;
  • Подходит для небольших приложений и веб-сервисов.

Недостатки:

  • Некоторые функции Docker могут не работать (зависит от модулей ядра);
  • Не все образы корректно запускаются в окружении с общим ядром;
  • Требуется более точная настройка.

Как правильно настроить:

  1. При создании контейнера включите nesting и keyctl в параметрах;
  2. Используйте шаблон Debian или Ubuntu;
  3. Установите Docker официальным скриптом или через пакетный менеджер;
  4. Проверьте поддержку cgroup v2 и наличие модулей overlay и aufs на хосте;
  5. Настройте постоянное хранилище с помощью монтирования Proxmox или bind mount в /opt/appdata.

Такой подход отлично подходит для лёгких приложений, например Nginx Proxy Manager, Dozzle или AdGuard Home. Если же возникают ошибки, связанные с ядром или правами, лучше перенести контейнеры в ВМ.

Сеть Proxmox при использовании Docker

Сеть — важный аспект, требующий планирования. И Proxmox, и Docker используют мосты, и при неаккуратной настройке возможны конфликты. Лучше запускать Docker в изолированной среде — внутри LXC или ВМ.

Сети Docker
Сети Docker
  • Оставьте мост 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
Освобождение места на хосте Docker

Такое разделение облегчает создание снимков, миграцию и резервное копирование данных, не затрагивая систему.

Резервное копирование 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 для визуализации метрик.

cAdvisor показывает метрики Docker
cAdvisor показывает метрики Docker

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

Просмотр информации cgroup контейнеров в Netdata
Просмотр информации cgroup контейнеров в Netdata

Основные ошибки, которых стоит избегать

  1. Установка Docker на хост Proxmox — вызывает сетевые конфликты и усложняет обновления и бэкапы;
  2. Отсутствие постоянного хранилища — без bind-монтов данные пропадают при пересоздании контейнеров;
  3. Неправильные бэкапы — нужны копии томов, а не только снимки;
  4. Пересечение подсетей — планируйте IP-адреса заранее;
  5. Отсутствие мониторинга — без наблюдения можно пропустить проблемы с ресурсами или местом на диске.

Заключение

Proxmox и Docker — отличные инструменты для домашней лаборатории. Они прекрасно дополняют друг друга. Главное — избегать распространённых ошибок и правильно организовать архитектуру. Используя ВМ или LXC под Docker, вы сможете получить стабильную, безопасную и управляемую среду.

Источник на английском языке

Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

Вам может понравиться

Оставить комментарий