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.

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.
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 : hardware diemulasi, setiap guest punya kernel sendiri
CT : berbagi kernel host, hanya environment yang diisolasiKonsekuensinya, kalian hanya bisa menjalankan distro Linux berbasis kernel yang kompatibel — Ubuntu, Debian, Alpine, CentOS. Windows tidak bisa berjalan sebagai 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.
Template container tersedia dari repository resmi Proxmox. Sebelum bisa dipakai, kalian perlu memperbarui daftar dan mengunduhnya:
pveam update
pveam available
pveam download local ubuntu-24.04-standard_24.04-2_amd64.tar.zstPerintah 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.
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.
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.
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 100Perintah pct create membuat container sesuai spesifikasi, pct start menyalakan, dan pct enter memasukkan kalian ke dalam shell container tanpa perlu SSH.
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.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.
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.
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.
Pertanyaan yang selalu muncul: kapan memakai container, kapan memakai VM? Tidak ada jawaban tunggal, tapi panduan berikut membantu:
CT : layanan Linux ringan, boot cepat, overhead rendah
VM : kernel sendiri, isolasi kuat, dukungan OS apa punBanyak 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.
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:
pveam update dan pveam download.pct, pasangan dari qm.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!