उपयोग के मामले के आधार पर, आप एक ही कंटेनर के अंदर कई प्रक्रियाएं चला सकते हैं, हालांकि मैं इसकी अनुशंसा नहीं करूंगा।
कुछ अर्थों में उन्हें विभिन्न कंटेनरों में चलाने के लिए भी आसान है। छोटे, स्टेटलेस, और एक ही नौकरी के आसपास कंटेनर रखने से उन्हें सभी को बनाए रखना आसान हो जाता है। मैं आपको बताता हूं कि कैसे कंटेनरों के साथ मेरा वर्कफ़्लो इसी तरह की स्थिति में है।
तो: (: 443,: 80)
- मैं nginx कि बाहर की दुनिया के संपर्क में है के साथ एक कंटेनर होना। इस स्तर पर यह कॉन्फ़िगरेशन, टीएलएस प्रमाणपत्र, लोड बैलेंसर विकल्प इत्यादि का प्रबंधन करने के लिए सीधा है
- एप्लिकेशन के साथ एक (या अधिक) कंटेनर। उस मामले में ऐप के साथ एक php-fpm कंटेनर। डॉकर छवि स्टेटलेस है, कंटेनर माउंट और स्थिर फाइलों के लिए वॉल्यूम साझा करते हैं और इसी तरह। इस बिंदु पर, आप लोड-बैलेंसर को ऊपर और चलते हुए, एप्लिकेशन कंटेनर को नष्ट और फिर से बनाने के लिए किसी भी समय कर सकते हैं। साथ ही, आपके पास एक ही प्रॉक्सी (nginx) के पीछे कई एप्लिकेशन हो सकते हैं, और उनमें से एक को प्रबंधित करना दूसरों को प्रभावित नहीं करेगा।
- डेटाबेस के लिए एक या अधिक कंटेनर ... समान लाभ लागू होते हैं।
- Redis, Memcache आदि
इस संरचना के बाद, तैनाती मॉड्यूलर है, इसलिए प्रत्येक और हर "सेवा" अलग कर दिया और तार्किक प्रणाली के बाकी हिस्सों से स्वतंत्र है।
एक साइड इफेक्ट के रूप में, इस विशेष मामले में, आप आवेदन के लिए शून्य-डाउनटाइम तैनाती (अपडेट) कर सकते हैं। इसके पीछे विचार सरल है। जब आपको कोई अपडेट करना होता है, तो आप अपडेट किए गए एप्लिकेशन के साथ एक डॉकर छवि बनाते हैं, कंटेनर चलाते हैं, सभी परीक्षणों और रखरखाव स्क्रिप्ट चलाते हैं और यदि सब कुछ ठीक हो जाता है, तो आप नए बनाए गए कंटेनर को चेन (लोड बैलेंसर) में जोड़ते हैं, और धीरे-धीरे बूढ़े को मार डालो। यही है, आपके पास अपडेट किया गया एप्लिकेशन है और उपयोगकर्ताओं ने इसे बिल्कुल भी नहीं देखा है।
मैंने हाल ही में डॉकर का उपयोग करना शुरू कर दिया है और उसी क्वेरी में आ गया है। मैं प्रत्येक के लिए अलग कंटेनर होने के समाप्त हो गया। मुझे यह जानने में दिलचस्पी होगी कि यह क्यों 'सर्वश्रेष्ठ अभ्यास' है। – DavidT
@ डेविड टी क्योंकि यह आपको सेवा की कॉन्फ़िगरेशन को संशोधित किए बिना, डॉकर संरचना/कॉन्फ़िगरेशन स्तर पर सेवा को स्केल करने की अनुमति देता है। – Gajus