Docker कंपोज़

From binaryoption
Jump to navigation Jump to search
Баннер1

डॉक़र कंपोज़: शुरुआती के लिए एक विस्तृत गाइड

परिचय

डॉक़र कंपोज़ एक शक्तिशाली टूल है जो डॉक़र कंटेनरों को परिभाषित और चलाने की प्रक्रिया को सरल बनाता है। यह खासकर उन अनुप्रयोगों के लिए उपयोगी है जिनमें कई कंटेनर शामिल होते हैं जो एक साथ काम करते हैं। डॉक़र कंपोज़ आपको एक YAML फ़ाइल में अपने एप्लिकेशन की सेवाओं को कॉन्फ़िगर करने की अनुमति देता है, और फिर उस फ़ाइल का उपयोग करके सभी सेवाओं को एक ही कमांड से शुरू, बंद और प्रबंधित किया जा सकता है। यह लेख शुरुआती लोगों के लिए डॉक़र कंपोज़ की गहन जानकारी प्रदान करता है, जिसमें इसकी मूल अवधारणाएँ, उपयोग के मामले, और व्यावहारिक उदाहरण शामिल हैं। यह लेख उन लोगों के लिए भी उपयोगी होगा जो माइक्रोसेवाएँ आर्किटेक्चर का उपयोग कर रहे हैं या जटिल अनुप्रयोगों को तैनात करने की आवश्यकता है।

डॉक़र कंपोज़ क्या है?

डॉक़र कंपोज़ एक ऐसा टूल है जो मल्टी-कंटेनर डॉक़र अनुप्रयोगों को परिभाषित और चलाने के लिए उपयोग किया जाता है। यह YAML फ़ाइल का उपयोग करता है, जिसे `docker-compose.yml` कहा जाता है, जिसमें आपके एप्लिकेशन की सेवाओं, नेटवर्क और वॉल्यूम को परिभाषित किया जाता है। डॉक़र कंपोज़ आपको एक ही कमांड का उपयोग करके सभी सेवाओं को एक साथ शुरू करने, बंद करने और प्रबंधित करने की अनुमति देता है।

यह कंटेनराइजेशन की प्रक्रिया को बहुत आसान बनाता है क्योंकि आपको प्रत्येक कंटेनर को अलग-अलग कमांड के साथ शुरू करने की आवश्यकता नहीं होती है। डॉक़र कंपोज़ स्वचालित रूप से कंटेनरों के बीच नेटवर्क स्थापित करता है और उन्हें आवश्यक वॉल्यूम माउंट करता है।

डॉक़र कंपोज़ के लाभ

डॉक़र कंपोज़ का उपयोग करने के कई लाभ हैं:

  • सरलता: यह मल्टी-कंटेनर अनुप्रयोगों को परिभाषित और प्रबंधित करने को सरल बनाता है।
  • पुनरुत्पादकता: YAML फ़ाइल के माध्यम से, आप अपने एप्लिकेशन के वातावरण को आसानी से पुन: उत्पन्न कर सकते हैं।
  • पोर्टेबिलिटी: डॉक़र कंपोज़ फ़ाइलें पोर्टेबल होती हैं और विभिन्न वातावरणों में उपयोग की जा सकती हैं।
  • स्केलेबिलिटी: आप आसानी से अपने एप्लिकेशन को स्केल कर सकते हैं, बस डॉक़र कंपोज़ फ़ाइल में सेवाओं की संख्या बढ़ाकर।
  • स्वचालन: डॉक़र कंपोज़ कई कार्यों को स्वचालित करता है, जैसे कि कंटेनरों के बीच नेटवर्क स्थापित करना और वॉल्यूम माउंट करना।

डॉक़र कंपोज़ की मूल अवधारणाएँ

डॉक़र कंपोज़ को समझने के लिए, कुछ मूल अवधारणाओं को जानना महत्वपूर्ण है:

  • सेवा (Service): एक सेवा एक कंटेनर का प्रतिनिधित्व करती है जो आपके एप्लिकेशन का एक हिस्सा बनाती है। उदाहरण के लिए, आपके पास एक वेब सर्वर, एक डेटाबेस और एक कैश सेवा हो सकती है।
  • इमेज (Image): एक इमेज एक रीड-ओनली टेम्पलेट है जिसका उपयोग कंटेनर बनाने के लिए किया जाता है। आप डॉक़र हब से सार्वजनिक इमेज का उपयोग कर सकते हैं या अपनी खुद की इमेज बना सकते हैं।
  • कंटेनर (Container): एक कंटेनर एक इमेज का रनिंग इंस्टेंस है। यह एक अलग प्रक्रिया के रूप में चलता है और अपने स्वयं के फ़ाइल सिस्टम और नेटवर्क स्थान रखता है।
  • वॉल्यूम (Volume): एक वॉल्यूम एक डेटा पर्सिस्टेंस मैकेनिज्म है जो कंटेनर के बाहर डेटा को स्टोर करता है। यह डेटा को कंटेनर के बंद होने के बाद भी सुरक्षित रखता है।
  • नेटवर्क (Network): एक नेटवर्क कंटेनरों को एक दूसरे के साथ संवाद करने की अनुमति देता है। डॉक़र कंपोज़ स्वचालित रूप से कंटेनरों के बीच एक नेटवर्क बनाता है, लेकिन आप अपनी खुद की नेटवर्क भी बना सकते हैं।

docker-compose.yml फ़ाइल का ढाँचा

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

यहाँ एक सरल `docker-compose.yml` फ़ाइल का उदाहरण दिया गया है:

```yaml version: "3.9" services:

 web:
   image: nginx:latest
   ports:
     - "80:80"
   volumes:
     - ./html:/usr/share/nginx/html
 db:
   image: postgres:13
   environment:
     POSTGRES_USER: example
     POSTGRES_PASSWORD: example

```

इस उदाहरण में, हमने दो सेवाओं को परिभाषित किया है: `web` और `db`। `web` सेवा Nginx वेब सर्वर का उपयोग करती है और पोर्ट 80 को होस्ट मशीन पर एक्सपोज़ करती है। यह `./html` निर्देशिका को कंटेनर के `/usr/share/nginx/html` निर्देशिका में माउंट करती है। `db` सेवा PostgreSQL डेटाबेस का उपयोग करती है और पर्यावरण चर `POSTGRES_USER` और `POSTGRES_PASSWORD` को सेट करती है।

डॉक़र कंपोज़ कमांड्स

डॉक़र कंपोज़ कई कमांड प्रदान करता है जो आपको अपने एप्लिकेशन को प्रबंधित करने की अनुमति देते हैं। यहाँ कुछ सबसे अधिक उपयोग किए जाने वाले कमांड दिए गए हैं:

  • `docker-compose up`: यह कमांड `docker-compose.yml` फ़ाइल में परिभाषित सभी सेवाओं को शुरू करता है।
  • `docker-compose down`: यह कमांड `docker-compose.yml` फ़ाइल में परिभाषित सभी सेवाओं को बंद करता है और उनके कंटेनरों को हटा देता है।
  • `docker-compose start`: यह कमांड बंद सेवाओं को शुरू करता है।
  • `docker-compose stop`: यह कमांड चल रही सेवाओं को बंद करता है।
  • `docker-compose restart`: यह कमांड चल रही सेवाओं को पुनरारंभ करता है।
  • `docker-compose ps`: यह कमांड चल रहे कंटेनरों की स्थिति दिखाता है।
  • `docker-compose logs`: यह कमांड कंटेनरों के लॉग दिखाता है।
  • `docker-compose build`: यह कमांड `docker-compose.yml` फ़ाइल में परिभाषित इमेज बनाता है।

एक व्यावहारिक उदाहरण: एक वेब एप्लिकेशन तैनात करना

मान लीजिए कि आपके पास एक साधारण वेब एप्लिकेशन है जिसमें एक वेब सर्वर (Nginx) और एक डेटाबेस (PostgreSQL) शामिल हैं। आप डॉक़र कंपोज़ का उपयोग करके इस एप्लिकेशन को आसानी से तैनात कर सकते हैं।

सबसे पहले, एक `docker-compose.yml` फ़ाइल बनाएँ:

```yaml version: "3.9" services:

 web:
   image: nginx:latest
   ports:
     - "80:80"
   volumes:
     - ./html:/usr/share/nginx/html
   depends_on:
     - db
 db:
   image: postgres:13
   environment:
     POSTGRES_USER: example
     POSTGRES_PASSWORD: example

```

इस उदाहरण में, हमने `depends_on` विकल्प का उपयोग करके यह निर्दिष्ट किया है कि `web` सेवा `db` सेवा पर निर्भर करती है। इसका मतलब है कि डॉक़र कंपोज़ `db` सेवा को पहले शुरू करेगा और फिर `web` सेवा को।

इसके बाद, एक `html` निर्देशिका बनाएँ और उसमें एक `index.html` फ़ाइल रखें:

```html <!DOCTYPE html> <html> <head>

 <title>Welcome to my web application!</title>

</head> <body>

Hello, world!

</body> </html> ```

अंत में, टर्मिनल में निम्नलिखित कमांड चलाएँ:

```bash docker-compose up ```

यह कमांड Nginx वेब सर्वर और PostgreSQL डेटाबेस को शुरू करेगा। आप अपने ब्राउज़र में `http://localhost` पर जाकर अपने वेब एप्लिकेशन को एक्सेस कर सकते हैं।

डॉक़र कंपोज़ के साथ वॉल्यूम का उपयोग करना

वॉल्यूम का उपयोग डेटा को कंटेनर के बाहर स्टोर करने के लिए किया जाता है, ताकि डेटा कंटेनर के बंद होने के बाद भी सुरक्षित रहे। डॉक़र कंपोज़ आपको अपनी `docker-compose.yml` फ़ाइल में वॉल्यूम को परिभाषित करने की अनुमति देता है।

यहाँ एक उदाहरण दिया गया है:

```yaml version: "3.9" services:

 db:
   image: postgres:13
   volumes:
     - db_data:/var/lib/postgresql/data

volumes:

 db_data:

```

इस उदाहरण में, हमने `db_data` नाम का एक वॉल्यूम बनाया है और इसे कंटेनर के `/var/lib/postgresql/data` निर्देशिका में माउंट किया है। इसका मतलब है कि PostgreSQL डेटाबेस द्वारा जेनरेट किया गया सभी डेटा `db_data` वॉल्यूम में स्टोर किया जाएगा।

डॉक़र कंपोज़ के साथ नेटवर्क का उपयोग करना

नेटवर्क कंटेनरों को एक दूसरे के साथ संवाद करने की अनुमति देते हैं। डॉक़र कंपोज़ स्वचालित रूप से कंटेनरों के बीच एक नेटवर्क बनाता है, लेकिन आप अपनी खुद की नेटवर्क भी बना सकते हैं।

यहाँ एक उदाहरण दिया गया है:

```yaml version: "3.9" services:

 web:
   image: nginx:latest
   ports:
     - "80:80"
   networks:
     - my_network
 db:
   image: postgres:13
   networks:
     - my_network

networks:

 my_network:

```

इस उदाहरण में, हमने `my_network` नाम का एक नेटवर्क बनाया है और `web` और `db` सेवाओं को इस नेटवर्क से जोड़ा है। इसका मतलब है कि `web` और `db` सेवाएँ एक दूसरे के साथ नेटवर्क के माध्यम से संवाद कर सकती हैं।

डॉक़र कंपोज़ के साथ पर्यावरण चर का उपयोग करना

पर्यावरण चर का उपयोग कंटेनर के व्यवहार को कॉन्फ़िगर करने के लिए किया जाता है। डॉक़र कंपोज़ आपको अपनी `docker-compose.yml` फ़ाइल में पर्यावरण चर को परिभाषित करने की अनुमति देता है।

यहाँ एक उदाहरण दिया गया है:

```yaml version: "3.9" services:

 db:
   image: postgres:13
   environment:
     POSTGRES_USER: example
     POSTGRES_PASSWORD: example

```

इस उदाहरण में, हमने `POSTGRES_USER` और `POSTGRES_PASSWORD` नाम के दो पर्यावरण चर को परिभाषित किया है। इन चर का उपयोग PostgreSQL डेटाबेस के लिए उपयोगकर्ता नाम और पासवर्ड सेट करने के लिए किया जाएगा।

तकनीकी विश्लेषण में, इसी तरह से कॉन्फ़िगरेशन को प्रबंधित करना महत्वपूर्ण है।

निष्कर्ष

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

अतिरिक्त संसाधन

संबंधित विषय

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер