Belajar Proxmox VE - LXC Containers (Lightweight Alternative to VMs)
Episode 5 of 21

Belajar Proxmox VE - LXC Containers (Lightweight Alternative to VMs)

Episode ini membahas LXC container sebagai alternatif ringan dari VM, perbedaan LXC Proxmox dengan Docker, cara mengunduh dan membuat container dengan pveam, serta perbedaan privileged dan unprivileged container.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Tidak semua beban kerja membutuhkan full virtualization. Banyak layanan — web server, database kecil, cron job, atau utility — hanya butuh environment Linux yang terisolasi. Untuk kebutuhan seperti ini, Proxmox menyediakan LXC container: virtualisasi di tingkat sistem operasi yang jauh lebih ringan daripada VM penuh.

Episode 5 membahas konsep LXC, perbedaannya dengan Docker, cara mengunduh template dan membuat container pertama, lalu memahami mengapa unprivileged container harus menjadi pilihan default kalian. Di akhir episode, kalian bisa membuat container dan memutuskan kapan memakai container versus VM.

Konsep LXC di Proxmox

OS-Level Virtualization

Berbeda dengan KVM yang mengemulasi hardware penuh, LXC memvirtualisasi sistem operasi. Semua container berbagi kernel Linux host — yang divirtualisasi hanyalah environment: filesystem, proses, user, dan jaringan. Akibatnya, boot container hanya memakan hitungan detik dan overhead memori nyaris nol karena tidak ada emulasi hardware.

VM vs LXC container
VM : hardware diemulasi, setiap guest punya kernel sendiri
CT : berbagi kernel host, hanya environment yang diisolasi

Konsekuensinya, kalian hanya bisa menjalankan distro Linux berbasis kernel yang kompatibel — Ubuntu, Debian, Alpine, CentOS. Windows tidak bisa berjalan sebagai container.

LXC Container vs Docker Container

Sering terjadi kebingungan antara keduanya. LXC adalah system container: berisi init system, service manager, dan banyak proses — seperti VM mini tanpa kernel sendiri. Docker adalah application container: mengemas satu aplikasi beserta dependency-nya, umumnya tanpa init system, dan didesain untuk proses yang berjumlah satu. Di Proxmox, LXC dikelola langsung dengan tool pct, sementara Docker sebaiknya berjalan di dalam VM atau LXC yang sudah disiapkan.

Mengunduh Template Container

Update Repository Template

Template container tersedia dari repository resmi Proxmox. Sebelum bisa dipakai, kalian perlu memperbarui daftar dan mengunduhnya:

Update dan download template
pveam update
pveam available
pveam download local ubuntu-24.04-standard_24.04-2_amd64.tar.zst

Perintah pveam update menyegarkan daftar template terbaru, pveam available menampilkan semua opsi, dan pveam download mengambil template yang dipilih ke storage local. Kalian juga bisa memilih template langsung dari web UI di local -> CT Templates.

Lokasi Template di Disk

Template yang terunduh disimpan sebagai file arsip di folder /var/lib/vz/template/cache/. File .tar.zst ini adalah image rootfs container yang siap dijadikan cetakan.

Membuat LXC Container

Wizard Pembuatan Container

Klik Create CT di web UI. Isi CT ID dan hostname, pilih template yang tadi diunduh, lalu set root password atau SSH key untuk akses awal. Atur resource: CPU cores, RAM, swap, disk size, dan konfigurasi jaringan seperti VM. Bagian yang paling penting berikutnya adalah tipe container yang akan kita bahas sebentar lagi.

Buat container dari CLI
pct create 100 local:vztmpl/ubuntu-24.04-standard_24.04-2_amd64.tar.zst \
  --hostname web-ct --cores 2 --memory 1024 --swap 512 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp --storage local-lvm
pct start 100
pct enter 100

Perintah pct create membuat container sesuai spesifikasi, pct start menyalakan, dan pct enter memasukkan kalian ke dalam shell container tanpa perlu SSH.

Mengelola Lifecycle Container

Lifecycle container dikelola dengan pct — pasangan dari qm untuk VM:

  • pct start dan pct stop untuk menyalakan dan mematikan.
  • pct shutdown untuk shutdown yang bersih.
  • pct reboot untuk restart.
  • pct list untuk melihat semua container di node.

Privileged vs Unprivileged Containers

Risiko Privileged Container

Container privileged berjalan dengan root yang sama dengan root host. Jika sebuah proses di dalam container berhasil menyerang kernel, jarak ke host menjadi sangat dekat — ini risiko keamanan yang serius di lingkungan multi-tenant.

Unprivileged dengan UID Mapping

Container unprivileged memakai UID/GID mapping: user id di dalam container (misalnya root = 0) dipetakan ke id non-privileged di host (misalnya 100000). Akibatnya, meski proses di dalam container mengira dia root, di tingkat host dia hanya user biasa tanpa hak istimewa.

Pemetaan UID unprivileged
di dalam container : uid 0 (root)
di tingkat host    : uid 100000 (bukan root)

Karena pemetaan ini, serangan yang lolos dari container tidak otomatis menjadi root di host. Itulah sebabnya unprivileged menjadi rekomendasi default Proxmox untuk semua container baru.

Warning

Ada beberapa kasus yang menuntut privileged container — misalnya butuh mount filesystem tertentu atau akses device langsung. Gunakan hanya jika benar-benar diperlukan, dan batasi akses node-nya sekecil mungkin.

Memilih Container atau VM

Pertanyaan yang selalu muncul: kapan memakai container, kapan memakai VM? Tidak ada jawaban tunggal, tapi panduan berikut membantu:

  • Gunakan container untuk layanan Linux ringan yang tidak butuh kernel khusus.
  • Gunakan VM untuk beban kerja yang butuh kernel sendiri, isolasi kuat, atau sistem operasi non-Linux.
  • Gunakan VM saat dibutuhkan fitur seperti passthrough hardware atau live migration antar hardware berbeda.
Panduan singkat memilih
CT : layanan Linux ringan, boot cepat, overhead rendah
VM : kernel sendiri, isolasi kuat, dukungan OS apa pun

Banyak infrastruktur produksi memakai kombinasi keduanya: container untuk layanan stateless, dan VM untuk beban kerja yang lebih berat atau yang butuh fleksibilitas kernel. Konsistensi dalam memilih menjaga infrastruktur tetap mudah dipahami.

Penutup

Episode 5 memperkenalkan LXC sebagai alternatif ringan dari VM: berbagi kernel host, boot dalam hitungan detik, dikelola dengan pct, dan lebih aman dalam mode unprivileged karena UID mapping memisahkan hak akses root.

Inti yang harus dibawa pulang:

  • LXC adalah system container yang berbagi kernel host, bukan emulasi hardware.
  • LXC mengelola environment lengkap; Docker mengemas satu aplikasi.
  • Unduh template dengan pveam update dan pveam download.
  • Kelola container dengan pct, pasangan dari qm.
  • Unprivileged container lebih aman karena UID mapping.
  • Gunakan privileged container hanya jika ada kebutuhan mount atau device khusus.

Di episode 6 selanjutnya kita akan membahas storage architecture dan manajemen storage lokal — memahami content types, perbedaan directory storage, LVM, dan LVM-thin yang menjadi rekomendasi default untuk VM disks. Container kalian sudah hidup; sekarang saatnya memahami tempat mereka menyimpan data!