Урок 6. Контейнеры LXC
Контейнер — лёгкая альтернатива виртуальной машине: он запускается за секунды и почти не тратит лишней памяти, но внутри может быть только Linux (в чём разница — в первом уроке). В этом уроке — первый контейнер с Debian.
Шаг 1. Скачайте шаблон
Контейнер создаётся не из ISO, а из шаблона — архива с готовой минимальной системой. Proxmox даёт шаблоны популярных дистрибутивов (Debian, Ubuntu, Alpine, Fedora и других) и готовые приложения TurnKey Linux.
В дереве выберите узел → local → CT Templates → Templates. В списке найдите debian (раздел system), выберите самую новую версию и нажмите Download. Скачанный шаблон появится в списке CT Templates.
То же в терминале узла:
pveam update
pveam available --section systemПервая команда обновляет список шаблонов, вторая показывает доступные системы. Скачайте нужный по имени из списка:
pveam download local debian-13-standard_13.6-1_amd64.tar.zstИмя взято для примера из списка на ноябрь 2026 года. Шаблоны обновляются, поэтому копируйте имя из вывода pveam available на своём сервере.
Шаг 2. Мастер Create CT
Нажмите Create CT вверху окна. Вкладки:
General
- CT ID — номер, например
101(номера общие с машинами); - Hostname — имя системы внутри:
web; - Unprivileged container — оставьте отмеченным (о нём ниже);
- Nesting — оставьте как есть: с этим флажком systemd внутри контейнера может изолировать службы;
- Password — пароль root внутри контейнера;
- SSH public key — можно вставить свой открытый ключ, чтобы входить по SSH без пароля.
Template — выберите хранилище local и скачанный шаблон Debian.
Disks — корневой диск (rootfs) на local-lvm; для простой службы хватит 8 ГБ.
CPU — Cores 1–2.
Memory — Memory (MiB) 512–1024 и Swap (MiB) 512. Контейнеру нужно меньше памяти, чем машине: ему не нужно своё ядро.
Network
- Name —
eth0, Bridge —vmbr0; - IPv4 — DHCP (адрес выдаст роутер) или Static с адресом вида
192.168.1.60/24и шлюзом192.168.1.1.
DNS — оставьте пустым: контейнер возьмёт настройки сервера.
Confirm — проверьте и нажмите Finish. Контейнер создаётся за несколько секунд.
Шаг 3. Запустите и войдите
Выберите контейнер → Start, затем Console. Войдите как root с паролем из мастера и обновите систему:
apt update
apt full-upgradeВнутри контейнера вы root, поэтому sudo не нужен. Если консоль чёрная, нажмите Enter — приглашение входа появится. Другие способы попасть внутрь — в справке Как открыть консоль контейнера.
Привилегированный и непривилегированный
В непривилегированном контейнере (unprivileged, вариант по умолчанию) root внутри — на самом сервере обычный пользователь без прав. Даже если программа вырвется из контейнера, она окажется бесправной. Разработчики LXC считают такие контейнеры безопасными по устройству.
В привилегированном контейнере root внутри — это root сервера, защиту дают только ограничения AppArmor и seccomp (механизмов ядра Linux, которые запрещают программам отдельные действия). Разработчики LXC не считают выход из такого контейнера уязвимостью, требующей срочного исправления.
Привилегированный контейнер ставьте только для программ, которым вы полностью доверяете, и только если непривилегированный не подходит. Взлом программы внутри такого контейнера может дать доступ ко всему серверу и ко всем остальным гостям.
Непривилегированный контейнер не умеет кое-что из того, что требует настоящего root: например, монтировать сетевые папки NFS и SMB изнутри. Обычно такие папки подключают на самом сервере и передают в контейнер точкой монтирования — папкой сервера, подключённой внутрь контейнера. Тип выбирается при создании; поменять его потом можно только через резервную копию и восстановление.
Управление из терминала
Контейнерами управляет команда pct:
pct list
pct start 101
pct enter 101
pct shutdown 101pct list показывает контейнеры узла, enter открывает оболочку root внутри контейнера без пароля (выход — exit), shutdown корректно выключает. Настройки контейнера — в файле /etc/pve/lxc/101.conf, их же меняет pct set, например память:
pct set 101 --memory 1024Память и число ядер меняются прямо на ходу, без перезапуска.
Ограничения контейнеров
- только Linux, и с ядром сервера: программа, которой нужен особый модуль ядра, может не заработать;
- работающий контейнер нельзя перенести без остановки — только перезапуск на другом узле;
- Docker прямо на сервер Proxmox ставить не советуют, а для серьёзной работы с ним документация рекомендует виртуальную машину — особенно если нужен перенос без остановки.
Коротко
- Контейнер создаётся из шаблона:
local→ CT Templates → Templates, илиpveam download. - Мастер Create CT: ID, имя, пароль root, шаблон, диск, память, сеть на
vmbr0. - Непривилегированный контейнер (по умолчанию) безопаснее; привилегированный — только для доверенных программ.
- Вход: Console в интерфейсе или
pct enter <номер>на узле. pct list,pct start,pct shutdown,pct set— управление из терминала.