DevOps बूटकैंप · पाठ

Compose फ़ाइल लिखना

सेवाएँ, नेटवर्क और वॉल्यूम परिभाषित करने के लिए `docker-compose.yml` का YAML सिंटैक्स सीखें।

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

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

Compose फ़ाइल: नक्शा

Docker Compose फ़ाइलें लिखने के पाठ में आपका स्वागत है! docker-compose.yml फ़ाइल बहु-कंटेनर Docker अनुप्रयोगों को परिभाषित करने और चलाने का आपका नक्शा है।

यह एक ही फ़ाइल में आपके अनुप्रयोग की सेवाओं, नेटवर्क और वॉल्यूम को कॉन्फ़िगर करने के लिए YAML सिंटैक्स का उपयोग करती है।

Compose फ़ाइल लिखना — चित्र 1

YAML: त्वरित पुनरावलोकन

Docker Compose फ़ाइलें YAML (YAML Ain't Markup Language) में लिखी जाती हैं। यह मनुष्यों के लिए सुविधाजनक डेटा क्रमबद्धीकरण मानक है।

  • कुंजी-मान युग्म: key: value
  • सूचियाँ: आइटम हाइफ़न से शुरू होते हैं (- item)
  • इंडेंटेशन: संरचना और पदानुक्रम परिभाषित करने के लिए अत्यंत महत्वपूर्ण। टैब नहीं, स्पेस का उपयोग करें!

`version` कुंजी

हर docker-compose.yml फ़ाइल version कुंजी से शुरू होती है। यह Compose फ़ाइल के फ़ॉर्मैट का संस्करण बताती है और Docker Compose को आपकी फ़ाइल की व्याख्या समझने में सहायता करती है।

अधिकांश आधुनिक अनुप्रयोगों के लिए '3.8' या इसी तरह का '3.x' संस्करण सुझाया जाता है।

version: '3.8'

`services` परिभाषित करें

services अनुभाग में आप अपने अनुप्रयोग को बनाने वाले अलग-अलग कंटेनर (सेवाएँ) परिभाषित करते हैं। प्रत्येक सेवा किसी वेब सर्वर या डेटाबेस जैसे घटक को दर्शाती है।

services के अंतर्गत आप अपनी पसंद के नाम से प्रत्येक सेवा की सूची बनाते हैं।

version: '3.8'
services:
  web:
    # Service configuration goes here
  database:
    # Another service's configuration

सेवा की `image` और `ports`

सेवा की परिभाषा के अंदर image बताता है कि किस Docker इमेज का उपयोग करना है (जैसे, nginx:latest)। ports कुंजी कंटेनर पोर्ट को होस्ट पोर्ट से मैप करती है, जिससे बाहरी पहुँच संभव होती है।

  • "80:80" होस्ट के पोर्ट 80 को कंटेनर के पोर्ट 80 से मैप करता है।
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

सेवा के `volumes`

किसी सेवा के अंदर volumes कुंजी आपको अपनी होस्ट मशीन के पाथ को कंटेनर में माउंट करने या स्थायी संग्रहण के लिए नामित वॉल्यूम का उपयोग करने देती है।

यह उदाहरण स्थानीय डायरेक्टरी ./app को कंटेनर के अंदर /usr/src/app पर माउंट करता है।

version: '3.8'
services:
  app:
    image: my-node-app
    volumes:
      - ./app:/usr/src/app

सेवा `environment` वेरिएबल

अपनी सेवा के कंटेनरों में पर्यावरण वेरिएबल भेजने के लिए environment कुंजी का उपयोग करें। ऐसे कॉन्फ़िगरेशन के लिए यह बहुत महत्वपूर्ण है, जो अलग-अलग परिवेशों के बीच बदल सकता है (जैसे, डेटाबेस कनेक्शन स्ट्रिंग)।

वेरिएबल को कुंजी-मान युग्मों के रूप में या सूची प्रारूप में लिखा जा सकता है।

version: '3.8'
services:
  backend:
    image: my-api
    environment:
      - DATABASE_URL=postgres://user:pass@host:5432/db
      - NODE_ENV=development

शीर्ष-स्तरीय `networks` और `volumes`

सेवाओं के भीतर परिभाषित करने के अलावा, आप अपनी docker-compose.yml फ़ाइल के शीर्ष स्तर पर कस्टम नामित वॉल्यूम और नेटवर्क भी घोषित कर सकते हैं।

इससे डेटा स्थायित्व और कंटेनरों के बीच संचार के लिए अधिक व्यवस्थित और पुनः उपयोग योग्य परिभाषाएँ बनाई जा सकती हैं।

version: '3.8'
services:
  # ... service definitions ...

networks:
  my_app_network:
    # custom network configuration

volumes:
  db_data:
    # named volume configuration

सब कुछ एक साथ जोड़ना

अब तक सीखी गई बातों को मिलाकर बनाया गया यह एक छोटा उदाहरण है। इसमें एक वेब सेवा और एक डेटाबेस सेवा परिभाषित की गई है, जिसमें इमेज, पोर्ट और नामित वॉल्यूम का उपयोग किया गया है।

ध्यान दें कि इंडेंटेशन किस तरह संरचना बनाता है।

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - web_content:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=secret

volumes:
  web_content:
  db_data:

कंपोज़ फ़ाइल की जाँच

निम्नलिखित में से कौन-सा YAML अंश 'api' नाम की Docker Compose सेवा को सही ढंग से परिभाषित करता है, जो 'myapi:1.0' इमेज का उपयोग करती है और कंटेनर के पोर्ट 3000 को होस्ट के पोर्ट 8080 पर उपलब्ध कराती है?

पुनरावलोकन: कंपोज़ फ़ाइल की आवश्यक बातें

बहुत अच्छा! आपने docker-compose.yml फ़ाइल लिखने की मूल बातें सीख ली हैं।

  • यह version से शुरू होती है।
  • services आपके एप्लिकेशन के घटकों को परिभाषित करता है।
  • हर सेवा image का उपयोग करती है, ports उपलब्ध करा सकती है, स्थायित्व के लिए volumes का उपयोग कर सकती है और environment वेरिएबल सेट कर सकती है।
  • शीर्ष-स्तरीय networks और volumes उन्नत कॉन्फ़िगरेशन की सुविधा देते हैं।

बहु-कंटेनर ऐप्स को व्यवस्थित करने के लिए इस YAML संरचना में दक्षता महत्वपूर्ण है!

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

एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क

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

पाठ्यक्रम
142
पाठ
568

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

क्या “Compose फ़ाइल लिखना” पाठ निःशुल्क है?

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

“Compose फ़ाइल लिखना” में मैं क्या सीखूँगा?

सेवाएँ, नेटवर्क और वॉल्यूम परिभाषित करने के लिए `docker-compose.yml` का YAML सिंटैक्स सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

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

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

“Compose फ़ाइल लिखना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Docker Compose क्या है
  2. Compose फ़ाइल लिखना
  3. बहु-सर्विस ऐप परिनियोजित करना
  4. पर्यावरण वेरिएबल और .env फ़ाइल
← DevOps बूटकैंप पर वापस जाएँ