// Poradnik techniczny // LXC · Kontenery

Kontenery LXC w Proxmox:
kiedy zamiast maszyny wirtualnej

Proxmox VE to nie tylko KVM. Obok pełnych maszyn wirtualnych oferuje kontenery systemowe LXC — lekką alternatywę, która dla wielu obciążeń jest szybsza, gęstsza i tańsza w utrzymaniu. Pokazujemy, kiedy LXC ma sens i jak uruchomić je bezpiecznie.

// 01 · LXC vs maszyna wirtualna

Współdzielony kernel zamiast pełnej wirtualizacji

Kontener LXC nie uruchamia własnego jądra ani BIOS-u — współdzieli kernel hosta Proxmox, izolując procesy przez namespaces i cgroups. W efekcie start trwa ułamek sekundy, narzut pamięci jest minimalny, a na jednym hoście zmieścisz znacznie więcej kontenerów niż pełnych VM.

CechaKontener LXCMaszyna QEMU/KVM
KernelWspółdzielony z hostemWłasny, dowolny
Narzut zasobówBardzo niskiWyższy (pełna VM)
Czas startu< 1 sSekundy–minuty
System gościaTylko LinuxLinux, Windows, BSD…
IzolacjaNa poziomie kernelaPełna (sprzętowa)
Snapshoty / backupTak (ZFS, PBS)Tak (ZFS, PBS)
// 02 · Uprzywilejowane vs nieuprzywilejowane

Bezpieczeństwo: unprivileged domyślnie

Proxmox tworzy kontenery jako nieuprzywilejowane (unprivileged) i tak powinno pozostać. UID/GID kontenera są mapowane na nieuprzywilejowany zakres hosta (root w kontenerze = zwykły użytkownik na hoście), co znacząco ogranicza skutki ewentualnej ucieczki z kontenera.

  • Nieuprzywilejowane: domyślny i rekomendowany wybór dla niemal wszystkich usług — web, API, aplikacje, bazy danych.
  • Uprzywilejowane: tylko gdy naprawdę musisz (np. specyficzny dostęp do urządzeń) — root w kontenerze = root na hoście, większe ryzyko.
  • Nesting / FUSE / keyctl: dodatkowe funkcje (np. Docker w LXC) włączasz świadomie przez „Features”, nie globalnie.
⚠️

Uwaga: obciążenia wymagające własnych modułów jądra, własnego kernela lub systemu innego niż Linux (Windows) nie nadają się do LXC — tam użyj pełnej maszyny QEMU.

// 03 · Storage i dane

Bind mounts i trwałe dane

Kontenery używają wolumenów na storage Proxmox (ZFS, LVM-thin, katalog). Duże, współdzielone zbiory danych podłączamy przez bind mount (pct set <id> -mp0 /tank/dane,mp=/data), zamiast trzymać je w rootfs kontenera — ułatwia to backup, migrację i współdzielenie między kontenerami.

  • Rootfs kontenera trzymaj mały — system i aplikacja, nie dane.
  • Dane użytkowe na osobnym wolumenie ZFS z własnym snapshotem.
  • Przy nieuprzywilejowanych kontenerach pamiętaj o mapowaniu UID/GID dla bind mounts.
// 04 · Backup i produkcja

LXC w realnej infrastrukturze

Kontenery LXC backupujemy tak samo jak VM — przez Proxmox Backup Server (PBS) z deduplikacją i kopiami przyrostowymi, albo przez vzdump. Wspierane są tryby snapshot (na ZFS/LVM-thin) oraz suspend/stop. HA klastra Proxmox obejmuje kontenery tak samo jak maszyny wirtualne.

Typowe, dobre zastosowania LXC: serwery WWW i reverse-proxy, API i mikrousługi, runnery CI, instancje baz danych dev/test, serwery DNS/monitoring. Dla maksymalnej izolacji najemców lub obciążeń niezaufanych — zostań przy pełnych VM.

💡

W praktyce: w migracjach łączymy oba światy — krytyczne i niezaufane obciążenia jako VM, a gęste, jednorodne usługi linuksowe jako LXC. Efekt: większa gęstość i niższy koszt bez utraty bezpieczeństwa tam, gdzie ma ono znaczenie.

Zaplanujemy podział VM / LXC

Pomożemy zdecydować, które obciążenia przenieść do lekkich kontenerów, a które zostawić jako pełne maszyny — z backupem PBS i HA.

⚡ Bezpłatna konsultacja → Wybór typu CPU w Proxmox
// Technical guide // LXC · Containers

LXC containers in Proxmox:
when to use them instead of a VM

Proxmox VE is not just KVM. Alongside full virtual machines it offers LXC system containers — a lightweight alternative that, for many workloads, is faster, denser and cheaper to operate. Here's when LXC makes sense and how to run it safely.

// 01 · LXC vs virtual machine

A shared kernel instead of full virtualisation

An LXC container does not boot its own kernel or BIOS — it shares the Proxmox host kernel, isolating processes via namespaces and cgroups. The result: sub-second startup, minimal memory overhead, and far more containers per host than full VMs.

FeatureLXC containerQEMU/KVM VM
KernelShared with hostOwn, any kernel
Resource overheadVery lowHigher (full VM)
Startup time< 1 sSeconds–minutes
Guest OSLinux onlyLinux, Windows, BSD…
IsolationKernel-levelFull (hardware)
Snapshots / backupYes (ZFS, PBS)Yes (ZFS, PBS)
// 02 · Privileged vs unprivileged

Security: unprivileged by default

Proxmox creates containers as unprivileged and they should stay that way. The container's UID/GID are mapped onto an unprivileged host range (root inside the container = a regular user on the host), greatly limiting the impact of a potential container escape.

  • Unprivileged: the default and recommended choice for almost all services — web, API, applications, databases.
  • Privileged: only when you truly must (e.g. specific device access) — root in the container = root on the host, higher risk.
  • Nesting / FUSE / keyctl: extra capabilities (e.g. Docker inside LXC) are enabled deliberately via "Features", not globally.
⚠️

Note: workloads requiring their own kernel modules, a custom kernel, or a non-Linux OS (Windows) are not suitable for LXC — use a full QEMU VM there.

// 03 · Storage and data

Bind mounts and persistent data

Containers use volumes on Proxmox storage (ZFS, LVM-thin, directory). Large, shared datasets are attached via a bind mount (pct set <id> -mp0 /tank/data,mp=/data) rather than kept in the container rootfs — this simplifies backup, migration and sharing between containers.

  • Keep the container rootfs small — OS and app, not data.
  • Put working data on a separate ZFS volume with its own snapshots.
  • With unprivileged containers, remember UID/GID mapping for bind mounts.
// 04 · Backup and production

LXC in real infrastructure

LXC containers are backed up just like VMs — via Proxmox Backup Server (PBS) with deduplication and incremental copies, or via vzdump. Snapshot mode (on ZFS/LVM-thin) and suspend/stop are supported. Proxmox cluster HA covers containers exactly like virtual machines.

Typical good fits for LXC: web servers and reverse proxies, APIs and microservices, CI runners, dev/test database instances, DNS/monitoring servers. For maximum tenant isolation or untrusted workloads — stick with full VMs.

💡

In practice: in migrations we combine both worlds — critical and untrusted workloads as VMs, dense homogeneous Linux services as LXC. The result: higher density and lower cost without sacrificing security where it matters.

We'll plan your VM / LXC split

We'll help decide which workloads to move into lightweight containers and which to keep as full VMs — with PBS backup and HA.

⚡ Free consultation → Choosing a CPU type in Proxmox