मैंने अभी काम के लिए डॉकर सीखना शुरू किया है, और मेरा वर्तमान विश्वास यह है कि यदि कोई डॉकर कंटेनर rm विकल्प के साथ चलाता है - यानी।

docker run -rm mycontainer python3 ./mycode.py --logging='true'

तब जो भी उत्पादन होता है वह कंटेनर के बंद होने पर गायब हो जाता है। हालाँकि, मैं अभी कुछ कोड प्रलेखन में आया हूँ जिसमें कहा गया है:

"--rm: निष्पादन के अंत में कंटेनर को हटा देता है। नोट - चूंकि आउटपुट को वॉल्यूम में संग्रहीत किया जाता है, यह कंटेनर के जीवन से परे बना रहता है"

इसका क्या मतलब है?

यह जिस मूल आदेश से आया था उसका रूप था:

docker run -it --name p2p -d --rm \
       --mount type=bind,source=/home/me/scripts,target=/scripts \
       --mount source=data,target=/data \
       --mount source=output,target=/output \
       --gpus device=GPU-5jhfjhjhjg-jhg-jgjgjh \
       my_docker_container \
       python3 mycode.py --logging='true' <lots of other flags>

इसका क्या अर्थ है "आउटपुट वॉल्यूम में संग्रहीत है" और मैं इस वॉल्यूम को खोजने के बारे में कैसे जा सकता हूं?

0
user1245262 26 जिंदा 2022, 21:05
मूल टिप्पणी ने मेजबान के फाइल सिस्टम में कुछ डेटा को बनाए रखने के लिए बाइंड माउंट (वॉल्यूम) का उपयोग किया था। आपके कंटेनर के साथ ऐसा नहीं है।
 – 
The Fool
26 जिंदा 2022, 21:14

1 उत्तर

वॉल्यूम एक कंटेनर के जीवनकाल से परे डेटा को बनाए रखने की प्राथमिक विधि है और कंटेनरों के बीच डेटा साझा करने के लिए भी है, बशर्ते कि वॉल्यूम लिखने योग्य हो, एक कंटेनर जो परिवर्तन करता है वह दूसरे को दिखाई देता है।

इसे ऐसे समझें जैसे कि एक नेटवर्क पर दो कंप्यूटरों के बीच साझा किए गए नेटवर्क फ़ाइल स्टोरेज की अपनी कोई हार्ड डिस्क नहीं है। अब, यदि कंप्यूटर बंद हो जाता है और फिर से चालू हो जाता है, तो उसके पास लगातार डेटा प्राप्त करने के लिए हार्ड-डिस्क नहीं होता है, लेकिन नेटवर्क फ़ाइल भंडारण के कारण, यह दूसरे द्वारा बनाई गई सामग्री के नवीनतम अपडेट देख सकता है। मशीन। वही वॉल्यूम और कंटेनरों के साथ जाता है।

डॉकर वॉल्यूम का स्रोत लगातार डिस्क स्टोरेज का कोई तार्किक अमूर्तता हो सकता है, चाहे वह विंडोज़ ड्राइव हो या लिनक्स माउंट पॉइंट। एक कंटेनर पर वॉल्यूम बढ़ते समय, आप मूल रूप से कंटेनर के भीतर एक लिनक्स माउंट पॉइंट बना रहे हैं जो बाहरी लॉजिकल स्टोरेज को इंगित कर रहा है ताकि यह देख सके कि होस्ट क्या देखता है और इसके विपरीत। उदाहरण के लिए, आपके द्वारा साझा किए गए उदाहरण में, होस्ट माउंट पॉइंट /home/me/scripts/ सामग्री को कंटेनर द्वारा /scripts से संबंधित के रूप में देखा जाता है। वास्तव में, यदि आप कंटेनर के बैश शेल में प्रवेश करते हैं और कंटेनर के भीतर /स्क्रिप्ट में किसी भी फ़ाइल पर rm चलाते हैं, तो इसका परिणाम /home/me/scripts/ सामग्री को भी हटा दिया जाएगा, लेकिन वास्तव में, यह है मेजबान और कंटेनर द्वारा एक ही बात की जा रही है।

कंटेनरों में डेटाबेस चलाने के लिए वॉल्यूम आवश्यक हैं क्योंकि कंटेनर अपने आप में अल्पकालिक है और मरने पर सब कुछ खो जाता है। लेकिन वॉल्यूम होने का मतलब है कि यदि डीबी कंटेनर को उसी वॉल्यूम माउंट के साथ फिर से शुरू किया जाता है जो होस्ट फाइल सिस्टम की ओर इशारा करता है जहां डीबी डेटा रहता है, तो डीबी स्थिति बरकरार रहती है।

मैंने जो कुछ कहा, उसका उद्देश्य किसी मात्रा का मूल विचार प्राप्त करना है न कि पूरी तरह से सटीक होने की ओर- मुझे आशा है कि जो मैं कह रहा हूं वह आपको मिल गया होगा। यहां एक बेहतरीन लेख है जो डॉकर वॉल्यूम में गहराई तक जाता है। यह 5 साल का है लेकिन अवधारणा अभी भी कायम है।

0
Brad Rehman 26 जिंदा 2022, 21:35