26. maj 2026

Proxmox LXC i praksis: de fejl jeg selv lavede

Næsten alt i mit homelab kører i LXC-containereProxmox VE frem for fulde virtuelle maskiner. De er lette, starter på et øjeblik og deler kernen med værten. Men der er et par steder hvor jeg har lært det på den hårde måde.

Unprivileged kontra privileged

Proxmox defaulter til unprivileged containere i GUI’en, og det er den rigtige default. Internetvendte tjenester som webservere og reverse proxies bør køre unprivileged af sikkerhedshensyn. DNS, proxies, overvågning og lette tjenester er perfekte LXC-kandidater.

Privileged containere bør du kun bruge til isolerede homelabs uden internetvendte tjenester, til NFS-servere hvor uid-mapping bliver for besværligt, eller til hurtige testmiljøer. Min tommelfingerregel: unprivileged medmindre noget tvinger mig til andet.

Alt bliver til nobody

Den første væg man render ind i med unprivileged containere: hver fil og mappe mappes til nobody (uid 65534). Det giver bøvl så snart du har restriktive rettigheder, eller vil skrive filer med et bestemt uid/gid. Især når du monterer netværksshares ind, introducerer uid-shiftet en hel del kompleksitet du skal forstå før det spiller.

Løsningen er ikke at give op og køre privileged. Det er at lære lxc.idmap at kende og mappe de specifikke uid’er du har brug for. Det tager en eftermiddag at forstå, og så har du det som værktøj resten af tiden.

Docker i en unprivileged LXC er en fælde lige nu

Det her bed mig for nylig. De fleste guides til Docker i LXC online er forældede .. de antager kerne 5.x og runc 1.1.x. På moderne Proxmox med kerne 6.14+ og runc 1.2+ fejler de opskrifter før du overhovedet når frem til de gamle workarounds. Unprivileged Docker er reelt brudt på nye kerner på grund af runc’s per-namespace sysctl-skrivning og Dockers AppArmor-probe.

Næsten enhver fungerende opsætning i forummerne involverer enten kerneændringer på værten, at slå AppArmor helt fra, eller begge dele. Mit råd: vil du køre Docker, så kør det i en VM i stedet, eller i en bevidst privileged LXC du holder isoleret. Det er ikke kampen værd at presse det ind i en unprivileged container på en ny kerne.

LXC kontra VM

Jeg vælger LXC til langt det meste: reverse proxy, databaser, statiske websites, små API’er. Jeg vælger en VM når jeg har brug for en anden kerne, fuld isolation, eller netop Docker-tunge workloads. Reglen er enkel: container når jeg kan, VM når jeg skal.

Kilder og videre læsning

Kommentarer