Pertama, cgroup tidak digunakan untuk mengisolasi aplikasi dari yang lain pada suatu sistem. Mereka digunakan untuk mengelola penggunaan sumber daya dan akses perangkat. Berbagai ruang nama (PID, UTS, mount, user ...) yang menyediakan beberapa isolasi (terbatas).
Selain itu, proses yang diluncurkan di dalam wadah Docker mungkin tidak akan dapat mengelola profil AppArmor yang sedang dijalankannya. Pendekatan yang saat ini diambil adalah mengatur profil AppArmor tertentu sebelum meluncurkan wadah.
Sepertinya driver eksekusi libcontainer di Docker mendukung pengaturan profil AppArmor untuk kontainer , tetapi saya tidak dapat menemukan contoh atau referensi dalam dokumen.
Rupanya AppArmor juga didukung dengan LXC di Ubuntu .
Anda harus menulis profil AppArmor untuk aplikasi Anda dan memastikan LXC / libcontainer / Docker / ... memuatnya sebelum memulai proses di dalam wadah.
Profil yang digunakan dengan cara ini harus ditegakkan, dan untuk mengujinya Anda harus mencoba akses ilegal dan memastikan gagal.
Tidak ada tautan antara biner dan profil yang sebenarnya ditegakkan dalam kasus ini. Anda harus secara eksplisit memberi tahu Docker / LXC untuk menggunakan profil ini untuk wadah Anda. Menulis profil untuk biner MySQL hanya akan memberlakukannya di host, bukan di wadah.