Docker Compose एक शक्तिशाली और लोकप्रिय उपकरण है जिसका उपयोग अनुप्रयोगों के प्रबंधन और तैनाती के लिए किया जाता है Docker । Docker यह आपको एक ही प्रोजेक्ट के रूप में कई कंटेनरों को परिभाषित करने, कॉन्फ़िगर करने और चलाने की अनुमति देता है, एप्लिकेशन परिनियोजन को सरल बनाता है और विकास और उत्पादन वातावरण के बीच स्थिरता सुनिश्चित करता है।
नीचे कुछ अवधारणाएँ और उदाहरण दिए गए हैं Docker Compose:
Docker-compose.yml फ़ाइल का उपयोग करके प्रोजेक्ट को परिभाषित करें
फ़ाइल में docker-compose.yml
, आप अपने एप्लिकेशन के लिए आवश्यक सेवाओं को परिभाषित कर सकते हैं। उदाहरण के लिए, MySQL डेटाबेस के साथ PHP वेब एप्लिकेशन को तैनात करने के लिए, आप दो सेवाओं को निम्नानुसार परिभाषित कर सकते हैं:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
उपरोक्त कोड स्निपेट में, हम दो सेवाओं को परिभाषित करते हैं: web
और db
। सेवा web
PHP 7.4 का उपयोग करेगी image, Apache पोर्ट 80 पर सुनेगी, और ./app
होस्ट से निर्देशिका को /var/www/html
निर्देशिका में माउंट करेगी container । सेवा db
MySQL 5.7 का उपयोग करेगी image और डेटाबेस के लिए आवश्यक कुछ पर्यावरण चर सेट करेगी।
Docker Compose कमांड का उपयोग करना
एक बार जब आप फ़ाइल में प्रोजेक्ट को परिभाषित कर लेते हैं docker-compose.yml
, तो आप Docker Compose सेवाओं को प्रबंधित करने के लिए कमांड का उपयोग कर सकते हैं।
-
प्रोजेक्ट प्रारंभ करें:
docker-compose up
docker-compose.yml
यह कमांड फ़ाइल में परिभाषित सेवाओं के लिए कंटेनर शुरू करेगा । -
कंटेनरों को रोकें और हटाएँ:
docker-compose down
यह कमांड प्रोजेक्ट से संबंधित सभी कंटेनरों को रोकता है और हटा देता है।
-
चल रहे कंटेनरों की सूची बनाएं:
docker-compose ps
यह कमांड प्रोजेक्ट में कंटेनरों की स्थिति प्रदर्शित करेगा।
-
सेवा लॉग देखें:
docker-compose logs
यह कमांड प्रोजेक्ट में सेवाओं के लॉग दिखाता है।
पर्यावरण चर और अनुकूलन
Docker Compose आपको विकास और उत्पादन जैसे विभिन्न परिवेशों के लिए कॉन्फ़िगरेशन को अनुकूलित करने के लिए पर्यावरण चर का उपयोग करने की अनुमति देता है। आप docker-compose.yml
फ़ाइल में पर्यावरण चर का उपयोग कर सकते हैं और संबंधित .env
फ़ाइलों में उनके मान परिभाषित कर सकते हैं।
उदाहरण के लिए, यदि आप सेवा के पोर्ट के लिए एक पर्यावरण चर परिभाषित करना चाहते हैं web
, तो आप .env
फ़ाइल में इस तरह एक पंक्ति जोड़ सकते हैं:
WEB_PORT=8080
फिर, docker-compose.yml
फ़ाइल में, आप इस पर्यावरण चर का उपयोग इस प्रकार कर सकते हैं:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
कमांड चलाते समय docker-compose up
, web
सेवा पोर्ट 80 के बजाय पोर्ट 8080 पर सुनेगी।
Docker स्वाम के साथ एकीकरण
यदि आप अपने एप्लिकेशन को एकाधिक नोड्स के साथ वितरित वातावरण पर तैनात करना चाहते हैं, तो Docker Compose इसके साथ एकीकृत कर सकते हैं Docker Swarm । यह आपको एक Docker क्लस्टर में एकाधिक नोड्स में सेवाओं का प्रबंधन करने की अनुमति देता है।
इस एकीकरण का उपयोग करने के लिए, आपको किसी परिवेश में या कमांड चलाते समय केवल --orchestrate
या विकल्प जोड़ने की आवश्यकता है। --with-registry-auth
docker stack deploy
docker-compose up
Swarm
Docker Compose आसान और कुशल अनुप्रयोग विकास, परीक्षण और तैनाती के लिए एक उपयोगी उपकरण है। यह विकास और उत्पादन वातावरण के बीच अंतर को कम करता है, सॉफ्टवेयर विकास प्रक्रिया में स्थिरता सुनिश्चित करता है और विकास टीमों की उत्पादकता को बढ़ाता है।