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
| Pros | Cons |
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:
Confined Profile: LXC lu secara default "terkurung" oleh profil keamanan Proxmox.
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.
Exit Status 243: Ini adalah kode error spesifik yang menunjukkan bahwa service gagal dijalankan karena masalah kebijakan keamanan (AppArmor/Capabilities).
Workflow
Shutdown: Mematikan container LXC yang bermasalah.
Configuration Injection: Menyisipkan baris perintah bypass keamanan pada file konfigurasi LXC di Host.
Kernel Access Grant: Memberikan hak akses penuh ke sistem file
/procdan/sys.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).
# nano /etc/pve/lxc/[ID].conf
Langkah 3: Tambahkan Konfigurasi "Deep Bypass"
Scroll ke baris paling bawah, lalu tambahkan blok kode berikut:
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
Simpan perubahan dengan menekan
Ctrl+O, laluEnter.Keluar dari editor dengan
Ctrl+X.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.
# 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
Post a Comment