Đầu tiên, các nhóm không được sử dụng để tách ứng dụng khỏi các ứng dụng khác trên hệ thống. Chúng được sử dụng để quản lý việc sử dụng tài nguyên và truy cập thiết bị. Đó là các không gian tên khác nhau (PID, UTS, mount, user ...) cung cấp một số cách ly (giới hạn).
Hơn nữa, một quy trình được khởi chạy bên trong một Docker container có thể sẽ không thể quản lý hồ sơ AppArmor mà nó đang chạy. Cách tiếp cận hiện được thực hiện là thiết lập một hồ sơ AppArmor cụ thể trước khi khởi chạy container.
Có vẻ như trình điều khiển thực thi libcontainer trong Docker hỗ trợ thiết lập hồ sơ AppArmor cho các thùng chứa , nhưng tôi không thể tìm thấy bất kỳ ví dụ hoặc tham chiếu nào trong tài liệu.
Rõ ràng AppArmor cũng được hỗ trợ với LXC trong Ubuntu .
Bạn nên viết một hồ sơ AppArmor cho ứng dụng của mình và đảm bảo LXC / libcontainer / Docker / ... tải nó trước khi bắt đầu các quy trình bên trong container.
Hồ sơ được sử dụng theo cách này nên được thi hành và để kiểm tra nó, bạn nên thử truy cập bất hợp pháp và đảm bảo rằng nó không thành công.
Không có liên kết giữa nhị phân và hồ sơ thực thi trong trường hợp này. Bạn phải thông báo rõ ràng cho Docker / LXC sử dụng hồ sơ này cho thùng chứa của bạn. Viết một hồ sơ cho nhị phân MySQL sẽ chỉ thực thi nó trên máy chủ, không phải trong thùng chứa.