Last chance! 50% off DataCamp Premium
Sale ends in
क्या आपके पास Docker चल रहा है और आप बेसिक कमांड्स जानते हैं, लेकिन एक-एक करके कंटेनर शुरू करने से थक गए हैं?
Docker Compose एक टूल है जो आपको एक ही YAML फ़ाइल से मल्टी-कंटेनर एप्लीकेशन को परिभाषित करने और चलाने देता है। उलझन की बात यह है कि इसके दो वर्शन प्रचलन में हैं: पुराना स्टैंडअलोन बाइनरी (v1) और नया CLI प्लगइन (v2)। ज़्यादातर इंस्टॉलेशन आर्टिकल यह नहीं बताते कि वे किस वर्शन का उपयोग कर रहे हैं, जिससे आप ऐसे स्टेप्स फॉलो कर बैठते हैं जो आपके सेटअप से मेल नहीं खाते।
Docker Compose v2 आधुनिक Docker इंस्टॉल के साथ बंडल होने वाला प्लगइन है, जो इंस्टॉलेशन, रन और वेरिफिकेशन को काफी सरल बना देता है। अब यह पहले जैसा मैन्युअल प्रोसेस नहीं रह गया है।
इस लेख में, मैं आपको Linux, macOS, और Windows पर Docker Compose को सही तरीके से—v2 का उपयोग करके—इंस्टॉल करना दिखाऊंगा।
क्या आप वर्चुअलाइज़ेशन और कंटेनराइज़ेशन की अवधारणाओं में नए हैं? हमारे हाल के Docker for Beginners लेख को पढ़ें और हाथों-हाथ सीखें।
सबसे पहले, आपके मशीन पर Docker Engine होना चाहिए। Docker Compose स्टैंडअलोन नहीं चलता—इसे काम करने के लिए Docker चाहिए।
अपनी Docker वर्शन जांचने के लिए यह कमांड चलाएँ:
docker --version

इंस्टॉल किया गया Docker वर्शन
अगर Docker इंस्टॉल नहीं है, तो यहीं रुकें और पहले उसे इंस्टॉल करें। अगर यह इंस्टॉल है, तो आप चेक कर सकते हैं कि Compose पहले से उपलब्ध है या नहीं:
docker compose version

इंस्टॉल किया गया Docker Compose वर्शन
अगर यह कोई वर्शन नंबर लौटाता है, तो आपका काम हो गया—Compose v2 पहले से ही आपके Docker इंस्टॉल के साथ बंडल है। आप सीधे वेरिफिकेशन सेक्शन पर जा सकते हैं।
अगर इसके बजाय जेनरिक command not found मैसेज लौटे, तो आगे पढ़ें।
यहाँ एक अहम फर्क समझ लें:
Docker Compose v1 पुराना स्टैंडअलोन बाइनरी है। आप इसे docker-compose (हाइफ़न सहित) से चलाते थे। यह डिप्रिकेटेड है और अब मेंटेन नहीं होता।
Docker Compose v2 एक CLI प्लगइन है जो आधुनिक Docker के साथ आता है। इसे आप docker compose (बिना हाइफ़न) से चलाते हैं।
अगर आपका Docker इंस्टॉल हालिया है, तो लगभग तय है कि आपके पास v2 पहले से है। इस लेख का बाकी हिस्सा v2 मानकर चलता है।
Linux पर Docker Compose पाने के दो तरीके हैं। पहला Docker के आधिकारिक रिपॉज़िटरी का उपयोग करता है—इसी की सिफारिश की जाती है। दूसरा मैन्युअल इंस्टॉल है, जो तब उपयोगी है जब आप पैकेज मैनेजर का उपयोग नहीं कर सकते या एक विशिष्ट वर्शन चाहिए।
यह तरीका Compose को आपके Docker इंस्टॉल से जोड़े रखता है, जिससे अपडेट सिंक में रहते हैं।
यदि आपने अभी तक Docker Engine इंस्टॉल नहीं किया है, तो पहले Docker की आधिकारिक apt रिपॉज़िटरी सेटअप करें:
# Add Docker's GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
अब Docker Engine और Compose प्लगइन साथ में इंस्टॉल करें:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-compose-plugin पैकेज ही आपको docker compose एक CLI कमांड के रूप में देता है। सुनिश्चित करें कि यह काम कर रहा है:
docker compose version

Ubuntu VM पर Docker Compose वर्शन
बस इतना ही।
इस तरीके का उपयोग तब करें जब आपको Compose का कोई विशिष्ट वर्शन चाहिए, या आपका वातावरण Docker की रिपॉज़िटरी सपोर्ट नहीं करता।
GitHub से सीधे लेटेस्ट रिलीज़ डाउनलोड करके शुरू करें। v5.0.1 को अपनी ज़रूरत के वर्शन से बदलें:
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
बाइनरी को executable बनाएं:
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
और अंत में, इंस्टॉलेशन वेरिफाई करें:
docker compose version

Ubuntu VM पर Docker Compose वर्शन
यहाँ बस एक बात याद रखें कि मैन्युअल इंस्टॉल अपने-आप अपडेट नहीं होते। अगर आपने एक बाइनरी इंस्टॉल की और भूल गए, तो आप किसी पुराने वर्शन पर चल सकते हैं जिसमें ज्ञात बग्स या सुरक्षा समस्याएँ हों। अगर आप यह तरीका अपनाते हैं, तो समय-समय पर Docker Compose रिलीज़ पेज ज़रूर देखें।
macOS पर आपको Docker Compose अलग से इंस्टॉल करने की ज़रूरत नहीं—यह Docker Desktop के साथ बंडल आता है।
Docker Desktop को Docker की आधिकारिक साइट से डाउनलोड करें। अपने चिप के अनुसार सही वर्शन चुनें—Apple Silicon (M1-M5) या Intel।
इंस्टॉल होने के बाद, Docker Desktop खोलें और इसे स्टार्ट होने दें। फिर यह कमांड चलाकर वेरिफाई करें कि Compose उपलब्ध है:
docker compose version

macOS पर Docker Compose वर्शन
बस। Compose v2 उपयोग के लिए तैयार है।
यदि आप Homebrew से टूल मैनेज करना पसंद करते हैं और पूर्ण Docker Desktop GUI नहीं चाहते, तो आप इसके माध्यम से Docker और Compose इंस्टॉल कर सकते हैं:
brew install docker
brew install docker-compose
अगर आप यह रास्ता चुनते हैं, तो याद रखें कि Homebrew Docker Engine को Desktop ऐप के बिना इंस्टॉल करता है। यह CLI उपयोग के लिए ठीक है, लेकिन आपको Docker Dashboard और ऑटोमैटिक अपडेट जैसी सुविधाएँ नहीं मिलेंगी। ज़्यादातर macOS उपयोगकर्ताओं के लिए Docker Desktop ही आसान रास्ता है।
macOS की तरह, Windows पर भी Docker Compose Docker Desktop के ज़रिए अपने-आप आता है। अलग से इंस्टॉल करने की ज़रूरत नहीं।
Docker Desktop इंस्टॉल करने से पहले, आपको WSL2 (Windows Subsystem for Linux 2) सक्षम करना होगा। WSL2 Docker को Windows पर वास्तविक Linux kernel चलाने देता है, जो इस प्लेटफ़ॉर्म पर कंटेनर्स के काम करने का तरीका है। इसे सक्षम करने के लिए, PowerShell को Administrator के रूप में खोलें और चलाएँ:
wsl --install
प्रॉम्प्ट मिलने पर मशीन को रिस्टार्ट करें। फिर Docker की आधिकारिक साइट से Docker Desktop डाउनलोड और इंस्टॉल करें।
सेटअप के दौरान, "Use WSL2 instead of Hyper-V" विकल्प पर टिक होना सुनिश्चित करें। एक बार Docker Desktop चलने लगे, तो वेरिफाई करें कि Compose उपलब्ध है—आप यह PowerShell या अपने WSL टर्मिनल, किसी में भी कर सकते हैं:
docker compose version
यदि आपको "permission denied" एरर मिलती है, तो आमतौर पर दो में से एक कारण होता है:
docker कमांड के काम करने से पहले इसे सिस्टम ट्रे में सक्रिय होना चाहिए।docker ग्रुप में जोड़कर इसे ठीक कर सकते हैं:sudo usermod -aG docker $USER
अब बस WSL से लॉग आउट होकर दोबारा लॉग इन करें ताकि बदलाव प्रभावी हो जाए।
Docker Compose इंस्टॉल करने के बाद, यह कमांड चलाएँ ताकि पक्का हो जाए कि सब कुछ काम कर रहा है:
docker compose version
आपको ऐसा आउटपुट दिखना चाहिए:

इंस्टॉल किया गया Compose वर्शन
सटीक वर्शन नंबर पढ़ने के समय पर निर्भर करेगा, लेकिन जब तक आप v5.0.1 या नया देखते हैं, सब ठीक है।
अगर आप देखें docker compose: command not found, तो Compose इंस्टॉल नहीं है या आपके PATH पर नहीं है। नीचे दिए गए ट्रबलशूटिंग सेक्शन पर जाएँ।
आप देखेंगे कि कुछ ऑनलाइन आर्टिकल्स docker-compose (हाइफ़न सहित) का उपयोग करते हैं। फर्क यह है:
docker-compose लिगेसी v1 कमांड है। यह Docker से अलग इंस्टॉल होने वाला स्टैंडअलोन Python बाइनरी था।
docker compose (बिना हाइफ़न) v2 CLI प्लगइन है, जो सीधे Docker CLI में शामिल है।
Docker ने 2023 में v1 सपोर्ट बंद कर दिया, इसलिए docker-compose अब मेंटेन नहीं होता। अगर यह अभी भी इंस्टॉल है, तो देखें कि यह किस वर्शन की ओर इशारा करता है:
docker-compose --version
यदि यह 1.x.x वर्शन लौटाता है, तो आप पुराना बाइनरी चला रहे हैं। इसे अनइंस्टॉल करें और आगे से docker compose का उपयोग करें। कमांड लगभग समान हैं, लेकिन v2 तेज़ है और सक्रिय रूप से मेंटेन होता है।
आपने Compose कैसे इंस्टॉल किया है, अपग्रेड उसी पर निर्भर करेगा।
macOS और Windows पर Docker Desktop सब संभालता है, तो बस ऐप खोलें, Settings > Software Updates पर जाएँ, और ज़रूरत हो तो अपडेट कर दें। Compose Docker के साथ अपने-आप अपग्रेड हो जाता है।
Linux पर पैकेज मैनेजर के साथ, यह चलाएँ:
sudo apt-get update
sudo apt-get upgrade docker-compose-plugin
यह Docker की आधिकारिक रिपॉज़िटरी से लेटेस्ट वर्शन ले आता है।
यदि आपने मैन्युअल इंस्टॉल किया था, तो आपको नए वर्शन नंबर के साथ फिर से डाउनलोड स्टेप दोहराना होगा। लेटेस्ट वर्शन के लिए Docker Compose रिलीज़ पेज देखें, फिर बाइनरी बदलें:
curl -SL https://github.com/docker/compose/releases/download/v5.0.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
किसी भी अपग्रेड के बाद, नया वर्शन सक्रिय है या नहीं, बस वेरिफाई कर लें:
docker compose version
और कुछ नहीं।
अनइंस्टॉल स्टेप्स इस पर निर्भर करते हैं कि आपने Compose पहले कैसे इंस्टॉल किया था।
यदि आपने Linux पर पैकेज मैनेजर के माध्यम से इंस्टॉल किया था, तो प्लगइन को इस कमांड से हटाएँ:
sudo apt-get remove docker-compose-plugin
यदि आपने मैन्युअल रूप से इंस्टॉल किया था, तो बस बाइनरी डिलीट कर दें:
rm $DOCKER_CONFIG/cli-plugins/docker-compose
यदि आपके सिस्टम पर पुराना v1 स्टैंडअलोन बाइनरी अब भी मौजूद है, तो इसे ढूँढकर इस कमांड से हटा दें:
sudo rm /usr/local/bin/docker-compose
हटाने के बाद, docker compose version चलाकर दोबारा जाँच लें। यदि कमांड एरर लौटाती है, तो अनइंस्टॉल सफल रहा।
Docker Compose को इंस्टॉल और अनइंस्टॉल करना आसान है, लेकिन फिर भी कुछ दिक्कतें आ सकती हैं। यहाँ संभावित समस्याएँ और उनके समाधान दिए गए हैं।
इसका मतलब या तो Compose इंस्टॉल नहीं है, या Docker इसे ढूँढ नहीं पा रहा। पहले यह पक्का करें कि Docker स्वयं चल रहा है:
docker --version
यदि Docker ठीक है लेकिन Compose गायब है, तो प्लगइन को फिर से इंस्टॉल कर लें:
sudo apt-get install docker-compose-plugin
यदि docker compose चलाते समय permission denied एरर दिखे, तो संभवतः आपके यूज़र को Docker socket की एक्सेस नहीं है। खुद को docker ग्रुप में जोड़ें:
sudo usermod -aG docker $USER
चेंज लागू करने के लिए लॉग आउट करके वापस लॉग इन करें। Docker Desktop (macOS/Windows) पर, कमांड चलाने से पहले यह सुनिश्चित करें कि ऐप वास्तव में चल रहा है।
यदि Compose का व्यवहार अप्रत्याशित लगे, तो देखें कि आप वास्तव में कौन सा वर्शन चला रहे हैं:
docker compose version
यदि आप पुराने वर्शन पर हैं, तो ऊपर दिए गए अपग्रेड स्टेप्स का पालन करें। यदि आपके पास v1 और v2 दोनों इंस्टॉल हैं, तो वही भ्रम का कारण है।
एक ही मशीन पर docker-compose (v1) और docker compose (v2) दोनों होना कॉन्फ्लिक्ट करा सकता है। देखें कि v1 अब भी मौजूद है या नहीं, इस कमांड से:
which docker-compose
यदि यह कोई पाथ लौटाए, तो उसे हटा दें:
sudo rm $(which docker-compose)
आगे से docker compose (बिना हाइफ़न) का उपयोग करें।
यदि Docker इंस्टॉल है लेकिन कमांड नहीं मिल रहे, तो संभव है कि CLI प्लगइन डायरेक्टरी आपके PATH पर नहीं है। देखें कि Compose बाइनरी कहाँ है:
ls $DOCKER_CONFIG/cli-plugins/
अगर वह वहाँ है पर काम नहीं कर रहा, तो उस डायरेक्टरी को अपने PATH में ~/.bashrc या ~/.zshrc में जोड़ें:
export PATH=$PATH:$HOME/.docker/cli-plugins
फिर यह चलाकर अपना शेल रीलोड करें:
source ~/.bashrc
यदि आप कुछ समय से Docker उपयोग कर रहे हैं, तो आपने ऑनलाइन आर्टिकल्स और वीडियोज़ में docker-compose और docker compose दोनों देखे होंगे। ये एक जैसे नहीं हैं।
Docker Compose v1 एक स्टैंडअलोन Python बाइनरी था जिसे Docker से अलग इंस्टॉल किया जाता था। यह docker-compose (हाइफ़न सहित) कमांड का उपयोग करता था। Docker ने इसे 2023 में डिप्रिकेट कर दिया और अब यह मेंटेन या अपडेट नहीं होता।
Docker Compose v2 एक Go-आधारित CLI प्लगइन है जो सीधे Docker CLI में बना हुआ आता है। इसे आप docker compose (बिना हाइफ़न) से कॉल करते हैं। यह Docker Engine और Docker Desktop के साथ आता है, इसलिए आधुनिक सेटअप पर अतिरिक्त कुछ इंस्टॉल करने की ज़रूरत नहीं।
दोनों वर्शनों के बीच कमांड सिंटैक्स लगभग समान है—ज़्यादातर docker-compose कमांड्स docker compose के साथ भी वैसे ही काम करते हैं। मुख्य फर्क अंदरूनी है: v2 तेज़ है, Docker के टूलिंग के साथ बेहतर इंटीग्रेटेड है, और सक्रिय रूप से मेंटेन होता है।
यहाँ एक तुलना देखें:

Compose v1 और v2 तुलना तालिका
2026 में, v2 पर ही टिके रहें। यदि आपके स्क्रिप्ट्स या CI पाइपलाइन्स अभी भी docker-compose का उपयोग करती हैं, तो हाइफ़न को स्पेस से बदल दें—ज़्यादातर वर्कफ़्लोज़ के लिए यही एकमात्र बदलाव चाहिए।
यदि आपके पास आधुनिक Docker इंस्टॉल है, तो Compose v2 पहले से इंस्टॉल होता है। अतिरिक्त कोई स्टेप नहीं चाहिए। macOS और Windows पर Docker Desktop एप्लिकेशन के साथ Compose आता है। Linux पर, यह docker-compose-plugin पैकेज द्वारा हैंडल होता है।
Compose फ़ाइलें लिखना या चलाना शुरू करने से पहले, docker compose version चलाकर सुनिश्चित कर लें कि सब कुछ तैयार है।
यदि आप अभी भी Compose v1 चला रहे हैं, तो अब स्विच करने का समय है। हाइफ़न हटाएँ और पुराना बाइनरी निकाल दें—बस इतना ही। आपकी सभी मौजूदा Compose फ़ाइलें v2 के साथ वैसे ही काम करेंगी।
Docker पर और संसाधन ढूँढ रहे हैं? हमारे Introduction to Docker कोर्स में नामांकन करें और कंटेनर्स, इमेजेस, वगैरह के बारे में सीखें।
Docker Compose आपको एक ही YAML फ़ाइल से मल्टी-कंटेनर एप्लीकेशन को परिभाषित और चलाने देता है। अलग-अलग docker run कमांड्स से हर कंटेनर को मैन्युअली शुरू करने के बजाय, आप अपना पूरा सेटअप एक docker-compose.yml फ़ाइल में वर्णित करते हैं और docker compose up से सबको एक साथ चला देते हैं।
हाँ। Docker Compose एक प्लगइन है जो Docker Engine के ऊपर चलता है—यह उसके बिना काम नहीं करेगा। किसी भी Compose इंस्टॉलेशन स्टेप से पहले docker --version चलाकर सुनिश्चित करें कि Docker इंस्टॉल है।
Docker Compose स्वयं ओपन सोर्स और निःशुल्क है। Docker Desktop, जो macOS और Windows पर Compose को बंडल करता है, व्यक्तिगत उपयोग और छोटी टीमों के लिए भी निःशुल्क है। बड़ी संस्थाओं को अपने उपयोग के आधार पर पेड Docker सब्सक्रिप्शन की ज़रूरत हो सकती है।
docker compose (बिना हाइफ़न) आधुनिक Docker इंस्टॉल के साथ बंडल v2 CLI प्लगइन है। docker-compose (हाइफ़न सहित) लिगेसी v1 स्टैंडअलोन बाइनरी है, जिसे Docker ने 2023 में डिप्रिकेट कर दिया। सिंटैक्स लगभग समान है, लेकिन v1 अब मेंटेन नहीं होता—आगे बढ़ते हुए आपको v2 का ही उपयोग करना चाहिए।
आमतौर पर इसका मतलब है कि या तो Compose प्लगइन सही से इंस्टॉल नहीं हुआ, या CLI प्लगइन डायरेक्टरी आपके PATH पर नहीं है। Linux पर, sudo apt-get install docker-compose-plugin से पक्का करें कि प्लगइन इंस्टॉल है। यदि यह इंस्टॉल है पर फिर भी नहीं मिल रहा, तो जाँचें कि $DOCKER_CONFIG/cli-plugins आपके PATH पर है और अपनी शेल कॉन्फ़िगरेशन रीलोड करें।
DataCamp के साथ Docker सीखें
कोर्स
कोर्स
कोर्स