Ubuntu लिनक्स के तहत Docker.io चल रहा है
चूंकि शक्तिशाली हार्डवेयर कम से कम एक वस्तु बन गया है, हार्डवेयर के एक टुकड़े पर कई वर्चुअल मशीन चलाने की क्षमता उद्योग मानदंड बन गई है। वेब होस्टिंग से क्लाउड कंप्यूटिंग तक, वर्चुअलाइज्ड वातावरण पर कई सेवाएं चलती हैं। साथ ही वर्चुअलबॉक्स जैसे डेस्कटॉप वर्चुअलाइजेशन समाधान, वग्रेंट जैसे त्वरित प्रावधान समाधान भी हैं। वर्चुअल मशीन के साथ समस्या यह है कि इसे अतिथि कंप्यूटर के हर पहलू को अनुकरण करने की आवश्यकता है जिसमें सभी सिस्टम रैम शामिल हैं जिन्हें विशेष रूप से वर्चुअल मशीन पर आवंटित किया जाएगा। नतीजतन, वर्चुअलाइजेशन संसाधन भुखमरी हो सकता है।
स्पेक्ट्रम के दूसरे छोर पर एक "क्रोट" वातावरण है, जो प्रक्रिया के लिए अंतर्निहित रूट निर्देशिका को बदलता है ताकि यह अपने पर्यावरण में चलता है और मेजबान ऑपरेटिंग सिस्टम पर अन्य फ़ाइलों तक पहुंच नहीं है। हालांकि, बिल्कुल कोई वर्चुअलाइजेशन नहीं है, बस एक अलग निर्देशिका पेड़ है।
इन दो प्रणालियों के बीच मध्य बिंदु एक कंटेनर है। कंटेनर वर्चुअलाइज्ड मशीन के कई फायदे प्रदान करते हैं लेकिन उच्च संसाधन ओवरहेड के बिना। कंटेनर क्रोट वातावरण से अधिक कार्यात्मक होते हैं जिसमें कुछ वर्चुअलाइजेशन होता है। उदाहरण के लिए, एक कंटेनर में बनाए गए प्रक्रियाओं को होस्ट ओएस में अलग से आईडी (पीआईडी) असाइन किया जाता है। तकनीकी शर्तों में, कंटेनर का अपना पीआईडी नेमस्पेस होता है। वास्तव में, कंटेनरों के पास नेटवर्किंग सबसिस्टम और इंटरप्रोसेस कम्युनिकेशन (आईपीसी) के लिए अपना नामस्थान है। इसका मतलब है कि एक कंटेनर नेटवर्क सेवाओं को चला सकता है, जैसे एसएसएच सर्वर या वेब सर्वर।
बाहर से, कंटेनर वर्चुअल मशीन की तरह अपने स्वयं के आईपी पते और इसकी अपनी नेटवर्किंग सेवाओं के साथ दिखता है, लेकिन अंदर कंटेनर वर्चुअल मशीन की तुलना में मेजबान ऑपरेटिंग सिस्टम का अधिक उपयोग करता है, और "क्रोट" वातावरण की तरह। उदाहरण के लिए, आप उबंटू होस्ट पर चल रहे एक सेंटोस कंटेनर का उपयोग कर सकते हैं। आदेश और फ़ाइलें CentOS से सभी हैं, लेकिन यदि आप कंटेनर से पूछते हैं कि यह कौन सा कर्नेल चल रहा है, तो यह रिपोर्ट करेगा कि यह उबंटू कर्नेल चला रहा है, क्योंकि कंटेनर मेजबान ओएस से कर्नेल पर चल रहा है।
डॉकर एक कंटेनर आधारित वर्चुअलाइजेशन फ्रेमवर्क है जो आपको एप्लिकेशन के लिए सभी निर्भरताओं वाले कंटेनर बनाने की अनुमति देता है। प्रत्येक कंटेनर को किसी अन्य से अलग रखा जाता है, और कुछ साझा नहीं किया जाता है।
64-बिट उबंटू 14.04 सिस्टम पर डॉकर स्थापित करने के लिए, निम्न आदेश चलाएं:
sudo apt-get अद्यतन sudo apt-get इंस्टॉल करें docker.io sudo ln -sf /usr/bin/docker.io / usr / local / bin / docker
डॉकर नामक एक मौजूदा उबंटू पैकेज है, जो केडीई 3 / गनोम 2 के लिए एक सिस्टम ट्रे है। भ्रम से बचने के लिए, कंटेनर रनटाइम को डॉकर.ओओ कहा जाता है। अंतिम आदेश "/ usr / local / bin / docker" से "/usr/bin/docker.io" पर एक लिंक बनाता है, जो docker.io के बजाय कमांड लाइन से डॉकर कमांड को सक्षम बनाता है।
नोट : डॉकर.ओओ अन्य डिस्ट्रो के लिए भी उपलब्ध है। अगर आप उबंटू का उपयोग नहीं कर रहे हैं तो इंस्टॉलेशन निर्देश यहां दिए गए हैं।
कंटेनर के अंदर एक खोल निष्पादित करने के लिए, चलाएं:
सुडो डॉकर रन-ए-यूटुंटू / बिन / बैश
" -i
" ध्वज सत्र इंटरैक्टिव बनाता है, और " -t
" ध्वज टर्मिनल सत्र का अनुकरण करने के लिए डॉकर को बताता है। "उबंटू" पैरामीटर डॉकर को उबंटू 14.04 के आधार पर एक कंटेनर चलाने के लिए कहता है और "/ bin / bash" वह कमान है जिसे कंटेनर ऊपर उठाने के बाद चलाया जाना चाहिए, यानी बैश खोल चलाएं।
जब डॉकर चलता है तो यह जांचता है कि वांछित बेस छवि फ़ाइल पहले डाउनलोड की गई है या नहीं। यदि ऐसा नहीं है, तो यह index.docker.io से छवि डाउनलोड करेगा, यह देखने के लिए साइट भी है कि कौन सी छवियां आधिकारिक तौर पर डॉकर द्वारा समर्थित हैं।
एक कंटेनर शुरू किए बिना अन्य छवियों को डाउनलोड करने के लिए, " docker pull
" कमांड का उपयोग करें। उदाहरण के लिए, CentOS बेस छवि उपयोग डाउनलोड करने के लिए:
सुडो डॉकर खींचो सेंटोस
आप एक कंटेनर में सिंगल कमांड भी चला सकते हैं और फिर कंटेनर से बाहर निकलने दें। CentOS कंटेनर के अंदर " ps aux
" कमांड चलाने के लिए निम्न आदेश का उपयोग करें:
सुडो डॉकर रन सेंटोस पीएस ऑक्स
जब एक कंटेनर बंद हो जाता है, तो सभी परिवर्तन गुम हो जाते हैं। इस दृष्टिकोण का लाभ यह है कि जब एक कंटेनर शुरू होता है, तो यह एक ज्ञात राज्य में होता है। परीक्षण वातावरण और निर्माण सेवाओं आदि के लिए यह आवश्यक है। क्लाउड सेवाओं को चलाने के लिए यह भी महत्वपूर्ण है, क्योंकि कंटेनर को तुरंत रीसेट किया जा सकता है और स्थिर स्थिति में रीबूट किया जा सकता है।
हालांकि, इसका मतलब यह भी है कि कंटेनर में बनाए गए किसी भी कॉन्फ़िगरेशन या किसी भी फाइल को खो दिया जाएगा। समाधान आपके सभी परिवर्तनों के साथ एक नई छवि बनाना है। निम्न आदेशों का प्रयास करें:
sudo docker run ubuntu apt-get install -y nmap sudo docker ps -l
पहला आदेश एक कंटेनर शुरू करेगा और nmap स्थापित करेगा। दूसरा आदेश नवीनतम (-l) निर्मित कंटेनर सूचीबद्ध करेगा, भले ही यह नहीं चल रहा हो।
अब आप उस कंटेनर का एक स्नैपशॉट बना सकते हैं और उसे एक नई छवि में सहेज सकते हैं:
सुडो डॉकर प्रतिबद्ध 1b498c2d502c ubuntu-with-nmap
"1b498c2d502c" कंटेनर की आईडी है जैसा कि " docker ps -l
" कमांड द्वारा सूचीबद्ध है। अब यदि आप ubuntu-with-nmap कंटेनर के लिए खोल खोलते हैं, तो इसमें nmap कमांड पूर्व-स्थापित होगा।
sudo docker run -i -t ubuntu-with-nmap / bin / bash
डॉकर.ओ के दस्तावेज में डॉकर के बारे में बहुत सारी जानकारी है, और कई उदाहरण सेटअप भी समझाए गए हैं, जिसमें एक पाइथन वेब ऐप चलाने और एसएसएच सेवा चलाने जैसे सामान्य कार्यों को कैसे करना है।
यदि आपके पास डॉकर के बारे में कोई प्रश्न है, तो एक मजबूत डॉकर समुदाय है जो मदद करने में सक्षम होना चाहिए। आप नीचे टिप्पणी अनुभाग में प्रश्न भी पूछ सकते हैं और हम देखेंगे कि हम मदद कर सकते हैं या नहीं।