Не каждой задаче нужна полноценная виртуальная машина. Контейнеры LXC в Proxmox VE работают на ядре хоста, запускаются за секунду-две и потребляют гораздо меньше RAM и диска, чем виртуальные машины KVM, поэтому идеально подходят для сайтов, баз данных, мониторинга, прокси и внутренних инструментов на выделенном сервере или хост-ноде. В статье: загрузка шаблонов контейнеров, создание контейнеров в веб-интерфейсе и через pct, назначение публичного или приватного IP, ограничение CPU, памяти, диска и полосы пропускания, запуск Docker внутри контейнера и резервное копирование.
| Контейнер LXC | Виртуальная машина KVM | |
|---|---|---|
| Операционные системы | Только Linux | Linux, Windows, BSD |
| Накладные расходы | Очень низкие, запуск за секунды | Выше, полная загрузка ОС |
| Изоляция | Общее ядро | Полная изоляция |
| Тюнинг ядра и модули | Ограничены | Полный контроль |
| Типичное применение | Собственные сервисы, много небольших сайтов | VPS для клиентов, Windows, хосты Docker |
Шаблоны — это готовые корневые файловые системы Debian, Ubuntu, Rocky Linux, AlmaLinux, Alpine и других дистрибутивов. В веб-интерфейсе откройте local → CT Templates → Templates или воспользуйтесь командной строкой на хосте. Имена файлов шаблонов содержат номер версии, поэтому копируйте точное имя из списка.
pveam update
pveam available --section system | grep -E 'debian-12|ubuntu-24.04|rockylinux-9|alpine'
pveam download local debian-12-standard_12.7-1_amd64.tar.zst # use the exact name from the list
pveam list local
В веб-интерфейсе нажмите Create CT и пройдите мастер: имя хоста и пароль root (или SSH-ключ), шаблон, размер диска, ядра CPU, память и сеть. Оставьте отмеченным Unprivileged container: в таком контейнере root отображается на непривилегированного пользователя хоста, что гораздо безопаснее. Тот же контейнер из командной строки:
pct create 101 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname web01 \
--unprivileged 1 \
--cores 2 --memory 2048 --swap 512 \
--rootfs local-lvm:20 \
--net0 name=eth0,bridge=vmbr0,ip=203.0.113.11/24,gw=203.0.113.1 \
--nameserver 1.1.1.1 \
--ssh-public-keys /root/.ssh/authorized_keys \
--features nesting=1 \
--onboot 1
pct start 101
pct enter 101 # open a root shell inside the container
pct list
Публичный IP: подключите контейнер к мосту, через который идёт ваша публичная сеть (обычно vmbr0), и назначьте ему один из дополнительных IP со шлюзом этой подсети — точно так же, как для ВМ (см. назначение публичного IP виртуальной машине в Proxmox). Если дополнительные IP маршрутизируются на определённый MAC-адрес, укажите его через hwaddr= в параметрах net0.
Приватный NAT: чтобы запустить много контейнеров за единственным IP хоста, подключите их к приватному мосту, например vmbr1, и пробросьте нужные порты, как описано в статье настройка NAT в Proxmox VE:
pct set 102 --net0 name=eth0,bridge=vmbr1,ip=10.10.10.12/24,gw=10.10.10.1
pct reboot 102
Все лимиты можно менять на работающем контейнере; большинство из них применяются сразу.
# CPU: 2 visible cores, but at most 1.5 cores of total CPU time
pct set 101 --cores 2 --cpulimit 1.5
# Memory and swap (MB)
pct set 101 --memory 1024 --swap 256
# Grow the root disk by 10 GB (disks can grow online but not shrink)
pct resize 101 rootfs +10G
# Bandwidth: rate is in MB/s, so 12.5 is roughly 100 Mbps
pct set 101 --net0 name=eth0,bridge=vmbr0,ip=203.0.113.11/24,gw=203.0.113.1,rate=12.5
pct config 101
Docker работает в непривилегированном контейнере, если включена опция nesting. Некоторым образам также нужна функция keyctl.
pct set 101 --features nesting=1,keyctl=1
pct reboot 101
pct enter 101
# inside the container, install Docker as usual (see our Docker guide)
Для продакшн-хостов Docker, особенно с большим числом контейнеров или специальными драйверами хранилища, виртуальная машина KVM по-прежнему остаётся более предсказуемым вариантом.
# Snapshot before risky changes (requires LVM-thin, ZFS or Ceph storage)
pct snapshot 101 before-upgrade
pct rollback 101 before-upgrade
# Full backup with compression (see our Proxmox backup guide for schedules)
vzdump 101 --mode snapshot --storage local --compress zstd
# Clone a container you have prepared as a base
pct clone 101 105 --hostname web05 --full 1
О резервном копировании по расписанию и восстановлении читайте в статье резервные копии и снапшоты в Proxmox VE.
Проверьте IP, префикс и шлюз в pct config, правильность моста и DNS в /etc/resolv.conf внутри контейнера. Изнутри выполните ping -c3 1.1.1.1, а затем ping -c3 google.com, чтобы отделить проблемы маршрутизации от проблем с DNS. Также убедитесь, что контейнер не блокируется файрволом Proxmox.
Напрямую нет. Создайте ВМ и перенесите данные или приложение, например с помощью rsync (см. наше руководство по переносу сервера).
Это зависит от нагрузки, а не от Proxmox. Поскольку накладные расходы контейнеров невелики, сервер с 64 ГБ RAM спокойно вместит десятки небольших сайтов или сервисов. Следите на хосте за RAM, дисковым вводом-выводом и CPU steal и оставляйте запас на пиковые нагрузки.
Если проблема не решена, создайте тикет — техническая поддержка IMIDC работает 24/7. Укажите IP сервера, версию Proxmox VE, ID контейнера и его конфигурацию (pct config ID), а также полный текст ошибки, чтобы мы быстрее нашли причину.