Home

Proxmox VE Commands Reference

Essential commands for managing virtual machines and containers

What is Proxmox VE?

Proxmox Virtual Environment (Proxmox VE) is an enterprise-grade, open-source virtualization platform that combines two powerful virtualization technologies: KVM (Kernel-based Virtual Machine) for full hardware virtualization and LXC (Linux Containers) for lightweight container-based virtualization.

Proxmox VE transforms standard x86 hardware into a comprehensive virtualization solution with an integrated web-based management interface, making it ideal for building private clouds, running production workloads, and creating flexible test environments. Whether you're managing a single server or orchestrating a multi-node cluster, Proxmox provides enterprise features without the enterprise licensing costs.

High Availability Clustering & Live Migration

Proxmox VE excels at creating resilient, highly-available infrastructure through its advanced clustering capabilities:

  • Multi-node clusters: Join up to 32 nodes into a single cluster with centralized management and shared configuration
  • Live migration: Move running VMs between physical hosts with zero downtime—users won't even notice
  • High availability (HA): Automatically restart VMs on healthy nodes if a host fails, ensuring critical services stay online
  • Shared storage: Leverage Ceph, NFS, iSCSI, or ZFS for distributed storage across your cluster
  • Fencing and quorum: Prevent split-brain scenarios with intelligent node fencing and voting mechanisms
  • Backup and replication: Schedule automated backups and real-time VM replication across nodes for disaster recovery

With Proxmox clustering, you can build production-grade infrastructure with automatic failover, load balancing, and the ability to perform maintenance on physical hosts without service interruption—all managed through a single, unified interface.

Key Features & Use Cases:

Proxmox VE combines powerful command-line tools with an intuitive web interface, giving you complete control over your virtualization infrastructure. Below you'll find essential CLI commands to manage VMs, containers, storage, networking, and clustering operations.

Virtual Machine (QEMU/KVM) Management

List all VMs
qm list
Create a new VM
qm create 100 --name my-vm --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0
Start a VM
qm start 100
Stop a VM
qm stop 100
Shutdown a VM gracefully
qm shutdown 100
Reboot a VM
qm reboot 100
Delete a VM
qm destroy 100
Show VM configuration
qm config 100
Set VM memory
qm set 100 --memory 4096
Set VM CPU cores
qm set 100 --cores 4
Add disk to VM
qm set 100 --scsi0 local-lvm:32
Clone a VM
qm clone 100 200 --name cloned-vm
Migrate VM to another node
qm migrate 100 node2
Live migrate VM (no downtime)
qm migrate 100 node2 --online
Access VM console
qm terminal 100
Monitor VM status
qm status 100

Container (LXC) Management

List all containers
pct list
Create a container
pct create 101 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst --hostname my-container --memory 1024 --cores 2 --net0 name=eth0,bridge=vmbr0,ip=dhcp
Start a container
pct start 101
Stop a container
pct stop 101
Shutdown a container gracefully
pct shutdown 101
Reboot a container
pct reboot 101
Delete a container
pct destroy 101
Enter container shell
pct enter 101
Execute command in container
pct exec 101 -- command
Show container configuration
pct config 101
Set container memory
pct set 101 --memory 2048
Clone a container
pct clone 101 201 --hostname cloned-container
Migrate container to another node
pct migrate 101 node2
Push file to container
pct push 101 /local/file /container/path
Pull file from container
pct pull 101 /container/path /local/destination

Snapshots & Backups

Create VM snapshot
qm snapshot 100 snapshot-name
List VM snapshots
qm listsnapshot 100
Rollback VM to snapshot
qm rollback 100 snapshot-name
Delete VM snapshot
qm delsnapshot 100 snapshot-name
Create container snapshot
pct snapshot 101 snapshot-name
Rollback container to snapshot
pct rollback 101 snapshot-name
Backup VM
vzdump 100 --mode snapshot --storage backup-storage
Backup container
vzdump 101 --mode snapshot --storage backup-storage
Backup all VMs and containers
vzdump --all --mode snapshot --storage backup-storage
Restore VM from backup
qmrestore /path/to/backup.vma.zst 100
List backups
pvesm list backup-storage

Storage Management

List storage
pvesm status
Add directory storage
pvesm add dir backup-storage --path /mnt/backup
Add NFS storage
pvesm add nfs nfs-storage --server 192.168.1.10 --export /export/path
Remove storage
pvesm remove storage-name
Scan storage content
pvesm scan nfs 192.168.1.10
List storage content
pvesm list storage-name
Check ZFS pool status
zpool status
Create ZFS pool
zpool create -o ashift=12 tank mirror /dev/sdb /dev/sdc

Networking

Show network configuration
cat /etc/network/interfaces
Apply network changes
ifreload -a
Create Linux bridge
auto vmbr1
iface vmbr1 inet static
  address 10.0.0.1/24
  bridge-ports none
  bridge-stp off
  bridge-fd 0
Show firewall rules
pve-firewall status
Enable firewall
pve-firewall start
Show VM network interfaces
qm showcmd 100 | grep -i net

Cluster Management

Show cluster status
pvecm status
List cluster nodes
pvecm nodes
Create cluster
pvecm create cluster-name
Add node to cluster
pvecm add node1-ip-address
Remove node from cluster
pvecm delnode node-name
Show expected votes
pvecm expected 1
Show cluster configuration
cat /etc/pve/corosync.conf

Templates & Cloud-Init

Convert VM to template
qm template 100
Clone from template
qm clone 100 200 --name new-vm --full
Download cloud image
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
Import cloud image as disk
qm importdisk 100 jammy-server-cloudimg-amd64.img local-lvm
Set Cloud-Init user
qm set 100 --ciuser ubuntu --cipassword password
Set Cloud-Init SSH key
qm set 100 --sshkey ~/.ssh/id_rsa.pub
Set Cloud-Init IP config
qm set 100 --ipconfig0 ip=10.0.0.10/24,gw=10.0.0.1

System & Node Management

Show Proxmox version
pveversion
Update package lists
apt update
Upgrade Proxmox
apt dist-upgrade
Show node tasks
pvesh get /nodes/node-name/tasks
Show system resource usage
pvesh get /nodes/node-name/status
Restart Proxmox web interface
systemctl restart pveproxy
View system logs
journalctl -u pve-cluster -f
Download container templates
pveam update
List available templates
pveam available
Download specific template
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst

High Availability (HA)

Show HA status
ha-manager status
Add VM to HA
ha-manager add vm:100
Remove VM from HA
ha-manager remove vm:100
Set HA priority
ha-manager set vm:100 --state started --max_relocate 2
Show HA groups
ha-manager groupconfig
Note: Replace VM IDs (100, 101, etc.), node names, and paths with your actual values. Use qm help, pct help, or pvesh help for more detailed information about specific commands. Access the web interface at https://your-proxmox-ip:8006 for GUI-based management.