Planetahost VPS
Перейти к основному контенту

Работа с LXC-контейнерами в Proxmox VE

Введение

Что такое LXC и в каких сценариях он выгоднее KVM

LXC (Linux Containers) — лёгкие контейнеры, использующие общее ядро хоста. Они запускаются за секунды, потребляют минимум оперативной памяти и дискового пространства. В отличие от полноценных виртуальных машин KVM, LXC не эмулирует железо, поэтому производительность выше практически без потерь.

Когда LXC выгоднее KVM:
  • Нужно разместить много изолированных окружений на одном сервере (десятки или сотни).
  • Вы разворачиваете веб-сервер, базу данных, кэш или приложение на Linux.
  • Важен быстрый старт и низкое потребление ресурсов.
Отличия и ограничения LXC
  • Общее ядро с хостом — внутри контейнера нельзя установить свою версию ядра или загрузить модули.
  • Некоторые системные вызовы (syscalls) заблокированы для безопасности.
  • Только Linux — FreeBSD, Windows, другие ОС не запустить.

Для большинства веб-проектов эти ограничения не критичны.

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

Все действия выполняются в панели Proxmox VE (обычно доступна по https://IP-адрес-хоста:8006).

Загрузка шаблона (Template)

Перед созданием контейнера необходимо скачать образ системы.

  1. В левом дереве выберите ваш узел (node).
    • image.png

  2. Перейдите на вкладку «local» (или другое хранилище, где хранятся шаблоны).
    • image.png

  3. Внутри выберите «CT Templates».
    • image.png

  4. Нажмите кнопку «Templates» (сверху).
    • image.png

  5. Откроется окно со списком дистрибутивов. Выберите нужный:
    • Alpine Linux — минимальный (~10 МБ).
    • Debian / Ubuntu — самые популярные.
    • CentOS / Rocky / Alma — для RHEL‑совместимости.
    • image.png

  6. Нажмите «Download». Подождите, пока шаблон загрузится.
    • image.png

Создание контейнера: мастер создания

  1. Нажмите правой кнопкой мыши на узле и выберите «Create CT».
    • image.png

  2. Откроется пошаговый мастер.
    • image.png

Общие настройки
  • CT ID — уникальный номер контейнера (например, 102).
    • image.png

  • Hostname — имя внутри контейнера (например, web-server-01).
    • image.png

  • Resource Pool — опционально (если вы используете пулы).
    • image.png

  • Password — задайте пароль для root.
    • image.png

  • (Можно оставить пустым, если будете использовать SSH-ключ на следующем шаге)
  • SSH public key — вставьте содержимое файла ~/.ssh/id_rsa.pub.
    • image.png

Шаблон (Template)
  • Выберите хранилище, куда вы скачали шаблон (например, local).
    • image.png

  • Из выпадающего списка выберите загруженный шаблон (например, debian-12-standard_12.2-1_amd64.tar.zst).
    • image.png

Корневая файловая система (rootfs)
  • Storage — выберите хранилище для диска контейнера (например, local-lvm или local для каталога).
    • image.png

  • Disk size (GiB) — укажите размер диска (например, 8).
    • image.png

  • Mount options — оставьте по умолчанию (noatime и т.д., если не знаете, зачем менять).
    • image.png

Настройки CPU
  • Cores — количество ядер процессора (например, 2).
    • image.png

  • CPU units — относительный вес при конкуренции (по умолчанию 1024).
    • image.png

  • CPU limit — ограничение в виде «максимум ядер» (0 — без ограничений).
    • image.png
Память (Memory) 
  • Memory (MiB) — оперативная память (например, 2048 = 2 ГБ).
    • image.png

  • Swap (MiB) — размер подкачки (например, 512).
    • image.png

Сетевые настройки (Network)
  • Name — оставьте eth0.
    • image.png

  • Bridge — выберите vmbr0 (или другой мост, который смотрит в нужную сеть).
    • image.png

  • IPv4/CIDR — можно выбрать:
    • DHCP — адрес будет получен автоматически.
    • статический — вручную указать 192.168.100.50/24 и ниже Gateway (IPv4) 192.168.100.1.
    • image.png

  • IPv6 — по аналогии (DHCP или статика).
    • image.png

  • Firewall — фильтрует трафик на уровне хоста, можно выключить или включить
    • image.png

DNS (опционально)
  • DNS domain — поисковый домен (например, example.com).
    • image.png

  • DNS servers — через запятую, например 8.8.8.8, 8.8.4.4.
    • image.png

Подтверждение (Confirm)
  • Проверьте все параметры.
    • image.png

  • Нажмите «Finish» — контейнер будет создан, но не запущен автоматически (если вы не поставили галочку «Start after created» в начале мастера).
    • image.png

Совет: После создания вы всегда можете изменить любые настройки (кроме ID) через правую кнопку мыши на контейнере → «Edit settings».

Управление контейнером

После создания контейнер появится в левом дереве под узлом

image.png

Запуск, остановка, уничтожение

  • Запуск: выделите контейнер → нажмите кнопку «Start» в верхней панели.
    • image.png

  • Остановка: кнопка «Stop». Принудительная остановка — «Stop» с выпадающего списка (стрелка рядом).
    • image.png

  • Уничтожение: правой кнопкой по контейнеру → «Remove» → подтвердить. Контейнер будет безвозвратно удалён.
    • image.png

Вход в консоль контейнера

Проще всего открыть доступ к терминалу:

  • Выделите контейнер → нажмите кнопку «Console» в верхней панели.
    • image.png

  • Откроется встроенная VNC‑подобная консоль.
    • image.png

  • Выполните вход с логином root и паролем, который вы задали при создании.
    • image.png

Если вы настроили SSH-ключ, можете подключаться по SSH напрямую к IP-адресу контейнера.

Изменение ресурсов на лету (без остановки)

Большинство параметров можно менять на работающем контейнере:

  1. Выделите контейнер.
    • image.png

  2. Перейдите на вкладку «Resources».
    • image.png

  3. Выберите параметр (Cores, Memory, Swap) и нажмите «Edit».
    • image.png

  4. Измените значение и нажмите «OK».
    • image.png

Изменения применятся мгновенно. Исключение — размер диска (rootfs), его можно увеличить, но уменьшить нельзя, и для применения может потребоваться перезагрузка.

Особенности LXC в Proxmox

При создании контейнера на первом шаге (General) есть галочка «Unprivileged container».

image.png

  • Если галочка СНЯТА) — привилегированный контейнер. Root внутри контейнера = root на хосте. Проще в настройке, но менее безопасен. Используйте только в доверенной среде.
  • Если галочка СТОИТ — непривилегированный контейнер. Root внутри маппится на непривилегированного пользователя хоста (UID 100000+). Это безопасно по умолчанию — даже при взломе контейнера злоумышленник не получит root на хосте. Рекомендованный вариант для production.

Важно: Непривилегированные контейнеры могут иметь ограничения при монтировании некоторых файловых систем или пробросе устройств.

Монтирование хостовых папок (bind mount)

  1. Выделите контейнер → перейдите на вкладку «Resources».
    • image.png

  2. Нажмите кнопку «Add» → выберите «Mount point».
    • image.png

  3. Появится окно:
    • Storage — выберите любое хранилище.
    • Path — точка монтирования внутри контейнера (например, /mnt/backup).
    • image.png

Заключение

LXC-контейнеры в Proxmox VE — это мощный и в то же время простой инструмент для виртуализации на уровне операционной системы. Благодаря веб-интерфейсу даже начинающий пользователь может за пару минут создать готовое окружение: выбрать дистрибутив, назначить ресурсы, настроить сеть и получить доступ по SSH или через консоль.

  • LXC значительно легче и быстрее KVM, но подходит только для Linux-систем и не даёт такой же изоляции.
  • Proxmox VE предлагает удобный мастер создания контейнеров, покрывающий 95% потребностей (ресурсы, сеть, rootfs).
  • Управление контейнером из веб-интерфейса интуитивно понятно: старт, стоп, консоль, изменение параметров на лету — всё в паре кликов.
  • Важно помнить про выбор типа контейнера: непривилегированный для безопасности, привилегированный только для доверенных задач.