Primeiro, os cgroups não são usados para isolar um aplicativo de outros em um sistema. Eles são usados para gerenciar o uso de recursos e o acesso ao dispositivo. São os vários namespaces (PID, UTS, montagem, usuário ...) que fornecem algum isolamento (limitado).
Além disso, um processo iniciado dentro de um contêiner do Docker provavelmente não poderá gerenciar o perfil do AppArmor em que está sendo executado. A abordagem atualmente adotada é configurar um perfil específico do AppArmor antes de iniciar o contêiner.
Parece que o driver de execução libcontainer no Docker suporta a configuração de perfis do AppArmor para contêineres , mas não consigo encontrar nenhum exemplo ou referência no documento.
Aparentemente, o AppArmor também é suportado com LXC no Ubuntu .
Você deve escrever um perfil do AppArmor para o seu aplicativo e garantir que o LXC / libcontainer / Docker / ... o carregue antes de iniciar os processos dentro do contêiner.
Os perfis usados dessa maneira devem ser aplicados e, para testá-lo, tente um acesso ilegal e verifique se ele falha.
Não há link entre o perfil binário e o perfil realmente aplicado nesse caso. Você precisa informar explicitamente ao Docker / LXC para usar esse perfil para seu contêiner. Escrever um perfil para o binário do MySQL somente o aplicará no host, não no contêiner.