Proxmox는 웹 UI가 훌륭하지만, 반복 작업이나 자동화는 결국 CLI가 답입니다. VM은 qm, 컨테이너는 pct — 이 두 명령만 익히면 클릭 수십 번을 한 줄로 끝낼 수 있습니다. 제가 홈랩을 운영·실습하며 실제로 가장 많이 쓰는 명령을 정리합니다.
1. qm(VM) vs pct(LXC) — 쌍둥이 명령
두 명령은 구조가 거의 같습니다. 대상만 VM이냐 컨테이너냐의 차이죠.
| 작업 | VM (qm) | LXC (pct) |
|---|---|---|
| 목록 | qm list |
pct list |
| 시작/정지 | qm start/stop ID |
pct start/stop ID |
| 설정변경 | qm set ID ... |
pct set ID ... |
| 설정보기 | qm config ID |
pct config ID |
2. 설정 변경 — 클릭 대신 한 줄
CPU·메모리·디스크를 명령으로 바꿉니다. 실제로 DevStack VM을 세팅할 때 이렇게 했습니다.
# 메모리·코어 변경
qm set 200 --memory 12288 --cores 6
# CPU 타입을 host로 (가상화 기능 노출 — 중첩가상화/명령어셋)
qm set 200 --cpu host
# 디스크 확장(온라인, 무중단)
qm resize 200 scsi0 +37G
# LXC도 동일
pct set 113 --memory 2048 --cores 2
3. 컨테이너 안에서 명령 실행 — pct exec
pct exec는 LXC 내부에 SSH 없이 바로 명령을 넣습니다. 홈랩 자동화의 핵심입니다.
# 컨테이너 113 안에서 명령 실행
pct exec 113 -- bash -lc "docker compose up -d"
# 호스트에서 여러 컨테이너 상태 한 번에
for id in 100 112 113; do echo -n "$id: "; pct status $id; done
(참고: VM은 커널이 분리돼 qm exec 대신 QEMU Guest Agent나 SSH를 씁니다.)
4. 스냅샷·복제 — 실험의 안전망
# 위험 작업 전 스냅샷
qm snapshot 200 before_test
qm rollback 200 before_test # 되돌리기
# 템플릿에서 새 VM 풀 클론 (cloud-init 템플릿 활용)
qm clone 9000 201 --full --name node1
스냅샷 한 줄이면 몇 초 만에 되돌릴 수 있어, 실습·업그레이드 전에 습관처럼 찍습니다.
5. 원격에서 한 번에 — SSH + pct 조합
저는 작업 PC에서 Proxmox 호스트를 거쳐 컨테이너까지 한 줄로 조작합니다.
# 작업PC → Proxmox 호스트 → LXC 113 내부 명령
ssh root@proxmox-host "pct exec 113 -- bash -lc 'uptime'"
이 패턴으로 여러 호스트·컨테이너를 스크립트로 묶어 자동화할 수 있습니다.
6. 자주 쓰는 조회 명령
pvesm status # 스토리지 용량/상태
qm config 200 | grep -E "cpu|memory|net" # 특정 설정만
pct config 113 | grep features # LXC 기능 플래그
pvesh get /nodes/$(hostname)/status # 노드 상태(API)
7. 정리
qm(VM)·pct(LXC)는 구조가 같아 한 번 익히면 양쪽에 다 씁니다. set으로 설정, exec로 내부 실행, snapshot/clone으로 안전망 — 이 세 가지가 홈랩 자동화의 기본기입니다. 웹 UI로 배우되, 반복이 보이면 CLI로 넘기세요. 그게 홈랩을 “운영”하는 단계로 가는 길입니다.