मुझे एक ऐसे ही मुद्दे का सामना करना पड़ा, जो एक अनुमति मुद्दा है और इस मुद्दे का कारण यह है क्योंकि डॉकर डेमॉन / सर्वर हमेशा rootउपयोगकर्ता के रूप में चलता है , और आप हमेशा docker कमांड को प्राथमिकता देना चाहते हैं sudo।
डॉकर डेमॉन एक टीसीपी पोर्ट के बजाय एक यूनिक्स सॉकेट से बांधता है। डिफ़ॉल्ट रूप से कि यूनिक्स सॉकेट उपयोगकर्ता के स्वामित्व में है rootऔर अन्य उपयोगकर्ता केवल इसका उपयोग करके एक्सेस कर सकते हैं sudo।
इसे ठीक करने के लिए, यहां मेरे लिए काम किया गया है:
सबसे पहले, जांचें कि क्या आपके पास पहले से निर्मित एक docker समूह है:
cat /etc/group
यदि आपको dockerवह सूची नहीं मिलती है जो प्रदर्शित होती है, तो आपको एक बनाने की आवश्यकता होगी:
sudo groupadd docker
अगला, नीचे दिए गए आदेश का उपयोग करके अपने userऔर अपने की पुष्टि करें group:
cat /etc/group
डॉक के लिए समूह को देखने के लिए स्क्रॉल करें। यह इस प्रारूप का होना चाहिए
docker:x:140:promisepreston
मैं कहाँ dockerहूँ groupऔर promiseprestonमेरा हैuser
अब हम आपके उपयोगकर्ता को डॉकटर समूह में जोड़ सकते हैं
केवल डॉकटर कंटेनर फ़ाइलों के लिए:
अपने टर्मिनल में नीचे दिए गए कमांड को कॉपी करें और चलाएं, वैसे भी इसे बिना किसी संशोधन के बताया गया है, बिना डॉकटर इमेज / कंटेनर / कमांड के जिसे आप चलाना चाहते हैं या चलाने की कोशिश कर रहे हैं या अनुमति के मुद्दे को कम कर रहे हैं:
sudo usermod -aG docker $USER
ऊपर दिए गए आदेश को चलाने के बाद, आपको लॉग आउट करना होगा और वापस लॉग इन करना होगा ताकि आपकी समूह सदस्यता का पुनर्मूल्यांकन हो। हालाँकि, लिनक्स पर, आप समूहों में परिवर्तन को सक्रिय करने के लिए नीचे दी गई कमांड को भी चला सकते हैं ( अपने टर्मिनल में नीचे दिए गए कमांड को कॉपी और चलाएं, यह बिना किसी भी तरह से इसे संशोधित किए बिना बताया गया है, चाहे डॉक छवि / कंटेनर / कमांड की परवाह किए बिना कि आप भागना चाहते हैं या अनुमति मुद्दे को चलाने या चलाने की कोशिश कर रहे हैं ):
newgrp docker
अब आप यह सत्यापित कर सकते हैं कि आप sudo अनुमतियों के बिना docker कमांड चला सकते हैं, उस कमांड को चलाकर, जो फिर से परमिशन इश्यू का कारण बन रही है, ( अपनी छवि / कंटेनर / कमांड के नाम से बदलेंmy-command ):
docker run my-command
डॉकर और स्थानीय फाइलसिस्टम फ़ाइलों के लिए:
यदि आपके पास अपने स्थानीय फाइल सिस्टम पर फाइलों की एक प्रति है, तो आप इस प्रारूप का उपयोग करके एप्लिकेशन निर्देशिका के स्वामित्व को बदल सकते हैं, जहां एप्लिकेशन फ़ाइलों को संग्रहीत किया जाता है:
sudo chown <your_user>:<your_group> -R my-app-directory/
तो मेरे मामले में यह होगा:
sudo chown promisepreston:docker -R my-app-directory/
नोट: कृपया इस डायरेक्टरी को पैरेंट डायरेक्टरी हाउसिंग एप्लीकेशन डायरेक्टरी के अंदर चलाएं।
बस इतना ही।
आशा है कि ये आपकी मदद करेगा