Команда pveam update завершилась ошибкой, и список шаблонов в Proxmox пуст — именно с такой ситуацией чаще всего начинается знакомство с готовыми контейнерами. Готовые LXC-контейнеры в Proxmox VE — это предварительно собранные образы операционных систем и приложений, которые разворачиваются за пару минут вместо полноценной установки ОС с нуля. Если репозиторий шаблонов не обновляется или контейнер не стартует после создания, проблема почти всегда лежит в одной из трёх зон: сеть и DNS на гипервизоре, отсутствие подписки на репозиторий или неверные параметры шаблона.
В этой статье разберём, что представляют собой готовые контейнеры Proxmox, откуда их загружать, как развернуть шаблон через веб-интерфейс и консоль, а также какие ошибки встречаются чаще всего и как их устранить без переустановки гипервизора.
Что такое готовые контейнеры в Proxmox
LXC-контейнер (Linux Containers) — это изолированная среда, которая использует ядро хостовой системы вместо полной виртуализации оборудования. В отличие от виртуальной машины KVM, контейнер не эмулирует железо, поэтому запускается быстрее и потребляет заметно меньше оперативной памяти и дискового пространства. Плата за это — контейнер может работать только с Linux-дистрибутивами и разделяет ядро с хостом.
Готовый контейнер в терминологии Proxmox — это шаблон (template) в формате архива .tar.gz или .tar.zst, содержащий корневую файловую систему выбранного дистрибутива. Из одного шаблона можно создавать неограниченное количество контейнеров, каждый со своими настройками сети, ресурсов и hostname.
Различают два типа готовых образов:
- 📦 Официальные системные шаблоны — чистые дистрибутивы Debian, Ubuntu, AlmaLinux, Rocky Linux и другие, распространяемые через штатный репозиторий Proxmox.
- 🛠️ Шаблоны TurnKey Linux — дистрибутивы с предустановленным ПО: Nextcloud, WordPress, GitLab, файловые серверы. Доступны в том же репозитории.
- 🌐 Сторонние скрипты сообщества — автоматизированные установщики популярных сервисов (например, коллекции скриптов для Home Assistant, Pi-hole, Docker-хостов), которые сами создают и настраивают контейнер.
- 💾 Собственные шаблоны — вы можете преобразовать настроенный контейнер в шаблон и клонировать его внутри своей инфраструктуры.
Где скачать шаблоны контейнеров
Основной источник — встроенный репозиторий Proxmox. В веб-интерфейсе откройте локальное хранилище узла, перейдите в раздел CT Templates и нажмите кнопку Templates. Откроется окно со списком всех доступных образов, который загружается с официального сервера Proxmox.
Тот же результат получается из консоли узла. Сначала обновите каталог доступных шаблонов:
pveam update
Затем посмотрите список доступных образов и скачайте нужный:
pveam available
pveam download local debian-12-standard_12.7-1_amd64.tar.zst
Точное имя файла берите из вывода команды pveam available — версии образов регулярно обновляются, и имя из примера может отличаться от актуального. Скачанные шаблоны хранятся в каталоге /var/lib/vz/template/cache/ при использовании хранилища local.
Развёртывание контейнера из шаблона
После загрузки шаблона нажмите кнопку Create CT в правом верхнем углу веб-интерфейса. Мастер создания проведёт через несколько шагов: указание hostname и пароля root, выбор шаблона, выделение диска, процессорных ядер, оперативной памяти и настройка сети. Минимально для тестового контейнера обычно достаточно одного ядра, 512 МБ ОЗУ и нескольких гигабайт диска — лёгкие дистрибутивы вроде Debian комфортно работают в таких рамках.
Особое внимание уделите двум параметрам. Первый — Unprivileged container: флаг включён по умолчанию, и снимать его стоит только если приложению действительно нужны привилегии, так как непривилегированный режим безопаснее. Второй — сетевая конфигурация: укажите статический IP или DHCP в зависимости от вашей сети, иначе контейнер стартует без связи.
☑️ Перед запуском контейнера проверьте
Через консоль контейнер создаётся командой pct create, например:
pct create 100 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst --hostname test-ct --memory 1024 --cores 2 --net0 name=eth0,bridge=vmbr0,ip=dhcp --password
Запуск выполняется командой pct start 100, а войти в консоль контейнера прямо с хоста можно через pct enter 100 даже без настроенной сети.
Сравнение источников готовых контейнеров
Выбор источника зависит от задачи: для чистой системы под ручную настройку достаточно официального шаблона, а для быстрого поднятия сервиса удобнее готовое решение. Таблица ниже поможет сориентироваться.
| Источник | Что содержит | Кому подходит | Особенности |
|---|---|---|---|
| Официальный репозиторий Proxmox | Чистые дистрибутивы Linux | Опытным администраторам | Максимальный контроль, настройка вручную |
| TurnKey Linux | Дистрибутив с предустановленным приложением | Тем, кто хочет сервис «из коробки» | При первом входе запускается мастер настройки |
| Скрипты сообщества | Автоматическое создание и настройка CT | Домашним пользователям | Требуют доверия к автору скрипта |
| Собственные шаблоны | Ваш настроенный образ | Для тиражирования типовых окружений | Создаются через Convert to Template |
Обратите внимание: образы TurnKey Linux после первого запуска предлагают задать пароли приложений через консольный мастер — это нормальное поведение, а не ошибка установки.
Типичные ошибки и их решение
Самая частая жалоба — пустой список шаблонов при нажатии кнопки Templates. Причина почти всегда в отсутствии интернета у узла или неверном DNS. Проверьте с консоли хоста доступность сети командой ping -c 3 download.proxmox.com и содержимое файла /etc/resolv.conf. Если DNS не прописан, каталог шаблонов просто не сможет загрузиться.
⚠️ Внимание: репозиторий enterprise без активной подписки может выдавать ошибки при обновлении пакетов. Для домашнего использования его заменяют на репозиторий pve-no-subscription, но это не влияет на загрузку шаблонов контейнеров — каталог pveam работает независимо.
Вторая типичная проблема — контейнер создан, но не стартует с ошибкой монтирования корневой файловой системы. Возможная причина — шаблон скачался повреждённым или хранилище не поддерживает нужный тип содержимого. Удалите файл шаблона из /var/lib/vz/template/cache/ и загрузите заново через pveam download.
Третий сценарий — контейнер работает, но внутри нет сети. Проверьте по порядку: привязан ли интерфейс eth0 к правильному мосту (vmbr0), указан ли шлюз на вкладке Network, не конфликтует ли выданный статический IP с другим устройством. Диагностику удобно вести через pct enter и утилиту ip a внутри контейнера.
⚠️ Внимание: не запускайте сторонние скрипты установки командой вида bash -c "$(wget ...)", не изучив их содержимое. Скрипт выполняется на гипервизоре с правами root и получает полный контроль над узлом.
Создание собственного шаблона из контейнера
Если вы настроили контейнер под типовую задачу — например, веб-сервер с нужным набором пакетов, — его можно превратить в шаблон и клонировать. Для этого остановите контейнер, нажмите правой кнопкой на него в дереве ресурсов и выберите Convert to Template. После конвертации контейнер станет недоступен для прямого запуска, зато из него создаются полные и связанные (linked) клоны.
Перед конвертацией стоит очистить образ от лишнего: удалить SSH-ключи хоста, историю команд, логи и временные файлы. Иначе всё это разойдётся по клонам. Также имеет смысл сбросить уникальные идентификаторы вроде machine-id, чтобы клоны не получали одинаковые значения.
Как подготовить контейнер к конвертации в шаблон
Очистите кэш пакетного менеджера (apt clean для Debian/Ubuntu), удалите содержимое /var/log/*, очистите /tmp и /root/.bash_history, обнулите /etc/machine-id (файл оставьте пустым, не удаляйте). После этого выключите контейнер и конвертируйте его в шаблон. При первом запуске клона machine-id сгенерируется заново.
Связанные клоны создаются быстрее и экономят место, так как используют общий базовый образ, но зависят от исходного шаблона — удалить его, пока существуют linked-клоны, не получится. Полные клоны независимы, однако занимают столько же места, сколько оригинал.
Практические рекомендации по эксплуатации
Держите отдельные контейнеры под разные сервисы вместо одного «комбайна». LXC потребляет мало ресурсов, поэтому выделить по контейнеру на каждое приложение — нормальная практика, которая упрощает резервное копирование, обновление и откат при сбоях. Встроенный механизм vzdump позволяет настроить регулярные бэкапы контейнеров через раздел Datacenter → Backup.
Следите за обновлениями внутри контейнеров так же, как на обычных серверах: шаблон — это лишь отправная точка, и установленный из него дистрибутив со временем накапливает уязвимости. Регулярно выполняйте обновление пакетов штатными средствами дистрибутива.
⚠️ Внимание: nesting (запуск Docker внутри LXC) требует включения соответствующей опции в настройках контейнера (Features → Nesting) и работает не во всех конфигурациях хранилищ. Если Docker внутри контейнера не стартует, проверьте эту опцию и тип файловой системы хранилища.
Часто задаваемые вопросы
Чем LXC-контейнер отличается от виртуальной машины в Proxmox?
Контейнер использует ядро хостовой системы и не виртуализирует оборудование, поэтому легче и быстрее ВМ, но поддерживает только Linux. Виртуальная машина KVM эмулирует полноценный компьютер и позволяет запускать любые ОС, включая Windows, ценой большего расхода ресурсов.
Почему список шаблонов пуст при нажатии кнопки Templates?
Чаще всего узел не имеет доступа в интернет или не настроен DNS. Проверьте сетевое подключение хоста, файл /etc/resolv.conf и выполните pveam update в консоли — текст ошибки подскажет направление диагностики.
Можно ли установить Windows в LXC-контейнер?
Нет. LXC работает только с Linux-дистрибутивами, поскольку контейнер делит ядро с хостом. Для Windows используйте виртуальную машину KVM.
Безопасно ли использовать сторонние скрипты создания контейнеров?
Только после изучения их кода. Скрипт выполняется на гипервизоре с правами root, поэтому вредоносный или некачественный сценарий может повредить весь узел. Предпочтительнее официальные шаблоны и ручная установка.
Как изменить ресурсы контейнера после создания?
Через раздел Resources в настройках контейнера: память, ядра и размер диска меняются без пересоздания. Увеличение диска выполняется на работающем контейнере, уменьшение диска штатными средствами не поддерживается.