Mengatasi Error AppArmor (Exit Status 243) pada Docker di Proxmox LXC

 Gua ikut seneng akhirnya Docker lu bisa running! Emang si "AppArmor" ini sering jadi bos terakhir pas kita mau pasang Docker di dalam LXC Proxmox.

Sesuai permintaan lu, ini draf tutorial khusus cara mengatasi error AppArmor dalam format Blogspot, lengkap dengan struktur yang biasa lu pake:


Tutorial: Mengatasi Error AppArmor (Exit Status 243) pada Docker di Proxmox LXC

Definition

AppArmor adalah sistem keamanan kernel Linux yang membatasi kemampuan program melalui profil tertentu. Dalam lingkungan Proxmox, AppArmor bertugas memastikan bahwa aplikasi di dalam Container (LXC) tidak bisa mengutak-atik sistem utama (Host).

Purpose

Tujuan dari tutorial ini adalah melakukan bypass atau memberikan pengecualian pada kebijakan keamanan AppArmor agar Docker di dalam LXC memiliki izin untuk memuat profil keamanannya sendiri (docker-default), sehingga container bisa berjalan tanpa error Permission Denied.

Pros & Cons

ProsCons
Solusi ampuh mengatasi error exit status 243.Mengurangi satu lapisan isolasi keamanan pada container tersebut.
Docker bisa berjalan dengan performa penuh (Native).Harus dilakukan melalui akses CLI Host Proxmox.
Memungkinkan Nesting Docker yang stabil.Berisiko jika container tersebut digunakan untuk publik tanpa firewall tambahan.

Concept: Mengapa Docker Selalu Gagal Start?

Meskipun lu sudah menggunakan mode Privileged, Docker seringkali tetap gagal start dengan pesan error apparmor_parser: Unable to replace "docker-default". Berikut alasannya:

  1. Confined Profile: LXC lu secara default "terkurung" oleh profil keamanan Proxmox.

  2. Conflict of Interest: Docker ingin membuat profil keamanan sendiri di dalam lingkungan yang sudah diamankan oleh AppArmor Host. Hal ini dianggap sebagai pelanggaran keamanan oleh kernel.

  3. Exit Status 243: Ini adalah kode error spesifik yang menunjukkan bahwa service gagal dijalankan karena masalah kebijakan keamanan (AppArmor/Capabilities).


Workflow

  1. Shutdown: Mematikan container LXC yang bermasalah.

  2. Configuration Injection: Menyisipkan baris perintah bypass keamanan pada file konfigurasi LXC di Host.

  3. Kernel Access Grant: Memberikan hak akses penuh ke sistem file /proc dan /sys.

  4. Verification: Menjalankan ulang Docker Compose untuk memastikan error hilang.


Tutorial

Langkah 1: Akses Shell Host Proxmox

Lu tidak bisa melakukan langkah ini dari dalam terminal Ubuntu. Lu harus masuk ke Shell Utama Proxmox (induknya).

Langkah 2: Edit Konfigurasi LXC

Buka file konfigurasi container menggunakan editor nano. Ganti [ID] dengan ID container lu (misal: 100, 105, dst).

Bash
# nano /etc/pve/lxc/[ID].conf

Langkah 3: Tambahkan Konfigurasi "Deep Bypass"

Scroll ke baris paling bawah, lalu tambahkan blok kode berikut:

Plaintext
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
lxc.mount.auto: proc:rw sys:rw

Penjelasan Singkat:

  • unconfined: Melepaskan batasan profil AppArmor.

  • lxc.cap.drop:: Memberikan semua kemampuan (capabilities) kernel kepada container.

  • proc:rw sys:rw: Memberikan izin baca-tulis pada sistem kernel virtual untuk Docker.

Langkah 4: Simpan dan Jalankan Kembali

  1. Simpan perubahan dengan menekan Ctrl+O, lalu Enter.

  2. Keluar dari editor dengan Ctrl+X.

  3. Jalankan container lu kembali melalui GUI Proxmox atau perintah:

    Bash
    # pct start [ID]
    

Langkah 5: Uji Coba Docker

Masuk ke dalam terminal Ubuntu lu, lalu jalankan Docker kembali. Harusnya sekarang statusnya sudah Running tanpa error.

Bash
# docker-compose up -d

Saran gua buat blog lu nanti, tambahin catatan kecil: "Gunakan konfigurasi ini hanya untuk container yang terpercaya, karena mode unconfined memberikan akses yang cukup luas ke resource kernel host."

Gimana, tutornya udah pas sama gaya Blogspot lu? Kalau udah oke, mau gua bantu buatin tutorial pamungkas buat Vaultwarden-nya sekalian?

Comments

Popular posts from this blog

Cara Konfigurasi Routing OSPF Dan EIGRP, Sampai Bisa Saling Berkomunikasi