सबसे पहले, सिस्टम पर दूसरों से किसी एप्लिकेशन को अलग करने के लिए cgroups का उपयोग नहीं किया जाता है। उनका उपयोग संसाधन उपयोग और डिवाइस एक्सेस को प्रबंधित करने के लिए किया जाता है। यह विभिन्न नामस्थान (पीआईडी, यूटीएस, माउंट, उपयोगकर्ता ...) है जो कुछ (सीमित) अलगाव प्रदान करते हैं।
इसके अलावा, एक डॉकर कंटेनर के अंदर शुरू की गई प्रक्रिया शायद इसके तहत चल रहे AppArmor प्रोफाइल को प्रबंधित करने में सक्षम नहीं होगी। वर्तमान में लिया गया दृष्टिकोण कंटेनर लॉन्च करने से पहले एक विशिष्ट AppArmor प्रोफ़ाइल को सेटअप करना है।
ऐसा लगता है कि डॉकटर में लिबरकॉनटेनर निष्पादन चालक कंटेनरों के लिए AppArmor प्रोफाइल स्थापित करने का समर्थन करता है , लेकिन मुझे डॉक्टर में कोई उदाहरण या संदर्भ नहीं मिल सकता है।
स्पष्ट रूप से AppArmor को Ubuntu में LXC के साथ भी समर्थित किया गया है ।
आपको अपने आवेदन के लिए एक AppArmor प्रोफाइल लिखना चाहिए और यह सुनिश्चित करना चाहिए कि LXC / libcontainer / Docker / ... कंटेनर के अंदर प्रक्रियाओं को शुरू करने से पहले इसे लोड करता है।
इस तरह से उपयोग किए गए प्रोफाइल को लागू किया जाना चाहिए, और इसका परीक्षण करने के लिए आपको एक अवैध पहुंच की कोशिश करनी चाहिए और सुनिश्चित करें कि यह विफल हो।
इस मामले में बाइनरी और वास्तव में लागू प्रोफ़ाइल के बीच कोई लिंक नहीं है। आपको अपने कंटेनर के लिए इस प्रोफ़ाइल का उपयोग करने के लिए स्पष्ट रूप से डॉकर / LXC को बताना होगा। MySQL बाइनरी के लिए एक प्रोफाइल लिखना केवल होस्ट पर लागू होगा, कंटेनर में नहीं।