मुफ़्त Docker Compose जनरेटर

सामान्य सेवाओं के साथ docker-compose.yml फ़ाइलें बनाएं। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

अपडेट किया गया

Share:
Home/Developer Tools/Docker Compose Generator

Docker Compose Generator

Generate docker-compose.yml files visually. Add services from templates or build custom stacks with full configuration.

Docker Compose Builder

0 services0 volumes0 networks

No services added yet

Use the Stacks or Add tab to get started

docker-compose.yml

{}

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

Docker Compose Generator क्या है?

Docker Compose Generator एक मुफ़्त ऑनलाइन टूल है जो डेटाबेस, कैश और वेब सर्वर जैसी पहले से कॉन्फ़िगर की गई सेवाओं के साथ docker-compose.yml फ़ाइलें बनाता है।

क्या Docker Compose Generator मुफ़्त है?

हाँ, यह पूरी तरह मुफ़्त है और इसके लिए किसी पंजीकरण की ज़रूरत नहीं है। पूरी फ़ाइल जनरेशन आपके ब्राउज़र में क्लाइंट-साइड पर होती है।

कौन-कौन सी सेवाएँ उपलब्ध हैं?

Docker Compose Generator में PostgreSQL, MySQL, MongoDB, Redis, Nginx, Node.js और कई अन्य लोकप्रिय सेवाओं के लिए टेम्पलेट शामिल हैं।

क्या इस टूल के साथ मेरा डेटा सुरक्षित है?

बिल्कुल। Docker Compose Generator सब कुछ आपके ब्राउज़र में क्लाइंट-साइड पर प्रोसेस करता है। कोई भी डेटा किसी सर्वर पर अपलोड या स्टोर नहीं किया जाता। आपकी सामग्री हर समय आपके डिवाइस पर निजी रहती है।

क्या Docker Compose Generator मोबाइल डिवाइस पर काम करता है?

हाँ, Docker Compose Generator पूरी तरह रिस्पॉन्सिव है और स्मार्टफ़ोन व टैबलेट पर काम करता है। आप इसे आधुनिक वेब ब्राउज़र वाले किसी भी डिवाइस पर इस्तेमाल कर सकते हैं — किसी ऐप को डाउनलोड करने की ज़रूरत नहीं।

क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?

किसी खाते या पंजीकरण की ज़रूरत नहीं है। बस अपने ब्राउज़र में Docker Compose Generator खोलें और तुरंत इस्तेमाल शुरू करें। कोई साइन-अप रुकावट या उपयोग की सीमा नहीं है।

यह टूल किन प्रोग्रामिंग भाषाओं या फ़ॉर्मैट का समर्थन करता है?

Docker Compose Generator लोकप्रिय फ़ॉर्मैट और भाषाओं की एक विस्तृत श्रृंखला का समर्थन करता है। समर्थित विकल्पों की पूरी सूची के लिए टूल का इंटरफ़ेस देखें।

मैं Docker Compose Generator का उपयोग कैसे करूँ?

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

कौन-से ब्राउज़र समर्थित हैं?

Docker Compose Generator सभी आधुनिक ब्राउज़रों में काम करता है, जिनमें Chrome, Firefox, Safari, Edge और Opera शामिल हैं। सर्वोत्तम अनुभव के लिए अपने पसंदीदा ब्राउज़र के नवीनतम संस्करण का उपयोग करें।

मुझे कौन सा Docker Compose फ़ाइल वर्ज़न चुनना चाहिए, और 3.8 में version की क्यों (key) नहीं होती?

यह जनरेटर आपको Compose फ़ाइल वर्ज़न 2.4, 3, 3.7, 3.8, या 3.9 में से चुनने देता है। वर्ज़न 2.x और पुरानी 3.x लाइन में फ़ाइल के सबसे ऊपर एक टॉप-लेवल "version:" फ़ील्ड ज़रूरी होती थी, लेकिन मॉडर्न Compose Specification ने इसे पूरी तरह हटा दिया है। इसीलिए यहाँ 3.8 चुनने पर बिना "version:" की-वाली फ़ाइल बनती है — आज का Docker Compose ("docker compose" प्लगइन) इस स्पेक को पढ़ता है और इस फ़ील्ड को पुराना मानता है, और अगर यह मौजूद हो तो चेतावनी भी देता है। 2.4 तभी चुनें जब आप बिना deploy ब्लॉक के per-service "mem_limit" जैसे पुराने फ़ीचर पर निर्भर हों; बाकी सभी मामलों में सबसे साफ़-सुथरे और फ़्यूचर-प्रूफ़ आउटपुट के लिए 3.8 चुनें। टूल में अपना लक्ष्य वर्ज़न सेट करें और जनरेट होने वाला YAML अपनी संरचना खुद ही उसके अनुसार समायोजित कर लेता है, जिससे फ़ाइल बिना किसी डिप्रिकेशन चेतावनी के चलती है।

मैं docker run कमांड को docker-compose.yml फ़ाइल में कैसे बदलूँ?

अपना मौजूदा "docker run" कमांड इंपोर्ट बॉक्स में पेस्ट करें और जनरेटर आम फ़्लैग्स को आपके लिए एक Compose सर्विस में बदल देता है। यह इमेज का नाम, "-p" होस्ट-टू-कंटेनर पोर्ट मैपिंग, "-e" एनवायरनमेंट वेरिएबल, "-v" वॉल्यूम माउंट, और आपके द्वारा दिया गया "--name" पढ़ता है, फिर इन्हें ठीक से इंडेंट की गई YAML कीज़ के रूप में लिखता है। यह तब उपयोगी है जब आपके पास किसी ट्यूटोरियल या शेल हिस्ट्री से एक काम करने वाली एक-लाइन कमांड हो और आप उसे एक इस्तेमाल-और-भूल जाने वाली कमांड की बजाय दोबारा इस्तेमाल होने लायक, वर्ज़न-कंट्रोल की जा सकने वाली फ़ाइल में बदलना चाहते हों। इंपोर्ट के बाद आप एडिट करना जारी रख सकते हैं — रीस्टार्ट पॉलिसी, depends_on, या हेल्थचेक जोड़ें — और लाइव प्रीव्यू साथ-साथ अपडेट होता रहता है। यह उन कंटेनर कमांड को, जिन पर आप पहले से भरोसा करते हैं, एक डिक्लेरेटिव फ़ाइल में बदल देता है जिसे आप टूल में एक ही "docker compose up" से कमिट और रन कर सकते हैं।

स्टार्टअप ऑर्डर नियंत्रित करने के लिए depends_on और हेल्थचेक में क्या फ़र्क़ है?

ये दोनों जुड़ी हुई लेकिन अलग-अलग समस्याएँ हल करते हैं। "depends_on" सिर्फ़ यह नियंत्रित करता है कि कंटेनर किस क्रम में शुरू हों — यह Docker को पहले एक डिपेंडेंसी शुरू करवाता है, लेकिन यह इंतज़ार नहीं करता कि वह सर्विस कनेक्शन स्वीकार करने के लिए तैयार भी हो, इसलिए एक डेटाबेस कंटेनर "शुरू" तो हो सकता है जबकि वह अभी भी इनिशियलाइज़ हो रहा हो। एक हेल्थचेक एक टेस्ट कमांड, इंटरवल, टाइमआउट, रिट्राई और स्टार्ट पीरियड डिफाइन करता है जो बताते हैं कि कोई सर्विस असल में स्वस्थ है या नहीं। इन दोनों को साथ इस्तेमाल करना — यानी डिफाइन किए गए हेल्थचेक के साथ "condition: service_healthy" वाला depends_on — ही एक सर्विस को तब तक इंतज़ार करवाता है जब तक दूसरी सर्विस वाकई तैयार न हो जाए। यह जनरेटर आपको depends_on लिंक सेट करने और हर सर्विस के लिए पूरा हेल्थचेक कॉन्फ़िगर करने देता है, और इसका वैलिडेटर चेतावनी देता है अगर कोई depends_on एंट्री किसी ऐसी सर्विस की ओर इशारा करे जो मौजूद ही न हो। टूल में दोनों को अपने स्टैक में शामिल करें ताकि कंटेनर एक भरोसेमंद, डिपेंडेंसी-अवेयर क्रम में शुरू हों।

मेरी कंपोज़ फ़ाइल में पोर्ट टकराव या अनडिफ़ाइंड वॉल्यूम एरर क्यों आता है?

ये दोनों आम गलतियाँ हैं जिन्हें इनबिल्ट वैलिडेटर "docker compose up" चलाने से पहले ही फ़्लैग कर देता है। पोर्ट टकराव तब होता है जब दो सर्विसेज़ एक ही होस्ट पोर्ट पर बाइंड होती हैं — जैसे दो सर्विसेज़ दोनों "8080:80" मैप कर रही हों — क्योंकि किसी दिए गए होस्ट पोर्ट पर एक समय में सिर्फ़ एक ही प्रोसेस लिसन कर सकती है; इसे ठीक करने के लिए एक तरफ़ का पोर्ट बदल दें, जैसे "8081:80"। अनडिफ़ाइंड वॉल्यूम एरर का मतलब है कि कोई सर्विस एक नेम्ड वॉल्यूम का संदर्भ दे रही है जिसे फ़ाइल के टॉप लेवल पर कभी घोषित ही नहीं किया गया, इसलिए Compose उसे बना नहीं सकता। जनरेटर इन्हें एडिट करते समय तुरंत पकड़ लेता है, साथ ही नाम या इमेज न होने वाली सर्विसेज़, डुप्लिकेट सर्विस नाम, मौजूद न होने वाले depends_on टारगेट, और कंटेनर वाला हिस्सा गायब होने वाली पोर्ट मैपिंग को भी पकड़ता है। टूल में वैलिडेशन चेतावनियों पर ध्यान दें और कॉपी करने से पहले उन्हें ठीक कर लें, ताकि आपका स्टैक पहली ही बार में सही तरीक़े से शुरू हो जाए।

Docker Compose में नेम्ड वॉल्यूम और बाइंड माउंट में क्या फ़र्क़ है?

नेम्ड वॉल्यूम वह स्टोरेज है जिसे Docker खुद बनाता और मैनेज करता है; आप इसे फ़ाइल के टॉप-लेवल "volumes:" सेक्शन में एक बार घोषित करते हैं और फिर नाम से इसका संदर्भ देते हैं, और Docker खुद तय करता है कि डेटा असल में कहाँ स्टोर होगा। डेटाबेस डेटा और ऐसी अन्य स्थिति (state) के लिए, जिसे आप होस्ट पाथ की चिंता किए बिना सुरक्षित रखना और बैकअप लेना चाहते हैं, यह सही विकल्प है। बाइंड माउंट किसी होस्ट डायरेक्टरी या फ़ाइल को होस्ट पाथ का इस्तेमाल करते हुए सीधे कंटेनर में मैप करता है, जैसे "./config:/etc/app" — यह कॉन्फ़िग फ़ाइलें डालने या डेवलपमेंट के दौरान सोर्स कोड को लाइव-रीलोड करने के लिए आदर्श है। नेम्ड वॉल्यूम अलग-अलग मशीनों में ज़्यादा पोर्टेबल होते हैं; बाइंड माउंट आपको होस्ट पर मौजूद फ़ाइलों तक सीधी पहुँच देते हैं। यह जनरेटर दोनों को सपोर्ट करता है और चेतावनी देता है अगर कोई सर्विस ऐसा नेम्ड वॉल्यूम इस्तेमाल करे जिसे आप टॉप लेवल पर डिफाइन करना भूल गए हों। टूल में हर सर्विस के लिए इनमें से कोई भी टाइप कॉन्फ़िगर करें और सही तरीक़े से लिखा गया YAML देखें।

संबंधित टूल

डॉकर कंपोज़ जनरेटर के बारे में

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

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

आप क्या बना सकते हैं

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

  • पहले से बने स्टैक — सात आम कॉम्बिनेशन बस एक क्लिक दूर हैं: LAMP, MEAN, WordPress, Redis + Node, PostgreSQL + API, और एक Nginx रिवर्स-प्रॉक्सी सेटअप, जिनमें से हर एक सही पोर्ट, वॉल्यूम और लिंक के साथ पहले से जुड़ा हुआ है।
  • सर्विस टेम्पलेट्स — आठ श्रेणियों में बंटी 22 अलग-अलग कॉन्फ़िगर की गई सर्विसेज़: डेटाबेस (PostgreSQL, MySQL, MariaDB, MongoDB, CockroachDB), कैश (Redis, Memcached, Valkey), रिवर्स प्रॉक्सी (Nginx, Traefik, Caddy), मॉनिटरिंग (Prometheus, Grafana, Loki), मैसेजिंग (RabbitMQ, Kafka, NATS), स्टोरेज (MinIO, Elasticsearch), ऑथ (Keycloak), और ऐप रनटाइम (Node, Python)।
  • कस्टम सर्विसेज़ — एक खाली सर्विस से शुरू करें और सिर्फ़ वही भरें जिसकी आपको ज़रूरत है।

हर सर्विस में मिलने वाली कॉन्फ़िगरेशन

हर सर्विस में वे सभी फ़ील्ड शामिल हैं जिनका इस्तेमाल आप असली कंपोज़ फ़ाइलों में करते हैं, न कि सिर्फ़ एक इमेज और पोर्ट:

  • इमेज या बिल्ड — किसी पब्लिश की गई इमेज का संदर्भ लें, या कॉन्टेक्स्ट, Dockerfile और बिल्ड आर्ग्स के साथ build ब्लॉक पर स्विच करें।
  • पोर्ट्स — होस्ट-टू-कंटेनर पोर्ट मैप करें, और जनरेटर सर्विसेज़ के बीच के टकराव को खुद फ़्लैग कर देगा।
  • एनवायरनमेंट वेरिएबल, वॉल्यूम और नेटवर्क — इसमें नेम्ड वॉल्यूम और टॉप लेवल पर मैनेज होने वाले कस्टम नेटवर्क भी शामिल हैं।
  • रीस्टार्ट पॉलिसी, कमांड और depends_on — स्टार्टअप ऑर्डर और डिफ़ॉल्ट कमांड को नियंत्रित करें।
  • लेबल्स और हेल्थचेक — Docker लेबल जोड़ें (जो Traefik रूटिंग के लिए उपयोगी हैं) और test, interval, timeout, retries व start period के साथ एक हेल्थचेक बनाएं।

आप कंपोज़ फ़ाइल का वर्ज़न भी चुन सकते हैं — 2.4, 3, 3.7, 3.8, या 3.9। 3.8 चुनने पर बिना टॉप-लेवल version: की-वाले मॉडर्न फ़ॉर्मेट में फ़ाइल तैयार होती है, जो आज के Docker Compose की अपेक्षा के अनुरूप है।

इंपोर्ट करें, वैलिडेट करें, और शिप करें

अगर आप पहले से लंबे docker run कमांड से कोई कंटेनर चला रहे हैं, तो उसे इंपोर्ट बॉक्स में पेस्ट करें और जनरेटर उसके फ़्लैग्स — इमेज, -p पोर्ट, -e एनवायरनमेंट वेरिएबल, -v वॉल्यूम, और नाम — को पार्स करके एक कंपोज़ सर्विस में बदल देगा। इससे एक इस्तेमाल-और-भूल जाने वाली एक-लाइन कमांड, दोबारा इस्तेमाल होने लायक और वर्ज़न-कंट्रोल की जा सकने वाली फ़ाइल बन जाती है।

जैसे-जैसे आप एडिट करते हैं, एक इनबिल्ट वैलिडेटर तुरंत चेतावनियाँ दिखाता है ताकि गलतियाँ आपको docker compose up चलाने से पहले ही पता चल जाएँ:

  • ऐसी सर्विस जिसका नाम या इमेज (जब build सक्षम न हो) गायब हो।
  • depends_on की कोई एंट्री ऐसी सर्विस की ओर इशारा कर रही हो जो मौजूद ही न हो।
  • दो सर्विसेज़ एक ही होस्ट पोर्ट पर बाइंड हो रही हों।
  • कोई नेम्ड वॉल्यूम किसी सर्विस में इस्तेमाल हो रहा हो लेकिन टॉप लेवल पर कभी डिफाइन ही न किया गया हो।
  • सर्विस के नामों की डुप्लिकेट एंट्री, या ऐसी पोर्ट मैपिंग जिसमें कंटेनर वाला हिस्सा गायब हो।

कंपोज़ फ़ाइलें इस तरह बनाने की वजह

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