Во-первых, cgroups не используются для изоляции приложения от других в системе. Они используются для управления использованием ресурсов и доступа к устройству. Это различные пространства имен (PID, UTS, mount, user ...), которые обеспечивают некоторую (ограниченную) изоляцию.
Более того, процесс, запущенный внутри контейнера Docker, вероятно, не сможет управлять профилем AppArmor, в котором он запущен. В настоящее время используется подход к настройке определенного профиля AppArmor перед запуском контейнера.
Похоже, что драйвер выполнения libcontainer в Docker поддерживает настройку профилей AppArmor для контейнеров , но я не могу найти ни одного примера или ссылки в документе.
Очевидно, AppArmor также поддерживается с LXC в Ubuntu .
Вы должны написать профиль AppArmor для своего приложения и убедиться, что LXC / libcontainer / Docker / ... загружает его перед запуском процессов внутри контейнера.
Профили, используемые таким способом, должны быть принудительными, и для их проверки вы должны попробовать нелегальный доступ и убедиться, что он не работает.
В этом случае нет никакой связи между двоичным файлом и действующим профилем. Вы должны явно указать Docker / LXC, чтобы использовать этот профиль для вашего контейнера. Написание профиля для двоичного файла MySQL приведет к его применению только на хосте, а не в контейнере.