सबसे पहले, जबकि डॉकर को कभी-कभी देखा जाता है और एक तदर्थ पैकेजिंग प्रणाली के रूप में उपयोग किया जाता है, यह वास्तव में एक पूरी तरह से अलग समस्या का हल करता है: डॉकर चलने वाले कार्यक्रमों के बारे में है। डोकर प्रणाली का वर्णन करने के लिए अनुमति देता है सेवाओं, कि जा सकती है, बढ़ाया होगा पर और नियंत्रित करने के लिए झुंड कंटेनरों की। डेबियन पैकेज प्रोग्राम इंस्टॉल करने के लिए हैं और वे सॉफ़्टवेयर संस्करणों के बीच निर्भरता को संभालने में सक्षम हैं । डाक में काम करनेवाला मज़दूर निश्चित रूप से एक वंशज पैकेजिंग प्रणाली के रूप में योग्य नहीं है: प्रत्येक "पैकेज" में केवल एक निर्भरता हो सकती है, सिस्टम में कोई "पुनरावर्ती निर्माण" विकल्प नहीं है और जटिल संस्करण बाधाओं का समर्थन नहीं करता है!
एक संभावित उत्तर यह होगा कि, यदि आप अपने आवेदन के लिए डेबियन पैकेज लिखने के इच्छुक हैं, तो आप अपने आवेदन को तैनात करने के लिए डॉकर का उपयोग भी कर सकते हैं । यह एक कॉन्फ़िगरेशन स्क्रिप्ट के साथ प्राप्त किया जा सकता है apt_setup.sh
जो कि जैसा दिखेगा
apt-key add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
<YOUR RELEASE OFFICER PGP KEY GOES HERE>
EOF
cat >> /etc/apt/sources.list <<EOF
deb https://my.organisation.org/repo debian-jessie main
apt-get update -y
apt-get upgrade -y
EOF
और Dockerfile
की तर्ज पर
ADD apt_setup.sh /root
RUN sh -ex /root/apt_setup.sh && rm /root/apt_setup.sh
RUN apt-get install -y my-node-js-package
(आपकी विशिष्ट स्थिति में, नोड्स सोर्स रिपॉजिटरी और एप्टर -ट्रांसपोर्ट-https जैसे कुछ हेल्पर पैकेज को apt_setup.sh
जोड़ना अधिक जटिल होगा ।)
इसलिए वास्तव में एक साथ डेबियन पैकेज और डॉकर का उपयोग करना संभव है ...
मेरा पेट […] मुझे बता रहा है कि अगर डेब्यू पैकेज अच्छे थे, तो यह अधिक सामान्य होगा
यह एक सही अड़चन है जो हमें खुद से पूछने के लिए प्रेरित करती है कि डॉकर एक तदर्थ पैकेजिंग प्रणाली के रूप में लोकप्रिय क्यों साबित होता है, जबकि यह एक होने का इरादा नहीं है। (ऊपर देखो।)
किसी दिए गए वितरण से "आधिकारिक" पैकेजिंग प्रणाली कुछ अन्य लोगों के बीच कुछ कंप्यूटिंग वातावरण में सॉफ़्टवेयर स्थापित करने के लिए सिर्फ एक संभावना है। वहाँ कई अन्य स्रोतों से उपलब्ध है, जैसे समुदाय विशेष पैकेज प्रबंधकों की तरह हैं NPM या OPAM, जैसे बंदरगाह पेड़ pkgsrc और सादे स्रोत कोड वितरण। इस दृष्टिकोण से, डॉकर की सफलता को एक तदर्थ पैकेजिंग प्रणाली के रूप में समझना आसान है:
डॉकर स्पेसिफिकेशन्स एक शेल स्क्रिप्ट से बहुत करीब हैं और जो भी स्रोत से आता है, हम शेल का उपयोग करके सॉफ़्टवेयर इंस्टॉल करते हैं।
डॉकर के पास एक “बिल्ट-इन” (भुगतान करने वाली) सेवा है जो इसके उत्पादन की मेजबानी के लिए, डॉकर हब ।
अब एक पैकेज प्रणाली के रूप में डोकर छवियों पर डेबियन पैकेजों की ताकत क्या है? स्थापना पर निर्भरता पर तंग नियंत्रण। (अपग्रेड और डाउनग्रेड होने की संभावना भी मौजूद है लेकिन इसका कोई व्यावहारिक महत्व नहीं है अगर हम अपरिवर्तनीय-सर्वर पैटर्न को लागू कर रहे हैं ।) इससे होता है।
निष्कर्ष
यदि आपके पास केवल एक ही उत्पाद एकल संस्करण (जो कि सास के लिए विशिष्ट है) में तैनात किया गया है, तो आपके संस्करण प्रबंधन की आवश्यकताएं बहुत सरल हैं और एक तदर्थ पैकेज प्रबंधक के रूप में डॉकर का उपयोग करने में कोई कठिन कमियां नहीं होनी चाहिए। जैसे ही आप किसी एकल उत्पाद या कई उत्पादों के कई संस्करणों के साथ काम करते हैं, संस्करण की जटिलता समस्या को बढ़ाती है जिसे आपको हल करने की आवश्यकता होती है और इसके लिए आपको एक उपयुक्त उपकरण की आवश्यकता होती है, जो हो सकता है डेबियन पैकेज या कुछ कॉन्फ़िगरेशन प्रबंधन प्रणाली यदि आप हैं विभिन्न मूलों से सॉफ्टवेयर का मिश्रण।