डॉकर (उर्फ डिंड ) के अंदर डॉकिंग चलाना , जबकि संभव हो, यदि संभव हो तो बचा जाना चाहिए। (स्रोत नीचे दिया गया है।) इसके बजाय, आप अपने मुख्य कंटेनर को सिबलिंग कंटेनरों के साथ उत्पादन और संचार करने के लिए एक तरीका स्थापित करना चाहते हैं ।
Jérôme Petazzoni - फीचर के लेखक ने डॉकटर के लिए एक डॉक कंटेनर के अंदर चलाने के लिए संभव बना दिया - वास्तव में एक ब्लॉग पोस्ट लिखा था कि यह नहीं करना चाहिए । उपयोग मामला वह वर्णन करता है कि एक डॉक कंटेनर के ओपी के सटीक उपयोग मामले से मेल खाता है जिसे अन्य डॉकटर कंटेनरों के अंदर नौकरी चलाने की आवश्यकता है।
पेटाज़ोनी दो कारणों से सूचीबद्ध करती है कि क्यों परेशान है:
- यह लिनक्स सुरक्षा मॉड्यूल (एलएसएम) के साथ अच्छा सहयोग नहीं करता है।
- यह फ़ाइल सिस्टम में एक मिसमैच बनाता है जो पेरेंट कंटेनर के अंदर बनाए गए कंटेनरों के लिए समस्याएँ पैदा करता है।
उस ब्लॉग पोस्ट से, वह निम्नलिखित विकल्प का वर्णन करता है,
[] सबसे सरल तरीका यह है कि आप अपने CI कंटेनर में डॉक सॉकेट को केवल -v
ध्वज के साथ बांधकर उजागर करें ।
सीधे शब्दों में कहें, जब आप अपने CI कंटेनर (जेनकिन्स या अन्य) को शुरू करते हैं, तो डोकर-इन-डॉकर के साथ मिलकर कुछ हैक करने के बजाय, इसे इसके साथ शुरू करें:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
अब इस कंटेनर में डॉकटर सॉकेट तक पहुंच होगी, और इसलिए कंटेनर शुरू करने में सक्षम होगा। सिवाय इसके कि "बच्चे" कंटेनर शुरू करने के बजाय, यह "सिबलिंग" कंटेनर शुरू करेगा।