По-перше, групи не використовуються для ізоляції програми від інших у системі. Вони використовуються для управління використанням ресурсів та доступу до пристроїв. Саме різні простори імен (PID, UTS, mount, user ...) забезпечують певну (обмежену) ізоляцію.
Крім того, процес, запущений всередині контейнера Docker, ймовірно, не зможе керувати профілем AppArmor, під яким він працює. Зараз застосовується підхід до налаштування конкретного профілю AppArmor перед запуском контейнера.
Схоже, драйвер виконання libcontainer в Docker підтримує налаштування профілів AppArmor для контейнерів , але я не можу знайти приклад або посилання в документі.
Мабуть, AppArmor також підтримується LXC в Ubuntu .
Ви повинні написати профіль AppArmor для своєї програми та переконайтесь, що LXC / libcontainer / Docker / ... завантажує його перед запуском процесів всередині контейнера.
Використовувані таким чином профілі слід застосовувати, а для тестування його слід спробувати незаконний доступ і переконатися, що він не працює.
У цьому випадку немає зв’язку між двійковим та фактично примусовим профілем. Ви повинні чітко сказати Docker / LXC використовувати цей профіль для вашого контейнера. Запис профілю для бінарного файлу MySQL примусово застосовуватиме його лише на хості, а не в контейнері.