2016-09-15 13 views
7

मैं एक डोकर छवि (और फलस्वरूप उस छवि से कंटेनर) है कि बड़ी फ़ाइलों का उपयोग बनाने के लिए (जीनोमिक डेटा वाली है, इस प्रकार तक पहुँचने 10GB आकार में ~) की जरूरत है।विशाल फ़ाइलें

मैं कैसे उनके उपयोग का अनुकूलन करना चाहिए? मैं उन्हें कंटेनर (जैसे COPY large_folder large_folder_in_container के रूप में) में शामिल करने के लिए माना जाता है? क्या ऐसी फाइलों का संदर्भ देने का कोई बेहतर तरीका है? मुद्दा यह है कि मेरे निजी भंडार में ऐसे कंटेनर को धक्का देने के लिए यह अजीब लगता है (जो> 10 जीबी होगा)। मुझे आश्चर्य है कि कंटेनर को एक प्रकार की मात्रा को जोड़ने का कोई तरीका है, बिना उन सभी जीबी को पैक किए।

धन्यवाद।

उत्तर

5

क्या मुझे उन्हें कंटेनर में शामिल करना चाहिए (जैसे COPY large_folder large_folder_in_container)?

आप ऐसा करते हैं, कि उन्हें छवि में शामिल होंगे, कंटेनर नहीं: यदि आप उस छवि का इस्तेमाल किया अभी भी 10 जीबी होगा वास्तविक डिस्क स्थान से 20 कंटेनर लांच कर सकता है।

आप अपनी पहली छवि से एक और छवि बनाने के लिए थे, तो स्तरित फाइल सिस्टम माता पिता छवि से परतों का पुन: उपयोग होगा, और नई छवि अभी भी "केवल" 10GB होगा।

+0

कि यकीन के लिए उपयोगी है। लेकिन जब मैं जाता हूं और रजिस्ट्री से छवि को पॉप अप करता हूं (एक कंटेनर चलाने के लिए) मैं सिस्टम की तस्वीर के बारे में चिंतित हूं। मैं इसे एक सीआई/सीडी पाइपलाइन में फिट करने की कोशिश कर रहा हूं, जिसमें एक नए ओपनस्टैक इंस्टेंस (पैकर के माध्यम से) पर कंटेनर लोड करने के लिए (तैनाती चरण के दौरान) की आवश्यकता होगी। चूंकि इस तरह का उदाहरण हमेशा अलग होता है, इसलिए जब भी मैं सीडी पाइपलाइन के माध्यम से नए बनाए गए ओपनस्टैक इंस्टेंस (किसी भी पहले लोड की गई परत के बिना) में एक बड़ा कंटेनर लोड करने की आवश्यकता होती है, और इस प्रकार प्रत्येक प्रतिबद्धता पर 10 जीबी चलती है। क्या यह सबसे अच्छा समाधान है जिसे कोई मिल सकता है? – Eleanore

+0

@ एलनोर एक बार जब छवि आपके दास की स्थानीय डॉकर रजिस्ट्री में लोड हो गई है, तो कंटेनर तुरंत शुरू होता है। लेकिन अगर छवि बदलती है, तो पिछले एक के आधार पर वृद्धिशील रूप से एक नई छवि बनाने के लिए सबसे अच्छा क्या होगा, और केवल परिवर्तनों सहित। ऐसा कहा जा रहा है, अगर * सभी * 10 जीबी एक छवि से अगले में बदल जाता है ... आपको वास्तव में एक समस्या है। – VonC

4

ऐसी फ़ाइलों को संदर्भित करने का एक बेहतर तरीका है?

यदि आपके पास पहले से डेटा वितरित करने का कोई तरीका है तो मैं कंटेनरों को वॉल्यूम संलग्न करने के लिए "बाइंड माउंट" का उपयोग करूंगा।

docker run -v /path/to/data/on/host:/path/to/data/in/container <image> ... 

इस तरह आप छवि को बदल सकते हैं और आप बड़े डेटा हर बार सेट फिर से डाउनलोड करने के लिए नहीं होगा।

FROM scratch 
COPY dataset /dataset 
VOLUME /dataset 

से:

आप रजिस्ट्री का उपयोग बड़े डेटा सेट वितरित करने के लिए है, लेकिन डेटा अलग से सेट करने के लिए परिवर्तन प्रबंधन करना चाहते करना चाहता था, तो आप एक Dockerfile इस तरह के साथ एक डेटा की मात्रा कंटेनर इस्तेमाल कर सकते हैं आपके आवेदन कंटेनर आपको लगता है कि मात्रा का उपयोग कर संलग्न कर सकते हैं:

docker run -d --name dataset <data volume image name> 
docker run --volumes-from dataset <image> ... 

किसी भी तरह से, मुझे लगता है कि https://docs.docker.com/engine/tutorials/dockervolumes/ आप क्या चाहते हैं।

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