Глиф Учебники

Урок 6. Контейнеры LXC

Курс «Proxmox VE» · урок 6 из 9 · 4 минуты чтения

Контейнер — лёгкая альтернатива виртуальной машине: он запускается за секунды и почти не тратит лишней памяти, но внутри может быть только Linux (в чём разница — в первом уроке). В этом уроке — первый контейнер с Debian.

Шаг 1. Скачайте шаблон

Контейнер создаётся не из ISO, а из шаблона — архива с готовой минимальной системой. Proxmox даёт шаблоны популярных дистрибутивов (Debian, Ubuntu, Alpine, Fedora и других) и готовые приложения TurnKey Linux.

Виртуальная машина образ ISO из ISO Images установка системы как на компьютере ВМ 100 после установки Контейнер шаблон Debian архив .tar.zst распаковка и настройка без установки контейнер 101 за несколько секунд
Машину ставят из образа ISO, как обычный компьютер, а контейнер Proxmox распаковывает из готового шаблона за несколько секунд, без установки.

В дереве выберите узел → local → CT Templates → Templates. В списке найдите debian (раздел system), выберите самую новую версию и нажмите Download. Скачанный шаблон появится в списке CT Templates.

То же в терминале узла:

Bash
pveam update
pveam available --section system

Первая команда обновляет список шаблонов, вторая показывает доступные системы. Скачайте нужный по имени из списка:

Bash
pveam download local debian-13-standard_13.6-1_amd64.tar.zst

Имя взято для примера из списка на ноябрь 2026 года. Шаблоны обновляются, поэтому копируйте имя из вывода pveam available на своём сервере.

Шаг 2. Мастер Create CT

Нажмите Create CT вверху окна. Вкладки:

General

Template — выберите хранилище local и скачанный шаблон Debian.

Disks — корневой диск (rootfs) на local-lvm; для простой службы хватит 8 ГБ.

CPU — Cores 1–2.

Memory — Memory (MiB) 512–1024 и Swap (MiB) 512. Контейнеру нужно меньше памяти, чем машине: ему не нужно своё ядро.

Network

DNS — оставьте пустым: контейнер возьмёт настройки сервера.

Confirm — проверьте и нажмите Finish. Контейнер создаётся за несколько секунд.

Шаг 3. Запустите и войдите

Выберите контейнер → Start, затем Console. Войдите как root с паролем из мастера и обновите систему:

Bash
apt update
apt full-upgrade

Внутри контейнера вы root, поэтому sudo не нужен. Если консоль чёрная, нажмите Enter — приглашение входа появится. Другие способы попасть внутрь — в справке Как открыть консоль контейнера.

Привилегированный и непривилегированный

В непривилегированном контейнере (unprivileged, вариант по умолчанию) root внутри — на самом сервере обычный пользователь без прав. Даже если программа вырвется из контейнера, она окажется бесправной. Разработчики LXC считают такие контейнеры безопасными по устройству.

В привилегированном контейнере root внутри — это root сервера, защиту дают только ограничения AppArmor и seccomp (механизмов ядра Linux, которые запрещают программам отдельные действия). Разработчики LXC не считают выход из такого контейнера уязвимостью, требующей срочного исправления.

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

Непривилегированный вариант по умолчанию внутри контейнера root (UID 0) на сервере это UID 100000 обычный пользователь без прав вырвался наружу — бесправен Привилегированный только для доверенных программ внутри контейнера root (UID 0) на сервере это UID 0 — root сервера защита: AppArmor и seccomp взлом — доступ ко всему серверу
Root непривилегированного контейнера на сервере — бесправный пользователь UID 100000, а root привилегированного — это root самого сервера.

Непривилегированный контейнер не умеет кое-что из того, что требует настоящего root: например, монтировать сетевые папки NFS и SMB изнутри. Обычно такие папки подключают на самом сервере и передают в контейнер точкой монтирования — папкой сервера, подключённой внутрь контейнера. Тип выбирается при создании; поменять его потом можно только через резервную копию и восстановление.

Управление из терминала

Контейнерами управляет команда pct:

Bash
pct list
pct start 101
pct enter 101
pct shutdown 101

pct list показывает контейнеры узла, enter открывает оболочку root внутри контейнера без пароля (выход — exit), shutdown корректно выключает. Настройки контейнера — в файле /etc/pve/lxc/101.conf, их же меняет pct set, например память:

Bash
pct set 101 --memory 1024

Память и число ядер меняются прямо на ходу, без перезапуска.

Ограничения контейнеров

Коротко

Проверьте себя

1. Из чего создаётся контейнер LXC в Proxmox?
2. Почему непривилегированный контейнер безопаснее?
3. Какая команда открывает оболочку root внутри контейнера 101 прямо с узла?
4. Что из этого нельзя сделать с работающим контейнером?