यदि मैं विशेषाधिकार प्राप्त मोड में एक कंटेनर चला रहा हूं, तो क्या इसमें सभी कर्नेल क्षमताओं हैं या क्या मुझे उन्हें अलग से जोड़ने की आवश्यकता है?विशेषाधिकृत कंटेनर और क्षमताओं
उत्तर
विशेषाधिकार प्राप्त मोड में चलने से वास्तव में कंटेनर सभी क्षमताओं को देता है। लेकिन यह अच्छा अभ्यास हमेशा एक कंटेनर न्यूनतम आवश्यकताओं को यह की जरूरत है आप डोकर डॉक्स को देखें, तो वे भी
पूर्ण कंटेनर क्षमताओं (--privileged)
इस ध्वज को देखें दे रहा है - विशेषाधिकार प्राप्त ध्वज कंटेनर को सभी क्षमताओं को देता है, और यह डिवाइस cgroup नियंत्रक द्वारा लागू सभी सीमाओं को भी हटा देता है। दूसरे शब्दों में, कंटेनर तब लगभग हर चीज कर सकता है जो मेजबान कर सकता है। यह झंडा विशेष उपयोग-मामलों की अनुमति देने के लिए मौजूद है, जैसे डॉकर के अंदर डॉकर चलाना।
आप --cap-add
ध्वज का उपयोग करके विशिष्ट क्षमताओं को दे सकते हैं। उन क्षमताओं पर अधिक जानकारी के लिए man 7 capabilities
देखें। शाब्दिक नामों का उपयोग किया जा सकता है, उदा। --cap-add CAP_FOWNER
।
(अपने विकास के वातावरण बनाम साझा उत्पादन के रूप में उपयोग करते हुए एक अच्छा कवर from RedHat covering this
जबकि के रूप में "रूट" डोकर कंटेनर चल मेजबान पर जड़ से कम विशेषाधिकार हैं, यह अभी भी सख्त आपके उपयोग के मामले पर निर्भर करता है की आवश्यकता हो सकती लेख वहाँ है क्लस्टर)
इस पोस्ट गूगल खोज पद पर अधिक है जैसा कि मैंने क्यों तुम कभी नहीं मैं अपने लैपटॉप जो NVMe ड्राइव है पर यह कर रहा हूं --privileged
का उपयोग कर एक कंटेनर चलाना चाहते हैं के बारे में जानकारी जोड़ना चाहते थे लेकिन यह किसी के लिए काम करेंगे मेज़बान।
[email protected]:/# cat /proc/sys/vm/swappiness
60
[email protected]:/# echo "61" > /proc/sys/vm/swappiness
[email protected]:/# cat /proc/sys/vm/swappiness
60
ठीक यह कंटेनर के लिए या मेजबान के लिए इसे बदल दिया:
docker run --privileged -t -i --rm ubuntu:latest bash
पहले कुछ छोटी-मोटी,/proc फाइल सिस्टम
परीक्षण करने के लिए कंटेनर से अपना काम करने दिया?
$ cat /proc/sys/vm/swappiness
61
ओओपीएस !, हम मेजबान कर्नेल पैरामीटर को मनमाने ढंग से बदल सकते हैं। लेकिन यह सिर्फ एक डॉस स्थिति है, देखते हैं कि क्या हम अभिभावक होस्ट से विशेषाधिकार प्राप्त जानकारी एकत्र कर सकते हैं।
/sys
पेड़ पर चलने दें और बूट डिस्क के लिए प्रमुख मामूली संख्या पाएं।
नोट: मैं दो NVMe ड्राइव और कंटेनर है एक और ड्राइव
[email protected]:/proc# cat /sys/block/nvme1n1/dev
259:2
ठीक पर एलवीएम के तहत चलाए जा रहे एक स्थान जहां dbus नियम नहीं होगा स्वत: स्कैन में किसी डिवाइस फ़ाइल बनाने की सुविधा देता है।
[email protected]:/proc# mknod /devnvme1n1 b 259 2
[email protected]:/proc# sfdisk -d /devnvme1n1
label: gpt
label-id: 1BE1DF1D-3523-4F22-B22A-29FEF19F019E
device: /devnvme1n1
unit: sectors
first-lba: 34
last-lba: 2000409230
<SNIP>
ठीक है, हम बूटडिस्क पढ़ सकते हैं, विभाजनों में से किसी एक के लिए डिवाइस फ़ाइल बनाने दें। हालांकि हम इसे माउंट नहीं कर सकते क्योंकि यह खुलेगा हम इसे कॉपी करने के लिए अभी भी dd
का उपयोग कर सकते हैं।
[email protected]:/proc# mknod /devnvme1n1p1 b 259 3
[email protected]:/# dd if=devnvme1n1p1 of=foo.img
532480+0 records in
532480+0 records out
272629760 bytes (273 MB, 260 MiB) copied, 0.74277 s, 367 MB/s
ठीक है इसे घुमाएं और देखें कि हमारे प्रयासों ने काम किया है !!!
[email protected]:/# mount -o loop foo.img /foo
[email protected]:/# ls foo
EFI
[email protected]:/# ls foo/EFI/
Boot Microsoft ubuntu
तो मूल रूप से किसी कंटेनर मेजबान है कि आप किसी पर एक --privileged
कंटेनर शुरू करने के लिए अनुमति देते हैं उन्हें उस होस्ट पर हर कंटेनर के लिए रूट पहुँच देने के समान है।
दुर्भाग्य डोकर परियोजना विश्वसनीय कंप्यूटिंग मॉडल चुना है, और प्रमाणन के बाहर प्लगइन्स, इसलिए हमेशा त्रुटि सुविधाओं की जरूरत जोड़ने बनाम --privileged
- 1. क्षमताओं और लिनक्स और जावा
- 2. Firebase ऑफलाइन क्षमताओं और addListenerForSingleValueEvent
- 3. जेडिस और लेटिस एसिंक क्षमताओं
- 4. Moq और Rhino.mocks की क्षमताओं क्या हैं?
- 5. लाइसेंस योजना, हंसोड़-सुरक्षित और रद्द क्षमताओं
- 6. डब्ल्यूपीएफ और सिल्वरलाइट नियंत्रण और लेआउट पैन और ज़ूम क्षमताओं
- 7. वास्तविक समय क्षमताओं?
- 8. मेवेन साइट + खोज क्षमताओं
- 9. आरस्टूडियो परियोजना क्षमताओं
- 10. मानदंड की क्षमताओं
- 11. javac कोड उन्मूलन क्षमताओं
- 12. स्कैनरसेट क्षमताओं की व्याख्या
- 13. Bluemix बनाने कंटेनर एक और कंटेनर
- 14. एक्सकोड योजना प्रति एंटाइटेलमेंट्स/क्षमताओं
- 15. एक्सकोड क्षमताओं से एंटाइटेलमेंट निकालने
- 16. पॉइंटर्स और कंटेनर
- 17. स्थिरांक और एसटीएल कंटेनर
- 18. लंबवत और horinzontally कंटेनर
- 19. सर्वलेट कंटेनर और क्लासपाथ
- 20. संग्रह और कंटेनर
- 21. आईओसी कंटेनर और IDisposable
- 22. डॉकर होस्ट और कंटेनर
- 23. जावास्क्रिप्ट में सार्वजनिक और विशेषाधिकृत विधियां: उन्हें इस तरह क्यों कहा जाता है?
- 24. पर्ल और जावा रेगेक्स क्षमताओं के बीच अंतर क्या हैं?
- 25. सामान्य लिस्प मैक्रोज़ और फर्थ मेटाप्रोग्रामिंग क्षमताओं की तुलना
- 26. मैं किसी विशेष उपयोगकर्ता और निष्पादन योग्य क्षमताओं को प्रदान करने के लिए पीएएम क्षमताओं मॉड्यूल का उपयोग कैसे करूं?
- 27. डब्लूएसजीआई कंटेनर
- 28. सर्वलेट कंटेनर और वसंत कंटेनर के बीच क्या अंतर है?
- 29. रैफेल ड्रैग और ड्रॉप कंटेनर से दूसरे कंटेनर
- 30. ओओपी शब्दावली: "कंटेनर" और "संग्रह"
का उपयोग कर के पक्ष में इस के खिलाफ की रक्षा करने के लिए कोई रास्ता नहीं है वहाँ किसी भी तरह से किया जाता है यह जानने के लिए कि किसी विशेष एप्लिकेशन की क्या क्षमताएं हैं? ऐसा लगता है कि अधिकांश अनुप्रयोगों के लिए अनियंत्रित किया गया है। – codefx
@codefx यहां अंगूठे का कोई नियम नहीं है, यह एप्लिकेशन पर निर्भर करता है और रनटाइम के दौरान यह कौन सी सिस्टम कॉल कर सकता है। यदि आप हब से तैयार किए गए डॉकर छवि का उपयोग कर रहे हैं, तो शायद इसका उल्लेख किया जाएगा। यदि आप कुछ लिखते हैं जो आप स्वयं लिखते हैं, तो आपको पता होना चाहिए कि आपने कौन सी कर्नेल एपीआई का उपयोग किया है जिसके लिए विशेष क्षमताओं की आवश्यकता हो सकती है – buddy123