डॉकर के बारे में सामग्रियों की श्रृंखला के अनुवाद के आज के भाग में, हम डेटा के साथ काम करने के बारे में बात करेंगे। विशेष रूप से, डॉकर वॉल्यूम के बारे में। इन सामग्रियों में, हमने लगातार विभिन्न खाद्य उपमाओं के साथ डॉकर प्रोग्रामिंग तंत्र की तुलना की। हम यहां इस परंपरा से नहीं हटेंगे. डॉकर में डेटा को मसाला बनने दें। दुनिया में कई मसाले हैं, और डॉकर के पास डेटा के साथ काम करने के कई तरीके हैं।
कृपया ध्यान दें कि यह सामग्री डॉकर इंजन संस्करण 18.09.1 और एपीआई संस्करण का उपयोग करके तैयार की गई थी 1.39.
डॉकर में डेटा अस्थायी या स्थायी रूप से संग्रहीत किया जा सकता है। आइए अस्थायी डेटा से शुरू करें।
अस्थायी डेटा भंडारण
डॉकर कंटेनरों में अस्थायी डेटा को प्रबंधित करने के दो तरीके हैं।
डिफ़ॉल्ट रूप से, किसी कंटेनर में चल रहे एप्लिकेशन द्वारा बनाई गई फ़ाइलें एक लिखने योग्य कंटेनर परत में संग्रहीत की जाती हैं। इस तंत्र को काम करने के लिए, किसी विशेष चीज़ को कॉन्फ़िगर करने की आवश्यकता नहीं है। यह सस्ता और आनंददायक साबित होता है। एप्लिकेशन को बस डेटा सहेजने और अपना काम जारी रखने की आवश्यकता है। हालाँकि, कंटेनर का अस्तित्व समाप्त होने के बाद, इतने सरल तरीके से सहेजा गया डेटा भी गायब हो जाएगा।
डॉकर में अस्थायी फ़ाइल भंडारण एक और समाधान है जो उन मामलों के लिए उपयुक्त है जहां आपको मानक अस्थायी डेटा भंडारण तंत्र का उपयोग करके प्राप्त करने योग्य प्रदर्शन की तुलना में उच्च स्तर के प्रदर्शन की आवश्यकता होती है। यदि आपको अपने डेटा को कंटेनर की मौजूदगी से अधिक समय तक संग्रहीत करने की आवश्यकता नहीं है, तो आप कंटेनर tmpfs से कनेक्ट कर सकते हैं - एक अस्थायी सूचना भंडार जो होस्ट की रैम का उपयोग करता है। इससे डेटा लिखने और पढ़ने के कार्यों के निष्पादन में तेजी आएगी।
अक्सर ऐसा होता है कि कंटेनर का अस्तित्व समाप्त होने के बाद भी डेटा को संग्रहीत करने की आवश्यकता होती है। ऐसा करने के लिए, हमें सतत डेटा भंडारण तंत्र की आवश्यकता है।
लगातार डेटा भंडारण
डेटा जीवनकाल को कंटेनर जीवनकाल से अधिक लंबा करने के दो तरीके हैं। एक तरीका बाइंड माउंट तकनीक का उपयोग करना है। इस दृष्टिकोण के साथ, उदाहरण के लिए, आप कंटेनर में एक वास्तविक जीवन फ़ोल्डर माउंट कर सकते हैं। डॉकर के बाहर की प्रक्रियाएं भी ऐसे फ़ोल्डर में संग्रहीत डेटा के साथ काम करने में सक्षम होंगी। कि कैसे नज़र tmpfs माउंट और बाइंड माउंट तकनीक।
tmpfs को माउंट करना और बाइंड माउंट करना
बाइंड माउंट तकनीक का उपयोग करने का नुकसान यह है कि इसका उपयोग डेटा बैकअप, डेटा माइग्रेशन, कई कंटेनरों के बीच डेटा साझा करना जटिल बनाता है। लगातार डेटा भंडारण के लिए डॉकर वॉल्यूम का उपयोग करना बहुत बेहतर है।
वॉल्यूम डॉकर
वॉल्यूम एक फ़ाइल सिस्टम है जो कंटेनरों के बाहर होस्ट मशीन पर स्थित होता है। वॉल्यूम डॉकर द्वारा बनाए और प्रबंधित किए जाते हैं। यहां डॉकर वॉल्यूम के मुख्य गुण हैं:
वे सूचना के स्थायी भंडारण का एक साधन हैं।
वे स्वतंत्र हैं और कंटेनरों से अलग हैं।
इन्हें विभिन्न कंटेनरों के बीच साझा किया जा सकता है।
वे आपको डेटा के कुशल पढ़ने और लिखने को व्यवस्थित करने की अनुमति देते हैं।
वॉल्यूम को दूरस्थ क्लाउड प्रदाता के संसाधनों पर रखा जा सकता है।
उन्हें एन्क्रिप्ट किया जा सकता है.
उन्हें नाम दिए जा सकते हैं.
कंटेनर डेटा के साथ वॉल्यूम की पूर्व-पॉपुलेशन की व्यवस्था कर सकता है।
वे परीक्षण के लिए सुविधाजनक हैं.
जैसा कि आप देख सकते हैं, डॉकर वॉल्यूम में अद्भुत गुण हैं। आइए बात करें कि इन्हें कैसे बनाया जाए।
वॉल्यूम बनाना
डॉकर या एपीआई अनुरोधों का उपयोग करके वॉल्यूम बनाया जा सकता है।
यहां डॉकरफ़ाइल में एक निर्देश है जो आपको कंटेनर शुरू करते समय वॉल्यूम बनाने की अनुमति देता है।
VOLUME /my_volume
समान निर्देश का उपयोग करते समय, डॉकर, कंटेनर बनाने के बाद, निर्दिष्ट स्थान पर पहले से मौजूद डेटा युक्त एक वॉल्यूम बनाएगा। ध्यान दें कि यदि आप डॉकरफ़ाइल का उपयोग करके वॉल्यूम बनाते हैं, तो यह आपको वॉल्यूम के माउंट बिंदु को निर्दिष्ट करने की आवश्यकता से राहत नहीं देता है।
आप JSON प्रारूप का उपयोग करके Dockerfile में वॉल्यूम भी बना सकते हैं।
इसके अलावा, कंटेनर चलने के दौरान कमांड लाइन टूल का उपयोग करके वॉल्यूम बनाया जा सकता है।
कमांड लाइन से वॉल्यूम के साथ काम करना
▍वॉल्यूम निर्माण
आप निम्न आदेश के साथ एक स्टैंडअलोन वॉल्यूम बना सकते हैं:
docker volume create —-name my_volume
▍वॉल्यूम के बारे में जानकारी प्राप्त करें
डॉकर वॉल्यूम की सूची देखने के लिए, निम्नलिखित कमांड का उपयोग करें:
docker volume ls
आप इस तरह एक विशिष्ट वॉल्यूम का पता लगा सकते हैं:
docker volume inspect my_volume
▍वॉल्यूम हटाना
आप वॉल्यूम को इस प्रकार हटा सकते हैं:
docker volume rm my_volume
कंटेनर द्वारा उपयोग नहीं किए जाने वाले सभी वॉल्यूम को हटाने के लिए, आप निम्न कमांड का सहारा ले सकते हैं:
docker volume prune
वॉल्यूम हटाने से पहले, डॉकर आपसे इस ऑपरेशन की पुष्टि करने के लिए कहेगा।
यदि कोई वॉल्यूम किसी कंटेनर से संबद्ध है, तो उस वॉल्यूम को तब तक हटाया नहीं जा सकता जब तक कि संबंधित कंटेनर हटा न दिया जाए। वहीं, भले ही कंटेनर हटा दिया जाए, डॉकर हमेशा इसे नहीं समझता है। यदि ऐसा होता है, तो आप निम्न आदेश का उपयोग कर सकते हैं:
docker system prune
इसे डॉकर संसाधनों को साफ़ करने के लिए डिज़ाइन किया गया है। इस आदेश को निष्पादित करने के बाद, आप उन वॉल्यूम को हटाने में सक्षम होंगे जिनकी स्थिति पहले गलत थी।
--माउंट और --वॉल्यूम झंडे
वॉल्यूम के साथ काम करने के लिए, जब आप कमांड को कॉल करते हैं docker, आपको अक्सर झंडों का उपयोग करने की आवश्यकता होगी। उदाहरण के लिए, कंटेनर निर्माण के दौरान वॉल्यूम बनाने के लिए, आप इस निर्माण का उपयोग कर सकते हैं:
docker container run --mount source=my_volume, target=/container/path/for/volume my_image
प्राचीन काल में (2017 तक) झंडा लोकप्रिय था --volume. प्रारंभ में यह ध्वज (इसे संक्षिप्त रूप में भी प्रयोग किया जा सकता है, फिर ऐसा दिखता है -v) का उपयोग स्टैंडअलोन कंटेनरों और ध्वज के लिए किया गया था --mount - डॉकर झुंड वातावरण में। हालाँकि, डॉकर 17.06 के अनुसार, flag --mount किसी भी परिदृश्य में उपयोग किया जा सकता है.
झंडे का प्रयोग करते समय इस बात का ध्यान रखना चाहिए --mount कमांड में निर्दिष्ट किए जाने वाले अतिरिक्त डेटा की मात्रा बढ़ जाती है, लेकिन, कई कारणों से, इस विशेष ध्वज का उपयोग करना बेहतर है, न कि --volume. झंडा --mount एकमात्र तंत्र है जो आपको सेवाओं के साथ काम करने या वॉल्यूम ड्राइवर विकल्प निर्दिष्ट करने की अनुमति देता है। साथ ही, इस झंडे के साथ काम करना आसान है।
डॉकर डेटा हेरफेर कमांड के मौजूदा उदाहरणों में, आप ध्वज के उपयोग के कई उदाहरण देख सकते हैं -v. इन आदेशों को अपने लिए अनुकूलित करने का प्रयास करते समय, ध्यान रखें कि flags --mount и --volume विभिन्न पैरामीटर प्रारूपों का उपयोग करें। यानी, आप आसानी से प्रतिस्थापित नहीं कर सकते -v पर --mount और एक कार्यशील टीम प्राप्त करें।
के बीच मुख्य अंतर --mount и --volume क्या वह झंडे का उपयोग करते समय है --volume सभी पैरामीटर एक फ़ील्ड में एक साथ एकत्र किए जाते हैं, और उपयोग करते समय --mount पैरामीटर अलग हो गए हैं.
जब साथ काम कर रहे हों --mount पैरामीटर को कुंजी-मूल्य जोड़े के रूप में दर्शाया जाता है, अर्थात्, ऐसा दिखता है key=value. इन जोड़ियों को अल्पविराम द्वारा अलग किया जाता है। यहां आमतौर पर उपयोग किए जाने वाले विकल्प दिए गए हैं --mount:
type - माउंट प्रकार. संबंधित कुंजी का मान हो सकता है बाँध, आयतन या tmpfs. हम यहां वॉल्यूम के बारे में बात कर रहे हैं, यानी हम मूल्य में रुचि रखते हैं volume.
source - माउंट स्रोत. नामित वॉल्यूम के लिए, यह वॉल्यूम का नाम है। अनाम संस्करणों के लिए, यह कुंजी निर्दिष्ट नहीं है। इसे छोटा किया जा सकता है src.
destination - वह पथ जिस पर फ़ाइल या फ़ोल्डर कंटेनर में माउंट किया गया है। इस कुंजी को छोटा किया जा सकता है dst या target.
readonly - इच्छित वॉल्यूम को माउंट करता है केवल पढ़ने के लिए. इस कुंजी का उपयोग वैकल्पिक है, और इसे कोई मान निर्दिष्ट नहीं किया गया है।
यहां उपयोग का एक उदाहरण दिया गया है --mount कई विकल्पों के साथ:
docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image
परिणाम
यहां कुछ उपयोगी कमांड दिए गए हैं जिनका उपयोग आप डॉकर वॉल्यूम के साथ काम करते समय कर सकते हैं:
docker volume create
docker volume ls
docker volume inspect
docker volume rm
docker volume prune
यहां आमतौर पर उपयोग किए जाने वाले विकल्पों की एक सूची दी गई है --mount, फॉर्म के एक कमांड में लागू होता है docker run --mount my_options my_image:
type=volume
source=volume_name
destination=/path/in/container
readonly
अब जब हमने इस डॉकर श्रृंखला को पूरा कर लिया है, तो यह कुछ शब्द कहने का समय है कि डॉकर के शिक्षार्थी आगे कहां जा सकते हैं। यहां डॉकर के बारे में बहुत अच्छा लेख। यहां डॉकर के बारे में एक पुस्तक (इस पुस्तक को खरीदते समय, इसका नवीनतम संस्करण प्राप्त करने का प्रयास करें)। यहां उन लोगों के लिए एक और किताब जो सोचते हैं कि अभ्यास तकनीक सीखने का सबसे अच्छा तरीका है।
प्रिय पाठकों! शुरुआती लोगों को सीखने के लिए आप कौन सी डॉकर सामग्री सुझाएंगे?