2017-03-29 18 views
25

मैं कई मेजबानों में एकाधिक कंटेनरों में अनुप्रयोगों को तैनात करने के लिए डॉकर कंपोज़ का उपयोग करने के बारे में सीख रहा हूं। और मैं दो विन्यास फाइलों में आया हूं - फ़ाइल ढेर, और फ़ाइल लिखें।स्टैक फ़ाइल और कम्पोज़ फ़ाइल के बीच क्या अंतर है?

Cloud stack file YAML reference से, यह कहा गया ढेर फ़ाइल YAML प्रारूप है कि एक या अधिक सेवाओं, एक docker-compose.yml फाइल करने के लिए लेकिन कुछ एक्सटेंशन के साथ इसी तरह परिभाषित करता है में एक फाइल है।

और this post से, यह कहा गया है कि ढेर बहुत डोकर-रचना के लिए, जबकि डोकर-लिखें कंटेनर को परिभाषित करता है सिवाय इसके कि वे सेवाओं को परिभाषित समान हैं।

वे बहुत समान दिखते हैं, इसलिए मैं सोच रहा हूं कि जब मैं स्टैक फ़ाइल का उपयोग करूंगा, और कंपोज़ फ़ाइल का उपयोग कब करूं?

+0

अच्छा प्रश्न है। मैं यह भी पूछना चाहूंगा कि हमें डॉकर स्टैक की आवश्यकता क्यों है जब हमारे पास डॉकर पहले से ही लिखें? दूसरे लिंक में यह कहता है कि डॉकर स्टैक डॉकर इंजन की सेवा है जहां डॉकर कंपोज़ नहीं है। तो हम सिर्फ डॉकर रचना को अपग्रेड क्यों नहीं कर सकते हैं और इसे एक सेवा बना सकते हैं? – lonelyloner

+0

@lonelyloner महान सवाल, मेरा अनुमान है क्योंकि यह डॉकर-कंपोज़ स्वयं का एक उपकरण है और इसे डॉकर में एकीकृत नहीं किया गया है। लिनक्स पर, मुझे इसे अलग से स्थापित करना पड़ा, जहां विंडोज़ पर मेरा मानना ​​है कि यह डॉकर के साथ आता है। उम्मीद है कि, भविष्य में, डॉकर उन्हें मर्ज करेगा, और वहां केवल स्टैक फ़ाइल होगी। –

उत्तर

25

संकल्पनात्मक रूप से, दोनों फाइलें एक ही उद्देश्य की सेवा करती हैं - डॉकर इंजन पर आपके कंटेनरों की तैनाती और कॉन्फ़िगरेशन।

डॉकर-कंपोज़ टूल पहले बनाया गया था और इसका उद्देश्य "एक डॉकर इंजन पर" बहु-कंटेनर डॉकर अनुप्रयोगों को परिभाषित करने और चलाने के लिए "है। (docker compose overview देखें)

आप

docker-compose up 

का उपयोग बनाने के लिए/अपने कंटेनर, नेटवर्क, संस्करणों को अद्यतन और इतने पर।

कहाँ डोकर ढेर डोकर झुंड (डोकर के आर्केस्ट्रा और शेड्यूलिंग उपकरण) और, इसलिए, यह अतिरिक्त विन्यास मानकों (अर्थात प्रतिकृतियां, नियोजित करने, भूमिकाओं) है कि एक ही डोकर इंजन पर आवश्यक नहीं हैं प्रयोग किया जाता है।

ढेर फ़ाइल द्वारा

docker stack 

आदेश व्याख्या की है। यह आदेश केवल एक डॉकर स्वामी प्रबंधक से ही लिया जा सकता है।

आप डॉकर-compose.yml को docker-cloud.yml और पीछे कनवर्ट कर सकते हैं। हालांकि, जैसा कि आपके प्रश्न में बताया गया है, आपको मतभेदों पर ध्यान देना होगा। साथ ही, आपको यह ध्यान रखना होगा कि डॉकर-कंपोज़ के लिए अलग-अलग संस्करण हैं। वर्तमान में, नवीनतम संस्करण संस्करण 3. (https://docs.docker.com/compose/compose-file/)

संपादित है: एक दिलचस्प ब्लॉग, कि अंतर को समझने के लिए मदद कर सकता है, यहां पाया जा सकता https://blog.nimbleci.com/2016/09/14/docker-stacks-and-why-we-need-them/

+0

हाँ, यह मुझे उलझन में डाल दिया क्योंकि कम्पोज़ फ़ाइल में भी ['तैनाती] (https://docs.docker.com/compose/compose-file/#deploy) जैसे स्वर्ग से संबंधित गुणों का उल्लेख है, जिन्हें अनदेखा किया जाता है जब आप 'डॉकर कंपोज़' का उपयोग करते हैं, और केवल प्रभाव में 'डॉकर स्टैक तैनाती'। मुझे लगता है, सभी उद्देश्यों और उद्देश्यों के लिए, रचना के 3+ संस्करण के लिए, वे वही हैं? – dayuloli

+0

संस्करण 3 2 से अलग है। बहुत कुछ नहीं। विशेष रूप से जिस तरह से वॉल्यूम घोषित किया जाता है। अन्य बदलाव भी हैं।संस्करण 3 रचना परिवर्तन के बिना झुंड पर काम करने में सक्षम होना चाहिए, लेकिन हकीकत में आप स्वैच्छिक विन्यास जोड़ना चाहेंगे, खासकर यदि आपके कंटेनरों के पास वॉल्यूम है और आप पुनर्वितरण पर अपने डेटा के नुकसान का जोखिम नहीं उठा सकते हैं। –

+1

तो क्या स्टैक के बजाए एक रचना का उपयोग करने का कोई मतलब है? – sudo

संबंधित मुद्दे