Docker और DevOps की बुनियाद · पाठ

इमेज लेयर और अनुकूलन

जानें कि Docker इमेज परतों में कैसे बनती हैं और इमेज आकार तथा बिल्ड समय को बेहतर बनाने की तकनीकें लागू करें।

पाठ 3, कुल 4 में से11 चरण

इमेज लेयर और अनुकूलन, CoddyKit पर Docker और DevOps की बुनियाद का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Docker और DevOps की बुनियाद सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Docker और DevOps की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

इमेज की परतें: निर्माण खंड

Docker इमेज कोई एक बहुत बड़ी फ़ाइल नहीं होतीं। इसके बजाय, वे केवल-पढ़ने योग्य परतों की एक शृंखला से बनती हैं। इन परतों को एक-दूसरे के ऊपर रखी पारदर्शी शीट की तरह समझें।

प्रत्येक परत इमेज में हुए बदलाव को दर्शाती है, जिससे इमेज कुशल और लचीली बनती हैं। यह परत-आधारित संरचना Docker के काम करने के तरीके का मूलभूत हिस्सा है।

इमेज लेयर और अनुकूलन — चित्र 1

Docker फ़ाइल के निर्देश और परतें

जब आप Docker की फ़ाइल लिखते हैं, तो लगभग हर निर्देश पिछली परत के ऊपर एक नई परत बनाता है। FROM, RUN, COPY और ADD जैसे निर्देश सभी नई परतें बनाने में योगदान देते हैं।

Docker इन निर्देशों को क्रमिक रूप से निष्पादित करता है और प्रत्येक नई परत को पिछली परत की स्थिति के आधार पर बनाता है।

इमेज का इतिहास देखना

आप docker history कमांड का उपयोग करके किसी इमेज को बनाने वाली परतें देख सकते हैं। यह कमांड प्रत्येक निर्देश, उसका आकार और उसके बनाए जाने का समय दिखाती है, जिससे आपको समझने में मदद मिलती है कि इमेज कैसे बढ़ी।

इमेज के आकार से जुड़ी समस्याओं की जाँच के लिए यह एक शक्तिशाली साधन है।

docker history my-image:latest

परत कैशिंग की शक्ति

Docker एक कुशल बिल्ड कैश का उपयोग करता है। यदि आपकी Docker फ़ाइल का कोई निर्देश और उसका संदर्भ (जैसे, कॉपी की जा रही फ़ाइलें) पिछले बिल्ड के बाद से नहीं बदले हैं, तो Docker मौजूदा परत का दोबारा उपयोग करेगा।

इस पुनः उपयोग से बाद के बिल्ड बहुत तेज़ हो जाते हैं, क्योंकि Docker को अपरिवर्तित चरणों को फिर से निष्पादित नहीं करना पड़ता।

अनुकूलन 1: समझदारी से परतों का क्रम

प्रभावी कैशिंग के लिए आपकी Docker फ़ाइल में निर्देशों का क्रम बहुत महत्वपूर्ण है। जो निर्देश कम बार बदलते हैं (जैसे सिस्टम निर्भरताएँ इंस्टॉल करना), उन्हें सबसे ऊपर रखें।

जो निर्देश अक्सर बदलते हैं (जैसे आपके एप्लिकेशन कोड को कॉपी करना), उन्हें नीचे रखें। इस तरह, यदि केवल आपका कोड बदलता है, तो Docker स्थिर निर्भरताओं की कैश की गई परतों का पुनः उपयोग कर सकता है।

उदाहरण: परतों के क्रम का अनुकूलन

इन दो Docker फ़ाइल अंशों की तुलना करें। अच्छा क्रम स्थिर निर्भरताओं को पहले रखता है, जिससे Docker उन्हें कैश कर सकता है और केवल बदलते हुए एप्लिकेशन कोड वाली परतों को फिर से बना सकता है।

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]

अनुकूलन 2: RUN कमांड को एकत्रित करना

प्रत्येक RUN कमांड आम तौर पर एक नई परत बनाती है। आप कई कमांड को एक ही RUN निर्देश में मिलाकर परतों की संख्या और अक्सर अंतिम इमेज का आकार कम कर सकते हैं।

कमांड को एक साथ जोड़ने के लिए && \ ऑपरेटर का उपयोग करें, जिससे वे एक ही परमाणु परत का हिस्सा बन जाएँ।

उदाहरण: RUN कमांड को जोड़ना

कई RUN कमांड के बजाय उन्हें && \ के साथ जोड़ें। इससे इन सभी कार्यों के लिए एक ही, अधिक कुशल परत बनती है।

FROM ubuntu:latest
RUN apt-get update && \
    apt-get install -y curl && \
    rm -rf /var/lib/apt/lists/*
CMD ["bash"]

अनुकूलन 3: फ़ाइलों को साफ़ करना

उन फ़ाइलों को हमेशा साफ़ करें जिनकी आवश्यकता केवल बिल्ड प्रक्रिया के दौरान होती है। उदाहरण के लिए, पैकेज प्रबंधक के कैश (जैसे apt-get clean) या अस्थायी बिल्ड अवशेष आपकी इमेज की परतों का आकार काफी बढ़ा सकते हैं।

जिन्हें बनाने वाली उसी RUN कमांड के भीतर उन्हें साफ़ करने से यह सुनिश्चित होता है कि वे पिछली परत में बने न रहें।

त्वरित जाँच: इमेज का अनुकूलन

निम्नलिखित Docker फ़ाइल अंश पर विचार करें:

FROM alpine:latest
COPY . /app
RUN apk add --no-cache git
RUN apk add --no-cache make
CMD ["sh"]

छोटी इमेज और संभावित रूप से तेज़ पुनःबिल्ड के लिए निम्नलिखित में से कौन-सा बदलाव इस Docker फ़ाइल का सबसे अच्छा अनुकूलन करेगा?

पुनरावलोकन: हल्की और तेज़ इमेज

आपने सीखा कि Docker इमेज परतों में बनती हैं और प्रत्येक निर्देश अक्सर एक नई परत बनाता है। इसे समझना अनुकूलन के लिए महत्वपूर्ण है!

  • निर्देशों का क्रम सावधानी से तय करें ताकि बिल्ड कैश का अधिकतम उपयोग हो।
  • कई RUN कमांड को एक में मिलाएँ ताकि परतों की संख्या कम हो।
  • अस्थायी फ़ाइलों को साफ़ करें और उनकी संबंधित RUN कमांड के भीतर ही ऐसा करें, ताकि परतें छोटी रहें।

ये तकनीकें छोटी और तेज़ी से बनने वाली Docker इमेज बनाने में मदद करती हैं, जो कुशल तैनाती के लिए आवश्यक हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Docker और DevOps की बुनियाद सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “इमेज लेयर और अनुकूलन” पाठ निःशुल्क है?

हाँ — Docker और DevOps की बुनियाद अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “इमेज लेयर और अनुकूलन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Docker और DevOps की बुनियाद पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“इमेज लेयर और अनुकूलन” में मैं क्या सीखूँगा?

जानें कि Docker इमेज परतों में कैसे बनती हैं और इमेज आकार तथा बिल्ड समय को बेहतर बनाने की तकनीकें लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Docker और DevOps की बुनियाद का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Docker और DevOps की बुनियाद शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Docker और DevOps की बुनियाद शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“इमेज लेयर और अनुकूलन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Docker और DevOps की बुनियाद पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Docker और DevOps की बुनियाद पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Dockerfile को समझना
  2. कस्टम Docker इमेज बनाना
  3. इमेज लेयर और अनुकूलन
  4. बहु-चरणीय बिल्ड और छोटे इमेज
← Docker और DevOps की बुनियाद पर वापस जाएँ