<पी> मैं बड़ी डॉकर छवियों के समस्या निवारण, निर्माण पूरा होने की प्रतीक्षा करने और व्यर्थ भंडारण के बारे में चिंता करने में बहुत समय व्यतीत करता था। ऐसा महसूस हुआ कि चाहे मैंने अपनी डॉकरफ़ाइल्स को कितनी भी सावधानी से संरचित किया हो, छवियाँ हमेशा आवश्यकता से अधिक भारी हो गईं। जब मैंने स्लिमटूलकिट (जिसे पहले डॉकरस्लिम के नाम से जाना जाता था) की खोज की तो यह सब बदल गया। पी> <पी> यह टूल डॉकर छवि का विश्लेषण करता है, पहचानता है कि रनटाइम पर वास्तव में कौन सी फ़ाइलों और निर्भरताओं की आवश्यकता है, और बाकी सब कुछ हटा देता है। यह देखने के लिए इस गाइड का पालन करें कि स्लिमटूलकिट कैसे काम करता है, और बिना कुछ तोड़े अपनी डॉकर छवियों को छोटा करने के लिए मैंने किन चरणों का उपयोग किया। <पी> सामग्री तालिका स्लिमटूलकिट डॉकर छवि अनुकूलन को सरल बनाता है
<पी> स्लिमटूलकिट एक ओपन-सोर्स टूल है जो एप्लिकेशन कोड या डॉकरफाइल्स में बदलाव की आवश्यकता के बिना डॉकर छवि आकार को कम करता है। यह मैन्युअल अनुकूलन चरणों की आवश्यकता को हटा देता है, जैसे पैकेजों की सफाई करना या निर्माण चरणों को फिर से लिखना। इसके बजाय, स्लिमटूलकिट स्वचालित रूप से छवि अनुकूलन को संभालता है और प्रक्रिया को सरल रखता है। <पी> जब आप डॉकर छवि पर स्लिमटूलकिट चलाते हैं, तो यह कंटेनर कैसे चलता है यह देखकर एक गतिशील विश्लेषण करता है। यह सटीक रूप से ट्रैक करता है कि एप्लिकेशन निष्पादन के दौरान किन फ़ाइलों, लाइब्रेरीज़ और निर्भरता को छूता है। इस डेटा के आधार पर, यह केवल आवश्यक घटकों वाली एक नई, अनुकूलित छवि बनाता है। यह मूल छवि को अपरिवर्तित रखता है, जिससे प्रक्रिया सुरक्षित हो जाती है और इसे उलटना आसान हो जाता है। <पी> स्लिमटूलकिट मौजूदा छवियों के साथ काम करता है और उन्नत डॉकर या लिनक्स ज्ञान की आवश्यकता के बिना, Node.js, Python, Java और Go का समर्थन करता है। यह अधिकांश वर्कफ़्लोज़ में निर्बाध रूप से एकीकृत होता है, अप्रयुक्त टूल और शेल्स को हटाकर कंटेनर सुरक्षा में सुधार करता है जिनका हमलावर फायदा उठा सकते हैं। छोटी छवियां तेजी से डाउनलोड होती हैं, तेजी से शुरू होती हैं और कम संसाधनों का उपभोग करती हैं, जो सीआई/सीडी पाइपलाइनों के लिए एक बड़ी जीत है। <पी> डॉकर के माध्यम से स्लिमटूलकिट का उपयोग करना सबसे आसान तरीका है क्योंकि इसके लिए किसी स्थानीय इंस्टॉलेशन की आवश्यकता नहीं होती है। जब तक डॉकर स्थापित और चालू है, आप तुरंत स्लिमटूलकिट का उपयोग शुरू कर सकते हैं। <पी> सबसे पहले, निम्नलिखित डॉकर कमांड का उपयोग करके आधिकारिक स्लिमटूलकिट छवि डाउनलोड करें: docker pull dslim/slim
<पी> स्लिमटूलकिट को चलाने के लिए डॉकर सॉकेट (/var/run/docker.sock) को माउंट करना आवश्यक है। यह कंटेनर को छवियों का विश्लेषण और अनुकूलन करने के लिए आपके स्थानीय डॉकर इंजन के साथ संचार करने की अनुमति देता है। सुनिश्चित करें कि आप केवल विश्वसनीय आधिकारिक छवियों का ही उपयोग करें। स्लिमटूलकिट के साथ डॉकर छवि का आकार कम करना
<पी> अनुकूलन प्रक्रिया को प्रदर्शित करने के लिए, हम एक मानक Nginx छवि को पतला करेंगे। सबसे पहले, आधिकारिक, नवीनतम Nginx छवि खींचें: docker pull nginx:latest
<पी> Nginx जैसे मानक अनुप्रयोगों के लिए, आप सीधे बिल्ड कमांड चला सकते हैं। स्लिमटूलकिट जाँचता है कि कंटेनर वास्तव में कौन सी फ़ाइलों का उपयोग करता है और अनावश्यक फ़ाइलों को हटा देता है। docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --target nginx:latest --tag nginx-slim:latest
<पी> कुछ भाषाओं (जैसे पायथन या रूबी) में निर्भरताएं हो सकती हैं जो मानक जांच के दौरान तुरंत ट्रिगर नहीं होती हैं। उन मामलों में, स्लिमटूलकिट को यह बताने के लिए एक "ignore.txt" फ़ाइल बनाएं कि कौन से फ़ोल्डर्स रखने हैं, जैसे "/usr/local/lib/python3.11"। यह स्लिमटूलकिट को आवश्यक रनटाइम निर्भरता को हटाने से रोकता है। <पी> आप अपने संरक्षण नियमों को शामिल करने के लिए वॉल्यूम माउंट के साथ कमांड चला सकते हैं: -v "$(pwd)":/target --preserve-path-file /target/ignore.txt
आकार अंतर की तुलना करें:मूल बनाम। छरहरी छवि
<पी> एक बार प्रक्रिया समाप्त हो जाने पर, स्लिमटूलकिट अनुकूलित छवि को स्थानीय रूप से सहेजता है। आप इस आदेश से मूल और स्लिम संस्करण के बीच आकार के अंतर की तुलना कर सकते हैं: docker images
<पी> आपको संभवतः नाटकीय कमी देखने को मिलेगी।
<पी> अंत में, यह सुनिश्चित करने के लिए अपनी नई अनुकूलित छवि का परीक्षण करें कि यह अपेक्षा के अनुरूप काम करती है: docker run -it -p 8080:80 nginx-slim:latest
<पी> अपना ब्राउज़र खोलें और http://localhost:8080 पर नेविगेट करें। आपको डिफ़ॉल्ट Nginx स्वागत पृष्ठ देखना चाहिए, लेकिन काफी छोटे कंटेनर फ़ुटप्रिंट से चल रहा है।
<पी> स्लिमटूलकिट आपको डॉकर छवियों का विश्लेषण और अनुकूलन करने में मदद करने के लिए कुछ प्रमुख कमांड प्रदान करता है। यहां सबसे उपयोगी चीज़ों की सूची दी गई है: कमांड | विवरण | स्लिम बिल्ड केवल आवश्यक फाइलों और निर्भरताओं को ध्यान में रखते हुए एक डॉकर छवि को अनुकूलित करता है, छवि का आकार कम करता है। स्लिम एक्सरे एक डॉकर छवि का विश्लेषण करता है और दिखाता है कि अंदर क्या है, जिसमें फ़ाइलें, परतें और निर्भरताएं शामिल हैं। स्लिम लिंट बिल्ड समस्याओं को रोकने के लिए त्रुटियों के लिए डॉकर फ़ाइलों की जांच करता है। स्लिम डिबग एक पतली डॉकर छवि से बनाए गए एक चल रहे कंटेनर को डीबग करने की अनुमति देता है। स्लिम प्रोफ़ाइल एक डॉकर छवि के बारे में जानकारी एकत्र करता है और आकार और प्रदर्शन के लिए एक JSON रिपोर्ट आउटपुट करता है विश्लेषण.स्लिम मर्ज दो डॉकर छवियों को एक छवि में जोड़ता है। <पी> आप निम्न कमांड का उपयोग करके सभी उपलब्ध स्लिमटूलकिट कमांड और उनके उपयोग की भी जांच कर सकते हैं। docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim slim help
ध्यान में रखने योग्य सीमाएँ
<पी> जबकि स्लिमटूलकिट डॉकर छवि आकार को कम करने में मदद करता है, आपको कुछ कमियों पर विचार करना चाहिए: - बड़ी छवियों को स्लिम करने में अधिक समय लग सकता है, इसलिए तदनुसार योजना बनाएं।
- चूंकि उपकरण गतिशील विश्लेषण का उपयोग करता है, यदि निर्माण प्रक्रिया के दौरान एक विशिष्ट कोड पथ निष्पादित नहीं किया जाता है, तो स्लिमटूलकिट सोच सकता है कि निर्भरता अप्रयुक्त है और इसे हटा सकती है। हमेशा अपनी पतली छवियों का अच्छी तरह से परीक्षण करें।
- यह अक्सर जगह बचाने के लिए बैश या कर्ल जैसे टूल को हटा देता है। यदि आपको उत्पादन कंटेनर के अंदर समस्या निवारण के लिए इनकी आवश्यकता है, तो आपको इन्हें रखने के लिए स्लिमटूलकिट को स्पष्ट रूप से बताना होगा।
समापन
<पी> अपने वर्कफ़्लो में स्लिमटूलकिट जोड़ने से तैनाती में तेजी आती है, लगातार प्रदर्शन सुनिश्चित होता है और कंटेनर ब्लोट कम होता है। यह आपके मूल निर्माण को अपरिवर्तित रखते हुए आपको स्वच्छ और अधिक पेशेवर डॉकर छवियां बनाने में मदद करता है। इसके अतिरिक्त, सर्वोत्तम डॉकर सफाई प्रथाओं को अपनाने से समय के साथ कुशल, सुव्यवस्थित कंटेनर बनाए रखने में मदद मिलती है।