संपादित 5 महीने पहले द्वारा ExtremeHow संपादकीय टीम
डॉकरकंटेनरएप्लिकेशन परिनियोजनडॉकर कंपोजआर्केस्ट्रेशनकॉन्फ़िगरेशनस्क्रिप्टिंगदेवऑप्सकमांड लाइनबहु-कंटेनर
अनुवाद अपडेट किया गया 5 महीने पहले
डॉकर कंपोज एक उपकरण है जिसका उपयोग मल्टी-कंटेनर डॉकर अनुप्रयोगों को परिभाषित और चलाने के लिए किया जाता है। डॉकर कंपोज के साथ, आप अपने एप्लिकेशन की सेवाओं को कॉन्फ़िगर करने के लिए एक YAML फ़ाइल का उपयोग कर सकते हैं और फिर आप एक आदेश का उपयोग करके अपनी कॉन्फ़िगरेशन से सभी सेवाओं को बना और शुरू कर सकते हैं। यह कई लिंक्ड सेवाओं वाले जटिल अनुप्रयोगों के साथ काम करने के लिए बेहद उपयोगी है। इस गाइड का उद्देश्य लिनक्स पर डॉकर कंपोज का उपयोग करने को बहुत विस्तृत तरीके से समझाना है।
डॉकर कंपोज में प्रवेश करने से पहले, यह समझना महत्वपूर्ण है कि डॉकर क्या है। डॉकर एक प्लेटफ़ॉर्म है जो डेवलपर्स और सिस्टम प्रशासकों को एप्लिकेशन को कंटेनरों में पैकेज करने की अनुमति देता है — यह मानकीकृत निष्पादन योग्य घटक होते हैं जो एप्लिकेशन के स्रोत कोड को ऑपरेटिंग सिस्टम लाइब्रेरीज़ और निर्भरताओं के साथ मिलाते हैं जो किसी भी पर्यावरण में उस कोड को चलाने के लिए आवश्यक होती हैं।
डॉकर कंपोज इसे एक कदम आगे ले जाता है, जिससे आप कई डॉकर कंटेनरों को एक ही सेवा के रूप में कॉन्फ़िगर और शुरू कर सकते हैं। इसका अर्थ है कि आप अपने एप्लिकेशन की सभी निर्भरताओं को एक सरल फाइल docker-compose.yml
का उपयोग करके प्रबंधित कर सकते हैं। इस फ़ाइल में यह जानकारी होती है कि किस छवि को चलाना है, किस पोर्ट्स को एक्सपोज़ करना है, वॉल्यूम मैपिंग्स और अधिक।
डॉकर कंपोज का उपयोग करने का पहला कदम यह है कि आपके लिनक्स मशीन पर डॉकर स्थापित और चल रहा हो। अधिकांश आधुनिक लिनक्स वितरणों में डॉकर उनके आधिकारिक रिपॉजिटरीज़ में होता है, लेकिन आप नवीनतम संस्करण प्राप्त करने के लिए इसे डॉकर के आधिकारिक रिपॉजिटरी से भी इंस्टॉल कर सकते हैं।
# एचटीटीपीएस पर एक रिपॉजिटरी का उपयोग करने के लिए एपीटी पैकेज सूचकांक को अपडेट करें और पैकेजों को इंस्टॉल करें
sudo apt-get update -y
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common -y
# डॉकर की आधिकारिक जीपीजी कुंजी जोड़ें और सत्यापित करें
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# स्थिर रिपॉजिटरी सेट करें
sudo add-apt-repository \
"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# डॉकर सीई इंस्टॉल करें
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
# डॉकर स्थापना की सत्यापन करें
sudo docker run hello-world
एक बार जब डॉकर स्थापित हो जाए, तो अगला कदम डॉकर कंपोज को इंस्टॉल करना होता है। डॉकर के विपरीत, कंपोज एक अलग उपकरण है। आप डॉकर कंपोज को GitHub रिलीज़ पेज से डाउनलोड कर सकते हैं।
# डॉकर कंपोज का वर्तमान स्थिर रिलीज़ डाउनलोड करें
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# बाइनरी पर निष्पादन योग्य अनुमतियाँ लागू करें
sudo chmod +x /usr/local/bin/docker-compose
# यह सुनिश्चित करें कि डॉकर कंपोज सही तरीके से इंस्टॉल हुआ है
docker-compose --version
docker-compose.yml
फ़ाइल डॉकर कंपोज का मुख्य भाग है। यहाँ आप अपनी सभी सेवाओं (मूल रूप से, आपके एप्लिकेशन के कंटेनर) को और उनके एक-दूसरे के साथ अंतःक्रियाओं को परिभाषित करते हैं। docker-compose.yml
फ़ाइल की संरचना काफी सीधी होती है। यह आम तौर पर कंपोज के संस्करण का परिभाषित करके शुरू होती है जिसका उपयोग किया जा रहा है, इसके बाद सेवाओं की सूची आती है।
यहाँ एक बुनियादी docker-compose.yml
फ़ाइल का उदाहरण है:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
database:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
उपरोक्त उदाहरण में, कंपोज फ़ाइल संस्करण 3.8 का उपयोग कर रही है। यह दो सेवाओं को परिभाषित करती है, web
और database
। web
सेवा Nginx छवि का उपयोग करती है और कंटेनर के पोर्ट 80 को होस्ट के पोर्ट 80 पर मैप करती है। database
सेवा MySQL छवि का उपयोग करती है और निर्दिष्ट मूल पासवर्ड का उपयोग करती है।
एक बार जब आप अपने docker-compose.yml
फ़ाइल को कॉन्फ़िगर कर लें, तो आपका मल्टी-सेवा एप्लिकेशन एक सरल कमांड से चल सकता है। उस निर्देशिका में नेविगेट करें जिसमें docker-compose.yml
फाइल है और चलाएं:
docker-compose up
docker-compose up
कमांड वर्तमान निर्देशिका में docker-compose.yml
फ़ाइल की खोज करता है, आवश्यक छवियों को बनाता है यदि वे स्थानीय रूप से उपलब्ध नहीं हैं, और निर्दिष्ट सेवाओं को शुरू करता है।
यदि आप एप्लिकेशन को बैकग्राउंड में (अलग मोड में) चलाना चाहते हैं, तो आप -d
विकल्प का उपयोग कर सकते हैं:
docker-compose up -d
डॉकर कंपोज कई कमांड प्रदान करता है जो आपके वातावरण को प्रबंधित करने में मदद करते हैं:
docker-compose ps
: कंपोज फ़ाइल में परिभाषित सेवाओं की स्थिति को प्रदर्शित करता है।docker-compose start
: सेवा के लिए एक मौजूदा कंटेनर शुरू करता है।docker-compose stop
: कंटेनरों को चलने से रोकता है, बिना उन्हें हटाए।docker-compose down
: docker-compose.yml
फ़ाइल में परिभाषित सभी कंटेनरों को रोकता और हटाता है।docker-compose logs
: सेवा के लिए लॉग को प्राप्त करता है।डॉकर कंपोज आपको अपनी docker-compose.yml
फ़ाइल में वॉल्यूम्स और नेटवर्क्स को परिभाषित करने की भी अनुमति देता है। वॉल्यूम डेटा को सुरक्षित रखने के लिए उपयोग किए जाते हैं और नेटवर्क्स सेवाओं के बीच संचार में मदद करते हैं।
एक वॉल्यूम को परिभाषित करने के लिए, सेवाओं अनुभाग के अंतर्गत निम्नलिखित जोड़ें:
services:
database:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
यह विन्यास एक नामित वॉल्यूम db_data
बनाता है और इसे डेटाबेस सेवा कंटेनर के अंदर /var/lib/mysql
पर माउंट करता है, जो MySQL डेटा संग्रहीत करता है।
नेटवर्क को भी कस्टमाइज़ किया जा सकता है:
services:
frontend:
image: node:14
networks:
- frontend-network
backend:
image: node:14
networks:
- backend-network
networks:
frontend-network:
backend-network:
डॉकर कंपोज की एक शक्तिशाली विशेषता सेवाओं का स्केलिंग करने की क्षमता है। यह विकास परिवेश में अधिक यथार्थवादी परिस्थितियों का अनुकरण करने के लिए विशेष रूप से उपयोगी है। आप --scale
विकल्प के साथ एक सेवा को स्केल कर सकते हैं।
docker-compose up --scale web=3
ऊपर का कमांड web
सेवा की तीन इंस्टेंस शुरू करेगा।
आप docker-compose exec
का उपयोग कर अपनी चल रही सेवाओं के अंदर मनमानी कमांड चला सकते हैं:
docker-compose exec web bash
यह कमांड चल रहे web
सेवा कंटेनर के अंदर एक bash शेल खोलता है।
डिफ़ॉल्ट रूप से, डॉकर कंपोज आपके सेवाओं के लिए एक डिफ़ॉल्ट नेटवर्क बनाता है। हालांकि, आप सभी सेवाओं को एक ही नेटवर्क से जोड़ सकते हैं ताकि सेवाएं स्वतंत्र रूप से संचार कर सकें।
version: '3.8'
services:
web:
image: nginx:latest
networks:
- custom-network
database:
image: mysql:5.7
networks:
- custom-network
networks:
custom-network:
web
और database
सेवाएं दोनों custom-network
से जुड़ी होती हैं, जिससे वे स्वतंत्र रूप से संचार कर सकती हैं।
डॉकर कंपोज एक मजबूत उपकरण है जो मल्टी-कंटेनर डॉकर अनुप्रयोगों के प्रबंधन की प्रक्रिया को सरल करता है। docker-compose.yml
फ़ाइल में सेवाओं को परिभाषित करके, आप जल्दी से अपने एप्लिकेशन के स्टैक को लागू और प्रबंधित कर सकते हैं। डॉकर कंपोज का प्रभावी उपयोग करने की कुंजी यह है कि docker-compose.yml
फ़ाइल के कॉन्फ़िगरेशन विकल्पों को समझें, जिनमें सेवाएं, वॉल्यूम्स और नेटवर्क्स शामिल हैं।
यह व्यापक गाइड दर्शाता है कि लिनक्स पर डॉकर और डॉकर कंपोज कैसे सेट करें, एक कंपोज फ़ाइल कैसे बनाएं, और अपने एप्लिकेशन को कैसे प्रबंधित करें। इस ज्ञान के साथ, आप जटिल लिनक्स आधारित वातावरणों को संभालने के लिए डॉकर कंपोज का प्रभावी रूप से उपयोग करने में सक्षम होंगे। अपने स्वयं के अनुप्रयोगों के साथ अभ्यास करें ताकि डॉकर कंपोज कॉन्फ़िगरेशन को अनुकूलित करने के लिए और अधिक परिचित और विशेष आवश्यकताओं को पूरा करने के लिए अधिक सक्षम हो सकें।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं