Kenapa di Proxmox Terkadang Ada Kondisi Untuk Mematikan Unprivileged Container?

 Siap! Fokus kita kali ini adalah membedah bagian Unprivileged Container di Proxmox, karena ini adalah fundamental penting buat lu yang sering main lab di Proxmox.

Sesuai permintaan lu, ini draf tutorial khusus bagian tersebut dengan format Blogspot:


Memahami Unprivileged vs Privileged Container di Proxmox LXC

Definition

Unprivileged Container adalah konfigurasi default di Proxmox di mana User ID (UID) dan Group ID (GID) di dalam container dipetakan ke ID yang tidak memiliki hak akses (non-root) di host Proxmox. Sebaliknya, Privileged Container memberikan izin kepada root di dalam container untuk memiliki hak yang hampir setara dengan root di host Proxmox.

Purpose

Tujuan utama mematikan opsi Unprivileged (menjadi Privileged) adalah untuk mengizinkan container melakukan tugas-tugas tingkat sistem yang kompleks, seperti menjalankan Docker, melakukan mounting filesystem tertentu, atau memodifikasi parameter kernel (sysctl) yang biasanya diblokir demi keamanan.

Pros & Cons

Tipe ContainerProsCons
UnprivilegedKeamanan sangat tinggi; isolasi total dari host.Sulit menjalankan Docker; akses hardware terbatas.
PrivilegedKompatibilitas tinggi untuk Docker & aplikasi sistem.Risiko keamanan lebih besar jika container berhasil ditembus.

Concept: Mengapa Harus "Uncheck" Unprivileged?

Saat lu menjalankan Docker di dalam LXC, Docker mencoba melakukan operasi "Nesting" (virtualisasi di dalam container). Berikut alasan teknis mengapa kita harus uncheck opsi tersebut:

  • Sistem File & Port: Docker butuh akses untuk mengatur network bridge dan membuka port sistem. Di mode Unprivileged, kernel Proxmox akan menolak permintaan ini (Error: Permission Denied).

  • OCI Runtime Error: Error yang lu alami sebelumnya (failed to create task) terjadi karena Docker tidak punya izin untuk menulis ke file sysctl.

  • Tujuan Utama: Dengan uncheck Unprivileged, kita memberikan "kekuatan" kepada container agar bisa berinteraksi dengan kernel host secara langsung untuk kebutuhan operasional Docker.


Workflow

  1. Selection: Memilih mode Privileged saat pembuatan container.

  2. Feature Enabling: Mengaktifkan fitur Nesting dan Keyctl.

  3. Verification: Memastikan Docker dapat berjalan tanpa hambatan permission.


Tutorial: Cara Membuat Privileged Container

Langkah 1: Tahap Pembuatan (Create CT)

  1. Buka Dashboard Proxmox, klik tombol Create CT di pojok kanan atas.

  2. Pada tab General, isi Hostname dan Password seperti biasa.

  3. PENTING: Cari bagian Unprivileged container. Pastikan tanda centangnya DIBUANG (Uncheck).

    Note: Jika opsi ini sudah tercentang dan lu sudah terlanjur buat containernya, lu nggak bisa ganti di tengah jalan. Lu harus Backup lalu Restore untuk menggantinya.

Langkah 2: Mengaktifkan Fitur Pendukung

Setelah container dibuat tapi sebelum dinyalakan, lu harus nambahin fitur tambahan:

  1. Klik pada ID Container lu di panel sebelah kiri.

  2. Masuk ke menu Options > Features.

  3. Klik Edit, lalu centang dua opsi berikut:

    • Nesting: (Wajib untuk Docker).

    • Keyctl: (Membantu manajemen key/token di dalam Docker).

  4. Klik OK.

Langkah 3: Verifikasi di Dalam Terminal

Setelah container nyala, lu bisa tes apakah permission-nya sudah benar dengan mencoba merubah parameter kernel sederhana:

Bash
# sysctl net.ipv4.ip_forward=1

Jika perintah di atas jalan tanpa pesan "Permission Denied", berarti container lu sudah sukses menjadi Privileged dan siap buat dihajar install Docker atau aplikasi berat lainnya.


Gimana, lebih jelas kan kenapa opsi itu jadi "kunci" buat sukses install Docker di LXC?

Ada lagi bagian dari Proxmox yang mau lu ulik buat bahan blog selanjutnya? Mungkin cara backup otomatis container-container ini?

Comments

Popular posts from this blog

Cara Konfigurasi Routing OSPF Dan EIGRP, Sampai Bisa Saling Berkomunikasi