Alpine LXC

Alpine LXCs are the lightest option in Proxmox — containers that idle under 10MB RAM. Use them for simple services where VM isolation isn’t needed.

Create from template

In Proxmox UI: node → Create CT. Download the Alpine template from the template list if not already cached (local → CT Templates → Templates).

Or from CLI:

pveam update
pveam download local alpine-3.19-default_20231219_amd64.tar.xz
pct create 200 local:vztmpl/alpine-3.19-default_20231219_amd64.tar.xz \
  --hostname alpine-ct \
  --memory 256 \
  --rootfs local-lvm:4 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --unprivileged 1 \
  --start 1

OpenRC, not systemd

Alpine uses OpenRC. Common commands:

# Enable and start a service
rc-update add <service> default
service <service> start

# Check status
rc-status

# List all services
rc-service --list

Package management

apk update
apk add <package>
apk del <package>
apk upgrade

No bash by default

Scripts expecting bash will fail with ash. Install bash if needed:

apk add bash

Persistence with LBU (diskless only)

Standard LXCs persist changes normally. If you’re running Alpine in diskless mode (rare in LXC context), remember lbu commit -d after config changes.

When to use Alpine vs Debian LXC

Use Alpine when: low memory, simple service, no complex init dependencies. Use Debian when: the service has Debian-specific packages, needs systemd, or you want apt for familiarity.