2013-10-03 18 views
57

के रूप में वॉल्यूम माउंट करें, मैं डॉकर के साथ काम कर रहा हूं, और मैं एक डायनैमिक फ़ोल्डर को माउंट करना चाहता हूं जो बहुत बदलता है (इसलिए मुझे प्रत्येक निष्पादन के लिए डॉकर्स बनाने की ज़रूरत नहीं है, जो कि बहुत महंगा होगा), लेकिन मैं उस फ़ोल्डर को केवल पढ़ने के लिए चाहते हैं। फ़ोल्डर मालिकों को किसी और को बदलना काम करता है हालांकि chown को root एक्सेस की आवश्यकता है, जिसे मैं किसी एप्लिकेशन पर बेनकाब करना पसंद नहीं करूंगा।डॉकर,

जब मैं -v ध्वज माउंट करने के लिए उपयोग करता हूं, तो यह जो भी उपयोगकर्ता नाम देता है, वह देता है, मैंने डॉकर छवि के अंदर एक गैर रूट उपयोगकर्ता बनाया है, हालांकि मालिक के साथ वॉल्यूम में सभी फाइलें जो डॉकर चलाती हैं, के रूप में बदलती हैं उपयोगकर्ता मैं कमांडलाइन से देता हूं, इसलिए मैं केवल पढ़ने वाली फाइलें और फ़ोल्डर्स नहीं बना सकता। मेरे द्वारा इसे कैसे रोका जा सकता है?

मैंने mustafa ALL=(docker) NOPASSWD: /usr/bin/docker भी जोड़ा, इसलिए मैं टर्मिनल के माध्यम से किसी अन्य उपयोगकर्ता को बदल सकता हूं, लेकिन फिर भी फ़ाइलों को मेरे उपयोगकर्ता के लिए अनुमतियां हैं।

+0

बस सोचा कि मैं यहां एक टिप्पणी छोड़ दूंगा कि उपयोगकर्ता को डॉकर कंटेनर चलाने के लिए सक्षम करना, उसे पूर्ण रूट पहुंच देने जैसा ही है। यह डॉकर दस्तावेज के सुरक्षा खंड में भी दस्तावेज किया गया है। – Blackclaws

उत्तर

97

आप निर्दिष्ट कर सकते हैं कि एक मात्रा-केवल पढ़ने के लिए किया जाना चाहिए -v स्विच करने के लिए :ro जोड़कर:

docker run -v /path/on/host:/path/on/container:ro my/image 

ध्यान दें कि फ़ोल्डर तो केवल पढ़ने के लिए है कंटेनर में और मेजबान पर पढ़ने-लिखने की।

+1

वहां लिखने की अनुमति है, लेकिन मेजबान को वापस लिखना नहीं है? यह शानदार होगा –

+4

ऐसा लगता है जैसे आप कोई वॉल्यूम निर्दिष्ट नहीं करना चाहते हैं। – Alp

+0

का क्रमबद्ध करें ... मुझे बस डॉकरफ़ाइल कॉपी का उपयोग करने के लिए एक छवि बनाने की आवश्यकता नहीं है या बंद बंद कंटेनर पर एक अलग 'डॉकर सीपी' कमांड का उपयोग करें। –