Работа с LXC-контейнерами в Proxmox VE
Введение
Что такое LXC и в каких сценариях он выгоднее KVM
LXC (Linux Containers) — лёгкие контейнеры, использующие общее ядро хоста. Они запускаются за секунды, потребляют минимум оперативной памяти и дискового пространства. В отличие от полноценных виртуальных машин KVM, LXC не эмулирует железо, поэтому производительность выше практически без потерь.
Когда LXC выгоднее KVM:
- Нужно разместить много изолированных окружений на одном сервере (десятки или сотни).
- Вы разворачиваете веб-сервер, базу данных, кэш или приложение на Linux.
- Важен быстрый старт и низкое потребление ресурсов.
Отличия и ограничения LXC
- Общее ядро с хостом — внутри контейнера нельзя установить свою версию ядра или загрузить модули.
- Некоторые системные вызовы (syscalls) заблокированы для безопасности.
- Только Linux — FreeBSD, Windows, другие ОС не запустить.
Для большинства веб-проектов эти ограничения не критичны.
Создание контейнера
Все действия выполняются в панели Proxmox VE (обычно доступна по https://IP-адрес-хоста:8006).
Загрузка шаблона (Template)
Перед созданием контейнера необходимо скачать образ системы.
- В левом дереве выберите ваш узел (node).
- Перейдите на вкладку «local» (или другое хранилище, где хранятся шаблоны).
- Внутри выберите «CT Templates».
- Нажмите кнопку «Templates» (сверху).
- Откроется окно со списком дистрибутивов. Выберите нужный:
- Нажмите «Download». Подождите, пока шаблон загрузится.
Создание контейнера: мастер создания
Общие настройки
- CT ID — уникальный номер контейнера (например, 102).
- Hostname — имя внутри контейнера (например, web-server-01).
- Resource Pool — опционально (если вы используете пулы).
- Password — задайте пароль для root.
- (Можно оставить пустым, если будете использовать SSH-ключ на следующем шаге)
- SSH public key — вставьте содержимое файла ~/.ssh/id_rsa.pub.
Шаблон (Template)
- Выберите хранилище, куда вы скачали шаблон (например, local).
- Из выпадающего списка выберите загруженный шаблон (например, debian-12-standard_12.2-1_amd64.tar.zst).
Корневая файловая система (rootfs)
- Storage — выберите хранилище для диска контейнера (например, local-lvm или local для каталога).
- Disk size (GiB) — укажите размер диска (например, 8).
- Mount options — оставьте по умолчанию (noatime и т.д., если не знаете, зачем менять).
Настройки CPU
- Cores — количество ядер процессора (например, 2).
- CPU units — относительный вес при конкуренции (по умолчанию 1024).
- CPU limit — ограничение в виде «максимум ядер» (0 — без ограничений).
Память (Memory)
- Memory (MiB) — оперативная память (например, 2048 = 2 ГБ).
- Swap (MiB) — размер подкачки (например, 512).
Сетевые настройки (Network)
- Name — оставьте eth0.
- Bridge — выберите vmbr0 (или другой мост, который смотрит в нужную сеть).
- IPv4/CIDR — можно выбрать:
- IPv6 — по аналогии (DHCP или статика).
- Firewall — фильтрует трафик на уровне хоста, можно выключить или включить
DNS (опционально)
- DNS domain — поисковый домен (например, example.com).
- DNS servers — через запятую, например 8.8.8.8, 8.8.4.4.
Подтверждение (Confirm)
- Проверьте все параметры.
- Нажмите «Finish» — контейнер будет создан, но не запущен автоматически (если вы не поставили галочку «Start after created» в начале мастера).
Совет: После создания вы всегда можете изменить любые настройки (кроме ID) через правую кнопку мыши на контейнере → «Edit settings».
Управление контейнером
После создания контейнер появится в левом дереве под узлом
Запуск, остановка, уничтожение
- Запуск: выделите контейнер → нажмите кнопку «Start» в верхней панели.
- Остановка: кнопка «Stop». Принудительная остановка — «Stop» с выпадающего списка (стрелка рядом).
- Уничтожение: правой кнопкой по контейнеру → «Remove» → подтвердить. Контейнер будет безвозвратно удалён.
Вход в консоль контейнера
Проще всего открыть доступ к терминалу:
- Выделите контейнер → нажмите кнопку «Console» в верхней панели.
- Откроется встроенная VNC‑подобная консоль.
- Выполните вход с логином root и паролем, который вы задали при создании.
Если вы настроили SSH-ключ, можете подключаться по SSH напрямую к IP-адресу контейнера.
Изменение ресурсов на лету (без остановки)
Большинство параметров можно менять на работающем контейнере:
- Выделите контейнер.
- Перейдите на вкладку «Resources».
- Выберите параметр (Cores, Memory, Swap) и нажмите «Edit».
- Измените значение и нажмите «OK».
Изменения применятся мгновенно. Исключение — размер диска (rootfs), его можно увеличить, но уменьшить нельзя, и для применения может потребоваться перезагрузка.
Особенности LXC в Proxmox
При создании контейнера на первом шаге (General) есть галочка «Unprivileged container».
- Если галочка СНЯТА) — привилегированный контейнер. Root внутри контейнера = root на хосте. Проще в настройке, но менее безопасен. Используйте только в доверенной среде.
- Если галочка СТОИТ — непривилегированный контейнер. Root внутри маппится на непривилегированного пользователя хоста (UID 100000+). Это безопасно по умолчанию — даже при взломе контейнера злоумышленник не получит root на хосте. Рекомендованный вариант для production.
Важно: Непривилегированные контейнеры могут иметь ограничения при монтировании некоторых файловых систем или пробросе устройств.
Монтирование хостовых папок (bind mount)
- Выделите контейнер → перейдите на вкладку «Resources».
- Нажмите кнопку «Add» → выберите «Mount point».
- Появится окно:
Заключение
LXC-контейнеры в Proxmox VE — это мощный и в то же время простой инструмент для виртуализации на уровне операционной системы. Благодаря веб-интерфейсу даже начинающий пользователь может за пару минут создать готовое окружение: выбрать дистрибутив, назначить ресурсы, настроить сеть и получить доступ по SSH или через консоль.
- LXC значительно легче и быстрее KVM, но подходит только для Linux-систем и не даёт такой же изоляции.
- Proxmox VE предлагает удобный мастер создания контейнеров, покрывающий 95% потребностей (ресурсы, сеть, rootfs).
- Управление контейнером из веб-интерфейса интуитивно понятно: старт, стоп, консоль, изменение параметров на лету — всё в паре кликов.
- Важно помнить про выбор типа контейнера: непривилегированный для безопасности, привилегированный только для доверенных задач.














































