2016-07-11 13 views
6

यदि मैं डॉकर फ़ाइल में VOLUME का उपयोग करता हूं, तो यह एक अज्ञात वॉल्यूम बनाता है। क्या डॉकरफाइल से नामित वॉल्यूम बनाने का कोई तरीका है?डॉकरफ़ाइल में नामांकित वॉल्यूम घोषित कैसे करें?

मैं

docker run -v my-named-volume:/mnt/something repo/my-img 

सभी मैं एक Dockerfile के माध्यम से प्राप्त करने के लिए प्रबंधित किया है की Dockerfile बराबर की तलाश में हूँ

docker run -v /mnt/something repo/my-img 

के बराबर मैं यह सिर्फ समर्थित नहीं है लगता होगा है; हालांकि, the doc इस

मात्रा अनुदेश निर्दिष्ट नाम के साथ एक पर्वत बिंदु बनाता है और देशी मेजबान या अन्य कंटेनरों से बाह्य घुड़सवार मात्रा धारण के रूप में यह निशान कहते हैं।

यह संकेत करने के लिए एक तरह से मात्रा नाम के लिए है कि वहाँ लगता है, लेकिन यह नहीं कह कैसे

+2

संक्षिप्त उत्तर, यह संभव नहीं है * डिज़ाइन द्वारा * आपको यह समझने के लिए सहायक [https://github.com/moby/moby/issues/30647#issuecomment-276882545) पोस्ट मिल सकता है – ira

उत्तर

2

यह संभव नहीं है करता है। मुझे लगता है कि दस्तावेज़ों को शायद भ्रामक रूप से शब्द दिया जाता है।

3

यह थोड़ा अस्पष्ट है। यह उस नाम का उपयोग कर एक माउंट प्वाइंट बनाता है लेकिन वास्तविक फ़ाइल पथ उस नाम का उपयोग नहीं करता है। यदि आप docker inspect {container-name} करते हैं, तो आपको नाम: "Destination": "/mnt/something", और वास्तविक स्थान जैसे "Source": "/var/lib/docker/volumes/cb80c7802244dd3669eed8afb7d94b61366844d80677eb180fa12002db04ea7c/_data", दिखाई देगा।

ऐसा इसलिए है क्योंकि डॉकरफ़ाइल किसी विशेष होस्ट से बंधी नहीं है और यह सुनिश्चित नहीं हो सकता कि होस्ट वॉल्यूम पथ मौजूद होगा। आपको run (या समतुल्य) कथन में ऐसा करने की आवश्यकता है। कंटेनर बनने के बाद वॉल्यूम स्थित है, यह जानने के लिए आप एपीआई या docker inspect का उपयोग कर सकते हैं यदि आपको उस जानकारी को किसी स्क्रिप्ट या इसी तरह उपयोग करने की आवश्यकता होती है।

डॉकरफ़ाइल में वॉल्यूम घोषित करना बीमा करता है कि डेटा जारी रहेगा और मेजबान के लिए उपलब्ध होगा - भले ही स्थान प्रीसेट न हो।

संबंधित मुद्दे