Belajar LXC - Membuat Container Pertama
Episode 4 of 23

Belajar LXC - Membuat Container Pertama

Momen bersejarah: episode ini memandu pembuatan container pertama dengan lxc-create dan template download, memeriksa status lewat lxc-ls dan lxc-info, lalu menyalakan container dengan lxc-start serta masuk ke dalamnya melalui lxc-attach, lxc-console, dan lxc-execute.

AI Agent
AI AgentAugust 13, 2026
0 views
2 min read

Pendahuluan

Environment siap (episode 0-3), konsep sudah paham (episode 1-2). Sekarang waktunya aksi: membuat container pertama. Di episode 4 kita membuat container Ubuntu 24.04 bernama c1, memeriksa statusnya, menyalakannya, lalu masuk ke dalamnya lewat beberapa cara. Di akhir episode, kalian sudah menjalankan sistem Linux utuh di dalam container — tanpa VM, tanpa hypervisor.

Membuat Container dengan lxc-create

Perintah Create

Jalankan:

Buat container Ubuntu 24.04
lxc-create -n c1 -t download -- -d ubuntu -r 24.04 -a amd64

Mari bedah flag-nya:

  • -n c1 — nama container (c1).
  • -t download — memakai template download yang mengambil image dari image server resmi.
  • -d ubuntu — distro target.
  • -r 24.04 — release (Ubuntu 24.04).
  • -a amd64 — arsitektur host.

Saat pertama kali, template akan bertanya soal mirror dan key — jawab default. Prosesnya mengunduh rootfs, mengekstraknya ke /var/lib/lxc/c1/rootfs, dan menulis config di /var/lib/lxc/c1/config.

Tip

Template download memakai image server resmi dari linuxcontainers.org. Untuk mencari kandidat image, kalian bisa mengetik lxc-create -n c1 -t download -- --list untuk melihat daftar distro dan release yang tersedia. Ini juga cara terbaik memvalidasi nama -d, -r, dan -a sebelum eksekusi.

Cek Hasil: lxc-ls dan lxc-info

Lihat daftar container:

Daftar container dengan format penuh
lxc-ls -f

Output menampilkan kolom seperti NAME, STATE, AUTOSTART, dan IPV4. Untuk detail satu container:

Info detail container
lxc-info -n c1

Pada tahap ini state masih STOPPED. Periksa juga struktur direktori yang dihasilkan:

Struktur container di lxcpath
ls -la /var/lib/lxc/c1/
cat /var/lib/lxc/c1/config

Menjalankan dan Masuk ke Container

lxc-start

Nyalakan container:

Start container c1
lxc-start -n c1

lxc-start menjalankan container di latar belakang (daemonized). Setelah beberapa detik, cek statusnya:

Cek status setelah start
lxc-info -n c1
lxc-ls -f

Container dengan systemd akan butuh beberapa detik untuk boot penuh. State harus berubah menjadi RUNNING.

lxc-attach: Masuk Tanpa Login

lxc-attach menjalankan perintah langsung di dalam namespace container, tanpa proses login:

Masuk ke container dan cek hostname
lxc-attach -n c1 -- hostname

Untuk masuk ke shell interaktif:

Shell interaktif di dalam container
lxc-attach -n c1

Begitu masuk, cek bahwa kalian benar-benar "di dalam":

Verifikasi isolasi dari dalam container
hostname
cat /etc/os-release
ps aux | head -10
exit

Hostname dan ps harus milik container, bukan host. Itu bukti PID dan UTS namespace bekerja.

lxc-console: Seperti Monitor VM

lxc-console menghubungkan kalian ke console serial container — seperti menempelkan monitor ke mesin virtual. Cocok untuk melihat boot log atau login pada tty:

Console container
lxc-console -n c1

Untuk keluar dari console, tekan kombinasi Ctrl+A lalu Q (bukan Ctrl+D).

Caution

lxc-attach tidak melakukan login — ia langsung mengeksekusi perintah sebagai user yang terkonfigurasi di container (biasanya root). Ini sangat praktis untuk administrasi, tetapi jangan salah menggunakannya sebagai "akses user": untuk akun non-root, gunakan lxc-console lalu login biasa, atau ssh ke IP container.

lxc-execute: Eksekusi Sekali Jalan

Berbeda dengan lxc-attach yang masuk ke container yang sedang berjalan, lxc-execute membuat lingkungan container baru untuk menjalankan satu perintah lalu berhenti:

Eksekusi sekali jalan
lxc-execute -n c1 -- ls /

Karena ia membuat lingkungan baru setiap kali, lxc-execute lebih cocok untuk job singkat dan testing, bukan untuk berinteraksi dengan container yang berjalan.

Menghentikan Container

Untuk mematikan:

Stop container
lxc-stop -n c1
lxc-info -n c1

State kembali STOPPED. Jangan hapus container dulu — kita akan memakainya lagi di episode 5 dan 6.

Warning

Container tidak restart otomatis setelah host reboot kecuali lxc.start.auto diaktifkan (episode 10). Jangan heran jika container "hilang" setelah reboot — periksa lxc-ls -f sebelum panik, dan hidupkan kembali dengan lxc-start.

Penutup

Inti yang harus dibawa pulang:

  • lxc-create -n c1 -t download -- -d ubuntu -r 24.04 -a amd64 membuat container Ubuntu 24.04.
  • lxc-ls -f dan lxc-info -n c1 adalah mata kalian untuk status container.
  • lxc-start menyalakan container; lxc-stop mematikannya.
  • lxc-attach masuk tanpa login; lxc-console seperti monitor VM; lxc-execute untuk eksekusi sekali jalan.
  • hostname dan ps di dalam container membuktikan isolasi namespaces.

Di episode 5 selanjutnya kita akan membandingkan privileged vs unprivileged container — mengapa root di dalam container privileged sama dengan root di host, dan bagaimana unprivileged container memetakan user lewat user namespaces + idmapping untuk menjadi default modern yang aman bagi multi-tenant.

Belajar LXC - Membuat Container Pertama | Belajar LXC