डॉकर आणि व्हर्च्युअल मशीन्सचा परिचय
डॉकर आणि व्हर्च्युअल मशीन (VMs) हे दोन्ही अनुप्रयोग उपयोजित करण्यासाठी लोकप्रिय साधने आहेत, परंतु ते मूलभूतपणे भिन्न मार्गांनी कार्य करतात. डॉकर संपूर्ण फाइलसिस्टम, आयसोलेटेड नेटवर्किंग आणि इतर वैशिष्ट्ये व्हीएमशी संबंधित नसतानाही कसे पुरवू शकतात हे पाहून अनेक डेव्हलपर स्वतःला गोंधळात टाकतात.
या लेखाचा उद्देश डॉकर आणि पारंपारिक व्हर्च्युअल मशीनमधील फरक स्पष्ट करणे, सॉफ्टवेअर उपयोजित करण्यासाठी डॉकरला अधिक हलके आणि सोपे का मानले जाते हे स्पष्ट करणे. आम्ही अंतर्निहित तंत्रज्ञान आणि उत्पादन वातावरणात डॉकर वापरण्याचे व्यावहारिक फायदे जाणून घेऊ.
आज्ञा | वर्णन |
---|---|
FROM | डॉकर कंटेनर तयार करण्यासाठी वापरण्यासाठी बेस इमेज निर्दिष्ट करते. |
WORKDIR | डॉकर कंटेनरमध्ये कार्यरत निर्देशिका सेट करते. |
COPY | होस्ट मशीनमधून डॉकर कंटेनरमध्ये फाइल्स किंवा निर्देशिका कॉपी करते. |
RUN | बिल्ड प्रक्रियेदरम्यान डॉकर कंटेनरमध्ये कमांड कार्यान्वित करते. |
EXPOSE | डॉकरला सूचित करते की कंटेनर रनटाइमच्या वेळी निर्दिष्ट नेटवर्क पोर्टवर ऐकतो. |
CMD | डॉकर कंटेनर सुरू झाल्यावर चालवण्याची आज्ञा निर्दिष्ट करते. |
config.vm.box | व्हॅग्रंट व्हर्च्युअल मशीनसाठी वापरण्यासाठी बेस बॉक्स परिभाषित करते. |
config.vm.network | नेटवर्क सेटिंग्ज कॉन्फिगर करते, जसे की होस्टकडून VM वर पोर्ट फॉरवर्ड करणे. |
config.vm.provision | व्हर्च्युअल मशीनची तरतूद कशी करायची ते निर्दिष्ट करते, जसे की सेटअप दरम्यान शेल स्क्रिप्ट चालवणे. |
डॉकरफाइल आणि व्हॅग्रंटफाइल एक्सप्लोर करत आहे
प्रदान केलेल्या उदाहरणांमध्ये, आम्ही प्रथम Node.js ऍप्लिकेशन उपयोजित करण्यासाठी डॉकरफाइल कशी तयार करावी हे दाखवले. डॉकरफाइल बेस इमेज सह निर्दिष्ट करून सुरू होते आदेश, या प्रकरणात, अधिकृत Node.js रनटाइम वापरून. कंटेनरच्या आत कार्यरत निर्देशिका सेट करणे यासह साध्य केले जाते कमांड, जे सुनिश्चित करते की त्यानंतरच्या कमांड्स निर्दिष्ट निर्देशिकेत कार्यान्वित केल्या जातात. द पॅकेज.json फाइल्स आणि ॲप्लिकेशन कोड कंटेनरमध्ये हस्तांतरित करण्यासाठी कमांडचा वापर केला जातो. द RUN कमांड नंतर कंटेनरमध्ये आवश्यक अवलंबन स्थापित करते. आम्ही वापरून अनुप्रयोग चालते पोर्ट उघड आदेश, आणि शेवटी, द कमांड कंटेनर सुरू झाल्यावर ऍप्लिकेशन चालवण्याची कमांड परिभाषित करते.
Vagrantfile उदाहरणासाठी, बेस बॉक्स सह निर्दिष्ट करून कॉन्फिगरेशन सुरू होते कमांड, येथे उबंटू 20.04 वापरून. वापरून नेटवर्क सेटिंग्ज कॉन्फिगर केल्या आहेत कमांड, जे होस्टवरील पोर्ट 8080 ला अतिथी VM वरील पोर्ट 80 वर अग्रेषित करते, VM वर चालणाऱ्या सेवांमध्ये बाह्य प्रवेशास अनुमती देते. द कमांडचा वापर शेल स्क्रिप्ट चालविण्यासाठी केला जातो जो पॅकेज सूची अद्यतनित करतो आणि Apache2 स्थापित करतो, आवश्यक सॉफ्टवेअरसह VM ची तरतूद करतो. या कमांड्स डॉकरद्वारे प्रदान केलेल्या कंटेनरीकृत वातावरणाच्या तुलनेत अधिक पारंपारिक दृष्टीकोन ऑफर करून, VM वातावरण सेट करण्यासाठी मूलभूत चरणांचे प्रदर्शन करतात.
Node.js ऍप्लिकेशन डिप्लॉयमेंटसाठी डॉकरफाइल तयार करणे
हे उदाहरण Node.js ऍप्लिकेशनसाठी डॉकरफाइल कशी तयार करायची हे दाखवते, डॉकर कंटेनरमध्ये ॲप तयार आणि चालवण्याच्या पायऱ्या दर्शविते.
# Use an official Node.js runtime as a parent image
FROM node:14
# Set the working directory inside the container
WORKDIR /usr/src/app
# Copy package.json and package-lock.json to the container
COPY package*.json ./
# Install the application dependencies inside the container
RUN npm install
# Copy the rest of the application code to the container
COPY . .
# Expose the port the app runs on
EXPOSE 8080
# Define the command to run the app
CMD ["node", "app.js"]
व्हॅग्रंट वापरून व्हर्च्युअल मशीन सेट करणे
हे उदाहरण VM वातावरण परिभाषित आणि कॉन्फिगर करण्याच्या प्रक्रियेचे प्रात्यक्षिक करून, साध्या Vagrantfile सह Vagrant वापरून आभासी मशीन कसे सेट करायचे ते दाखवते.
१
डॉकर आणि व्हर्च्युअल मशीन्स समजून घेणे
डॉकर आणि व्हर्च्युअल मशीन्स (व्हीएम) मधील मुख्य फरक म्हणजे ते सिस्टम संसाधने कसे वापरतात. VMs हायपरवाइजरवर चालतात, जे हार्डवेअरचे अनुकरण करते आणि होस्ट मशीनवर एकाधिक ऑपरेटिंग सिस्टम्सना एकाच वेळी चालवण्यास अनुमती देते. यासाठी प्रत्येक VM ला पूर्ण अतिथी ऑपरेटिंग सिस्टीम, लायब्ररीचा स्वतःचा संच आणि बायनरी समाविष्ट करणे आवश्यक आहे. हे केवळ महत्त्वपूर्ण सिस्टम संसाधने वापरत नाही तर तैनाती आणि देखभालची एकूण आकार आणि जटिलता देखील वाढवते.
याउलट, डॉकर कंटेनरायझेशन तंत्रज्ञानाचा लाभ घेते, जे एकाधिक कंटेनरला समान ऑपरेटिंग सिस्टम कर्नल सामायिक करण्यास अनुमती देते. प्रत्येक कंटेनर वापरकर्त्याच्या जागेत एक वेगळी प्रक्रिया म्हणून चालतो. याचा अर्थ VM च्या तुलनेत कंटेनर सुरू होण्यासाठी खूप हलके आणि जलद असतात, कारण त्यांना संपूर्ण OS बूट करण्याची आवश्यकता नसते. डॉकर स्तरित फाइलसिस्टमद्वारे फाइलसिस्टम अलगाव प्राप्त करतो, जेथे प्रत्येक कंटेनरचा बेस इमेजच्या वर स्वतःचा फाइल सिस्टम स्तर असतो. नेटवर्क आयसोलेशन नेमस्पेसेस वापरून हाताळले जाते, ज्यामुळे डॉकरला प्रत्येक कंटेनरसाठी व्हीएमशी संबंधित ओव्हरहेडशिवाय वेगळे नेटवर्किंग वातावरण प्रदान करता येते.
- डॉकर आणि व्हीएम मधील प्राथमिक फरक काय आहे?
- डॉकर होस्ट OS कर्नल सामायिक करण्यासाठी कंटेनरायझेशन वापरते, ते हलके आणि वेगवान बनवते, तर VMs ला पूर्ण अतिथी OS आणि हायपरवाइजर आवश्यक आहे.
- डॉकर कंटेनर अधिक कार्यक्षम का मानले जातात?
- कंटेनर होस्ट OS कर्नल सामायिक करतात आणि कमीत कमी ओव्हरहेड असतात, जलद स्टार्टअप वेळा आणि कार्यक्षम संसाधन वापरासाठी अनुमती देतात.
- डॉकर फाइलसिस्टम अलगाव कसा मिळवतो?
- डॉकर एक स्तरित फाइलसिस्टम वापरतो, जिथे प्रत्येक कंटेनरचा बेस इमेजच्या वर स्वतःचा फाइल सिस्टम स्तर असतो.
- VM च्या संदर्भात हायपरवाइजर म्हणजे काय?
- हायपरवाइजर हे सॉफ्टवेअर आहे जे हार्डवेअरचे अनुकरण करते, एकाधिक ऑपरेटिंग सिस्टम एकाच होस्ट मशीनवर एकाच वेळी चालवण्यास अनुमती देते.
- डॉकर नेटवर्किंग अलगाव कसे हाताळतो?
- प्रत्येक कंटेनरसाठी वेगळ्या नेटवर्किंग वातावरण प्रदान करण्यासाठी डॉकर नेमस्पेसेस वापरतो.
- डॉकर प्रतिमेवर सॉफ्टवेअर तैनात करणे VM पेक्षा सोपे का आहे?
- डॉकर प्रतिमा सर्व अवलंबित्व आणि कॉन्फिगरेशन एन्कॅप्स्युलेट करतात, विविध वातावरणात सुसंगतता सुनिश्चित करतात.
- डॉकरसाठी काही सामान्य वापर प्रकरणे कोणती आहेत?
- डॉकरचा वापर सामान्यतः मायक्रोसर्व्हिसेस आर्किटेक्चर, सतत एकात्मता/सतत उपयोजन (CI/CD) आणि वेगळ्या विकास वातावरणासाठी केला जातो.
- डॉकर कंटेनर कोणत्याही OS वर चालू शकतात?
- डॉकर कंटेनर्स डॉकरला सपोर्ट करणाऱ्या कोणत्याही ओएसवर चालू शकतात, परंतु ते होस्ट ओएस कर्नल सामायिक करतात.
- डॉकरमध्ये बेस इमेज म्हणजे काय?
- बेस इमेज हा डॉकर कंटेनर बनवण्याचा प्रारंभ बिंदू आहे, अनेकदा OS आणि मूलभूत अवलंबनांसह.
डॉकर वि वर्च्युअल मशीन्सचा सारांश
डॉकर आणि व्हर्च्युअल मशीनची तुलना करताना, प्राथमिक फरक त्यांच्या संसाधनाचा वापर आणि उपयोजन कार्यक्षमतेमध्ये आहे. व्हर्च्युअल मशीन पूर्ण अतिथी ऑपरेटिंग सिस्टम आणि हायपरवाइजरसह कार्य करतात, ज्यामुळे संसाधनांचा जास्त वापर होतो. याउलट, डॉकर कंटेनर होस्ट OS कर्नल सामायिक करतात, परिणामी अधिक हलके आणि चपळ समाधान मिळते. डॉकर लेयर्ड फाइलसिस्टम आणि नेटवर्किंग नेमस्पेसेसद्वारे विलग वातावरण प्राप्त करतो, ज्यामुळे ते संबंधित ओव्हरहेडशिवाय VM ला समान कार्ये प्रदान करू शकतात. हे डॉकर प्रतिमांवर सॉफ्टवेअर तैनात करणे अधिक कार्यक्षम, सातत्यपूर्ण आणि विविध उत्पादन वातावरणात व्यवस्थापित करणे सोपे करते.
शेवटी, डॉकरचा कंटेनरायझेशनचा वापर पारंपारिक व्हर्च्युअल मशीनवर संसाधनांचा वापर कमी करून आणि उपयोजन प्रक्रिया सुलभ करून महत्त्वपूर्ण फायदा देते. होस्ट OS कर्नल सामायिक करून आणि वेगळ्या फाइल सिस्टम आणि नेटवर्किंगचा वापर करून, डॉकर आधुनिक अनुप्रयोग तैनातीसाठी एक मजबूत परंतु हलके समाधान प्रदान करते. हे फरक समजून घेणे विकासकांना त्यांच्या गरजांसाठी योग्य साधन निवडण्यात मदत करू शकते, कार्यक्षम आणि स्केलेबल अनुप्रयोग व्यवस्थापन सुनिश्चित करते.