खोज…


डेटा-केवल कंटेनर

डेटा-केवल कंटेनर अप्रचलित हैं और अब इसे एक विरोधी पैटर्न माना जाता है!

योर के दिनों में, डॉकर के volume सबकोमैंड से पहले, और इससे पहले कि नाम वाले वॉल्यूम बनाना संभव था, किसी भी कंटेनर में उनके लिए अधिक संदर्भ नहीं होने पर डॉकर ने वॉल्यूम हटा दिए। डेटा-ओनली कंटेनर अप्रचलित हैं क्योंकि डॉकर अब नामित संस्करणों को बनाने की क्षमता प्रदान करता है, साथ ही साथ विभिन्न docker volume उपकमांड के माध्यम से बहुत अधिक उपयोगिता है। डेटा-केवल कंटेनरों को अब इस कारण से एक विरोधी पैटर्न माना जाता है।

पिछले कुछ वर्षों से वेब पर कई संसाधन एक "डेटा-ओनली कंटेनर" नामक एक पैटर्न का उपयोग करते हुए उल्लेख करते हैं, जो कि केवल एक डॉक कंटेनर है जो केवल डेटा वॉल्यूम के संदर्भ में रखने के लिए मौजूद है।

याद रखें कि इस संदर्भ में, एक "डेटा वॉल्यूम" एक डॉकर वॉल्यूम है जो होस्ट से माउंट नहीं किया गया है। स्पष्ट करने के लिए, एक "डेटा की मात्रा" एक मात्रा जिसके साथ या तो बनाया जाता है VOLUME Dockerfile निर्देश, या का उपयोग कर -v एक में कमांड लाइन पर स्विच docker run , आदेश विशेष रूप से प्रारूप के साथ -v /path/on/container । इसलिए एक "डेटा-ओनली कंटेनर" एक कंटेनर है जिसका एकमात्र उद्देश्य एक डेटा वॉल्यूम संलग्न करना है, जिसका उपयोग --volumes-from docker run कमांड में --volumes-from ध्वज द्वारा किया जाता है। उदाहरण के लिए:

docker run -d --name "mysql-data" -v "/var/lib/mysql" alpine /bin/true

जब उपरोक्त कमांड चलाया जाता है, तो एक "डेटा-ओनली कंटेनर" बनाया जाता है। यह बस एक खाली कंटेनर होता है जिसमें एक डाटा वॉल्यूम जुड़ा होता है। तब इस मात्रा का उपयोग किसी अन्य कंटेनर में करना संभव था, जैसे:

docker run -d --name="mysql" --volumes-from="mysql-data" mysql

mysql कंटेनर में अब वही वॉल्यूम है जो mysql-data में भी है।

क्योंकि डॉकटर अब volume सबकमांड और नामित वॉल्यूम प्रदान करता है, यह पैटर्न अब अप्रचलित है और अनुशंसित नहीं है।

volume उपकमांड और नामित संस्करणों के साथ आरंभ करने के लिए नामांकित वॉल्यूम बनाना देखें

एक डेटा वॉल्यूम बनाना

docker run -d --name "mysql-1" -v "/var/lib/mysql" mysql

यह आदेश mysql छवि से एक नया कंटेनर बनाता है। यह एक नया डेटा वॉल्यूम भी बनाता है, जो तब कंटेनर में /var/lib/mysql पर माउंट करता है। यह मात्रा कंटेनर के जीवनकाल से परे बनी रहती है, इसके अंदर कोई भी डेटा मदद करता है। यह कहना है, जब एक कंटेनर को हटा दिया जाता है, तो इसके फाइल सिस्टम परिवर्तन भी हटा दिए जाते हैं। यदि एक डेटाबेस कंटेनर में डेटा संग्रहीत कर रहा था, और कंटेनर को हटा दिया जाता है, तो उस डेटा को भी हटा दिया जाता है। जब उसके कंटेनर को हटा दिया जाता है तब भी वॉल्यूम एक विशेष स्थान को बनाए रखेगा।

कई कंटेनर में एक ही वॉल्यूम का उपयोग करना संभव है --volumes-from कमांड लाइन विकल्प से:

docker run -d --name="mysql-2" --volumes-from="mysql-1" mysql

mysql-2 कंटेनर में अब mysql-1 से डेटा वॉल्यूम जुड़ा हुआ है, पथ /var/lib/mysql का भी उपयोग कर रहा है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow