1.5 KiB
1.5 KiB
Decision: VM vs LXC for Docker Swarm nodes
Date: 2026-01-10
Status: Approved
Author: Chester + FrankGPT
Context
We need to run Docker Swarm manager and worker nodes on Proxmox VE hosts. Two options exist:
- QEMU/KVM Virtual Machines (VMs)
- LXC Containers
Decision
Use VMs for all Docker Swarm nodes.
Rationale
| Factor | VM | LXC |
|---|---|---|
| Docker support | Officially supported | Unsupported (requires hacks) |
| Stability | High | Medium (kernel updates can break) |
| Isolation | Full kernel isolation | Shared kernel |
| Resource overhead | Higher (~1-2 GB RAM baseline) | Lower (~256 MB baseline) |
| Maintenance | Standard Ubuntu updates | AppArmor/seccomp tuning required |
Trade-off accepted: We accept the higher resource overhead of VMs in exchange for stability and official Docker support.
Specifications
| Parameter | Value |
|---|---|
| Base image | Ubuntu 24.04 LTS (Noble) cloud-init |
| Disk | 32 GB per VM |
| RAM | 4 GB per VM |
| vCPU | 2 per VM |
| Network bridge | vmbr0 (bridged to LAN) |
| Storage pool | local-lvm |
Capacity planning (per physical host)
- Physical NVMe: 512 GB
- Available in
local-lvm: ~357 GB - Initial allocation: 2 VMs × 32 GB = 64 GB
- Remaining: ~293 GB (room for 4+ additional VMs)
References
- community-scripts/ProxmoxVE docker-vm.sh — reference implementation
- Docker documentation on supported platforms