Apr 02, 2024 · Homelab / Beginner · ~4 MIN READ
Proxmox VE for Beginners: Create Your First VM and Container
Understand when to use a VM vs. an LXC container, and how to safely create, snapshot, and back up both in Proxmox VE.
Who This Is For
Beginner. Assumes you’ve already got a host machine, see the Mini PC homelab article if not.
Think of it like a landlord splitting one building into separate, locked apartments. Each apartment (a VM or container) lives its own life without bothering the neighbours, even though they all share the same walls and plumbing.
What You’ll Build
One Ubuntu VM and one LXC container, each network-accessible and backed up, plus a working understanding of when to reach for which.
Prerequisites
- A Proxmox VE host already installed
- An Ubuntu Server or Debian ISO uploaded to Proxmox storage
- Basic familiarity with a web browser admin console
Architecture
Proxmox VE organizes resources under a Node, with Storage, Network, and Datacenter-level settings shared across guests. Each guest is either a full VM (its own kernel, stronger isolation, ideal for Windows or experimentation) or an LXC container (shares the host kernel, lightweight, fast startup, ideal for most Linux services).
VM vs. LXC, Which to Use
- VM: stronger isolation, separate kernel, needed for Windows or anything that must not touch the host kernel
- LXC: lightweight, near-instant startup, lower overhead, ideal for the majority of Linux services you’ll self-host
Tour the Interface
Familiarize yourself with the Node view (CPU/RAM/disk of the host itself), Storage (where ISOs and disk images live), Network (bridges), Datacenter (cluster-wide settings), and the Backup menu.
Upload an ISO and Create a VM
- Storage → local → ISO Images → Upload
- Create VM → select the ISO, set 2 vCPU / 4GB RAM / 32GB disk as a reasonable starting allocation
- Network: use the default bridge (vmbr0) for normal LAN access
- Start the VM and complete the Ubuntu Server install as normal
Create an LXC Container
Use Create CT with a Debian or Ubuntu template (Storage → Templates if none are listed yet). Containers boot in seconds and are the better default for simple services like Pi-hole, Uptime Kuma, or a reverse proxy.
Snapshots vs. Backups
A snapshot is a fast, short-term rollback point stored alongside the guest’s disk, useful before a risky change, not a substitute for a real backup. A backup (Proxmox’s built-in vzdump) is a full, restorable copy, ideally stored on separate storage.
$ # Manual backup via CLI (or use the Backup tab in the UI)
$ vzdump 101 --storage backup-nas --mode snapshot
Clone a Template for Repeat Deployments
Convert a fully-configured VM or CT into a template, then clone it whenever you need another instance with the same base setup, much faster than reinstalling from ISO each time.
Security & Backup Notes
- Set a real backup schedule to storage separate from the Proxmox host itself, not just snapshots
- Use a bridged network with a static DHCP reservation for guests you’ll want to reach reliably
- Keep the Proxmox web UI itself off any public-facing port, VPN or LAN-only access
Troubleshooting
- VM has no network, check the guest’s NIC is attached to the correct bridge (vmbr0 in most single-NIC setups)
- Wrong bridge selected, a guest attached to an isolated internal bridge won’t reach your LAN at all
- Disk storage fills unexpectedly, thin-provisioned disks can overcommit; watch actual usage under Storage, not just the configured disk size
- Snapshot cannot be created, some storage backends (e.g. plain LVM without thin-provisioning) don’t support snapshots at all
- Container can’t run Docker, unprivileged LXC containers need nesting enabled (Options → Features → nesting) before Docker will work inside them
Lab Finish Line
One Ubuntu VM and one LXC container, each network-accessible and backed up.