डेवलपरों के लिए Docker और Kubernetes · पाठ

हल्की production image के लिए multi-stage build

multi-stage Dockerfile में build stage के दौरान app को compile या bundle करना और केवल artifacts को छोटी runtime image में कॉपी करना कुशलता से सीखें।

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

हल्की production image के लिए multi-stage build, CoddyKit पर डेवलपरों के लिए Docker और Kubernetes का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह डेवलपरों के लिए Docker और Kubernetes सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। डेवलपरों के लिए Docker और Kubernetes पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

भारी इमेज की समस्या

एकल-चरण वाला बिल्ड अक्सर कंपाइलर, डेवलपमेंट निर्भरताएँ और स्रोत कोड को प्रोडक्शन में भेज देता है। परिणामस्वरूप इमेज बड़ी होती है, उसे डाउनलोड करने में अधिक समय लगता है और उस पर हमले की सतह भी बड़ी होती है।

मल्टी-स्टेज बिल्ड क्या है

मल्टी-स्टेज बिल्ड एक Dockerfile में कई FROM कथनों का उपयोग करता है। शुरुआती चरण आर्टिफैक्ट बनाते हैं; अंतिम हल्का चरण चलाने के लिए आवश्यक चीज़ें ही कॉपी करता है।

Go का मल्टी-स्टेज उदाहरण

Go इमेज में कंपाइल करें, फिर केवल बाइनरी वाली बहुत छोटी अंतिम इमेज भेजें।

FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN go build -o app .

FROM alpine:3.20
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

नामित चरण से कॉपी करना

मुख्य पंक्ति COPY --from=build है। यह कंपाइल की गई app बाइनरी को बिल्ड चरण से बाहर लाती है और Go टूलचेन को पीछे छोड़ देती है।

Node.js का मल्टी-स्टेज उदाहरण

डेवलपमेंट निर्भरताओं के साथ इंस्टॉल और बिल्ड करें, फिर केवल प्रोडक्शन आउटपुट कॉपी करें।

FROM node:20 AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY package*.json ./
RUN npm ci --omit=dev
CMD ["node", "dist/index.js"]

हल्का बेस चुनना

अंतिम चरणों में alpine, -slim या distroless जैसे न्यूनतम बेस का उपयोग करें। छोटे बेस का अर्थ है कम पैकेज और कम कमज़ोरियाँ।

Distroless इमेज

Google की distroless इमेज में केवल आपका ऐप और उसका रनटाइम होता है; शेल या पैकेज मैनेजर नहीं होता। वे बहुत छोटी होती हैं और इंटरेक्टिव तरीके से उनका दुरुपयोग करना कठिन होता है।

FROM gcr.io/distroless/static-debian12
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

किसी विशिष्ट चरण को लक्ष्य बनाना

आप --target से केवल किसी नामित चरण तक बिल्ड कर सकते हैं, जो CI में परीक्षण चलाने के लिए उपयोगी है।

docker build --target build -t myapp:test .

निर्भरताओं को कैश करना

बाकी स्रोत से पहले निर्भरता मैनिफ़ेस्ट कॉपी करें। इसके बाद निर्भरता इंस्टॉल करना कैश हो जाएगा और केवल मैनिफ़ेस्ट बदलने पर ही दोबारा चलेगा।

COPY package*.json ./
RUN npm ci
COPY . .

लाभ मापना

पहले और बाद के आकार की तुलना करें। मल्टी-स्टेज बिल्ड आम तौर पर इमेज का आकार सैकड़ों MB से घटाकर कुछ दर्जन MB कर देते हैं।

docker images myapp

.dockerignore के साथ संयोजन

.dockerignore जोड़ें, ताकि बिल्ड संदर्भ से node_modules, .git और गुप्त जानकारी बाहर रहे; इससे बिल्ड तेज़ होते हैं और फ़ाइलों के इमेज में लीक होने से बचाव होता है।

node_modules
.git
*.env

त्वरित जाँच

आपने जो सीखा है उसकी जाँच करें।

पुनरावलोकन

आपने Dockerfile को बिल्ड और रनटाइम चरणों में बाँटना, --from से केवल आर्टिफैक्ट कॉपी करना, हल्के या distroless बेस चुनना, चरणों को लक्ष्य बनाना और हल्की प्रोडक्शन इमेज के लिए .dockerignore के साथ संयोजन करना सीखा।

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

एआई शिक्षक के साथ डेवलपरों के लिए Docker और Kubernetes सीखें — निःशुल्क

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

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

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

क्या “हल्की production image के लिए multi-stage build” पाठ निःशुल्क है?

हाँ—“हल्की production image के लिए multi-stage build” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और डेवलपरों के लिए Docker और Kubernetes पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। डेवलपरों के लिए Docker और Kubernetes पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“हल्की production image के लिए multi-stage build” में मैं क्या सीखूँगा?

multi-stage Dockerfile में build stage के दौरान app को compile या bundle करना और केवल artifacts को छोटी runtime image में कॉपी करना कुशलता से सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ डेवलपरों के लिए Docker और Kubernetes का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या डेवलपरों के लिए Docker और Kubernetes शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

“हल्की production image के लिए multi-stage build” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस डेवलपरों के लिए Docker और Kubernetes पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. वेब अनुप्रयोग को कंटेनरीकृत करना
  2. Docker इमेज का अनुकूलन
  3. सुरक्षा और प्रोडक्शन की सर्वोत्तम प्रक्रियाएँ
  4. हल्की production image के लिए multi-stage build
← डेवलपरों के लिए Docker और Kubernetes पर वापस जाएँ