Docker Compose से कंटेनर प्रबंधन
Docker Compose का उपयोग करके अपनी माइक्रोसर्विस के लिए कई Docker कंटेनर का संयोजन और प्रबंधन करें।
Docker Compose से कंटेनर प्रबंधन, CoddyKit पर Spring Boot 4 माइक्रोसर्विस और REST API का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Spring Boot 4 माइक्रोसर्विस और REST API सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring Boot 4 माइक्रोसर्विस और REST API पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
बहु-कंटेनर ऐप्लिकेशन क्यों?
माइक्रोसर्विस अक्सर कई घटकों पर निर्भर करती हैं। उदाहरण के लिए, Spring Boot ऐप्लिकेशन को डेटाबेस, संदेश कतार या किसी अन्य API सेवा की आवश्यकता हो सकती है।
आमतौर पर प्रत्येक घटक अपने Docker कंटेनर में चलता है। इन्हें अलग-अलग प्रबंधित करना जटिल हो सकता है, विशेषकर विकास के दौरान।
हम इन सभी को एक साथ कैसे शुरू करें, यह कैसे सुनिश्चित करें कि वे आपस में संचार कर सकें और उनके जीवनचक्र को कुशलता से कैसे प्रबंधित करें? यहीं Docker Compose उपयोगी होता है!
Docker Compose का परिचय
Docker Compose बहु-कंटेनर Docker ऐप्लिकेशन परिभाषित करने और चलाने का एक टूल है। प्रत्येक कंटेनर को अलग-अलग प्रबंधित करने के बजाय, आप सभी सेवाओं को एक आसानी से पढ़ी जाने वाली फ़ाइल में परिभाषित करते हैं।
इस परिभाषा फ़ाइल का नाम आम तौर पर docker-compose.yml होता है। इसमें YAML सिंटैक्स का उपयोग किया जाता है, जिसे मनुष्य आसानी से पढ़ सकते हैं और मशीन पार्स कर सकती है।
Compose आपको एक ही कमांड से पूरे ऐप्लिकेशन स्टैक को शुरू करने की सुविधा देकर आपके विकास कार्यप्रवाह को सरल बनाता है।
मूल docker-compose.yml संरचना
docker-compose.yml फ़ाइल की शुरुआत version से होती है। इसके बाद services अनुभाग आता है, जहाँ आप प्रत्येक कंटेनर को एक अलग सेवा के रूप में परिभाषित करते हैं।
प्रत्येक सेवा एक कंटेनर का प्रतिनिधित्व करती है और आप उसकी इमेज, खुले पोर्ट, पर्यावरण चर आदि निर्दिष्ट कर सकते हैं।
एक साधारण वेब ऐप के लिए न्यूनतम संरचना इस प्रकार है:
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'वेब सेवा परिभाषित करना
आइए, एक साधारण वेब सेवा परिभाषित करते हैं। हम आधिकारिक Nginx इमेज का उपयोग करेंगे, एक पोर्ट मैप करेंगे और उसे वैकल्पिक container_name देंगे।
image कुंजी उपयोग की जाने वाली Docker इमेज निर्दिष्ट करती है, जैसे nginx:latest। ports कुंजी होस्ट पोर्ट को कंटेनर पोर्ट से मैप करती है, जैसे होस्ट के पोर्ट 80 को कंटेनर के पोर्ट 80 से।
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'
container_name: my_nginx_appडेटाबेस सेवा जोड़ना
अधिकांश ऐप्लिकेशन को डेटाबेस की आवश्यकता होती है। आइए, अपनी docker-compose.yml फ़ाइल में PostgreSQL डेटाबेस सेवा जोड़ते हैं।
हम postgres:13 इमेज निर्दिष्ट करेंगे और प्रमाण-पत्रों के लिए आवश्यक पर्यावरण चर (POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD) सेट करेंगे।
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'
database:
image: 'postgres:13'
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: passwordसेवाओं को जोड़ना (नेटवर्किंग)
Docker Compose आपकी docker-compose.yml फ़ाइल में परिभाषित सभी सेवाओं के लिए अपने-आप एक डिफ़ॉल्ट नेटवर्क बनाता है।
सेवाएँ होस्टनाम के रूप में अपने सेवा-नामों का उपयोग करके एक-दूसरे से संचार कर सकती हैं। उदाहरण के लिए, आपका वेब ऐप होस्टनाम के रूप में database और निर्दिष्ट पोर्ट का उपयोग करके डेटाबेस से जुड़ सकता है, जैसे PostgreSQL के लिए 5432।
यह स्वचालित नेटवर्किंग सेवाओं के बीच संचार की व्यवस्था को बहुत सरल बना देती है।
वॉल्यूम के साथ डेटा स्थायित्व
कंटेनर अस्थायी होते हैं; कंटेनर हटाए जाने पर उनके अंदर का डेटा नष्ट हो जाता है। डेटाबेस के लिए यह एक गंभीर समस्या है!
Docker के वॉल्यूम Docker कंटेनरों द्वारा बनाए गए डेटा को स्थायी रूप से सुरक्षित रखने का तरीका देते हैं। हम डेटाबेस का डेटा कंटेनर के बाहर रखने के लिए नामित वॉल्यूम का उपयोग कर सकते हैं, जिससे यह कंटेनर के पुनः प्रारंभ होने या हटाए जाने के बाद भी सुरक्षित रहता है।
version: '3.8'
services:
database:
image: 'postgres:13'
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:कस्टम इमेज बनाना
अक्सर आपके पास अपना ऐप्लिकेशन कोड होगा, जैसे Spring Boot JAR, जिसे Docker इमेज में बनाया जाना आवश्यक होगा। Docker Compose यह काम भी संभाल सकता है।
image निर्दिष्ट करने के बजाय, आप build कुंजी का उपयोग करके उस निर्देशिका का पथ दे सकते हैं जिसमें आपका Dockerfile मौजूद है।
इसके बाद Compose सेवा शुरू करने से पहले आपकी कस्टम इमेज बनाएगा। यह इस प्रकार दिखता है:
# docker-compose.yml
version: '3.8'
services:
my-app:
build: ./my-app-dir
ports:
- '8080:8080'
# my-app-dir/Dockerfile
FROM openjdk:17-jdk-slim
COPY target/my-app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]Docker Compose की प्रमुख कमांड
आपकी docker-compose.yml तैयार हो जाने के बाद, आपके ऐप्लिकेशन स्टैक को प्रबंधित करने के लिए कुछ कमांड आवश्यक होंगी:
docker compose up: आवश्यकता होने पर सभी सेवाओं को बनाता और शुरू करता है। अलग मोड के लिए-dका उपयोग करें।docker compose down: कंटेनर और नेटवर्क रोककर हटाता है तथा वैकल्पिक रूप से वॉल्यूम भी हटाता है।docker compose ps: Compose फ़ाइल में परिभाषित सभी चल रही सेवाओं की सूची दिखाता है।docker compose logs: सेवाओं से प्राप्त लॉग आउटपुट दिखाता है।
याद रखें कि इन कमांड को उसी निर्देशिका में चलाएँ जहाँ आपकी docker-compose.yml फ़ाइल मौजूद है।
त्वरित जाँच: Compose की आवश्यक बातें
ऐसी docker-compose.yml फ़ाइल पर विचार करें जिसमें दो सेवाएँ परिभाषित हैं: web और db।
इन सेवाओं के संचार और डेटा संग्रहण के बारे में निम्नलिखित में से कौन-से कथन सामान्यतः TRUE हैं?
पुनरावलोकन: आपका बहु-कंटेनर पावरहाउस
बधाई हो! आपने सीखा कि Docker Compose बहु-कंटेनर ऐप्लिकेशन के प्रबंधन को कैसे सरल बनाता है।
अब आप वेब सेवाओं, डेटाबेस और कस्टम रूप से बनाई गई इमेज सहित अपने पूरे ऐप्लिकेशन स्टैक को एक ही docker-compose.yml फ़ाइल में परिभाषित कर सकते हैं।
यह टूल माइक्रोसर्विस के स्थानीय विकास और परीक्षण के लिए बेहद उपयोगी है। इसकी सहायता से आप केवल एक कमांड द्वारा अपना पूरा परिवेश शुरू कर सकते हैं। अभ्यास करते रहें!
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 24
- पाठ
- 93
अक्सर पूछे जाने वाले प्रश्न
क्या “Docker Compose से कंटेनर प्रबंधन” पाठ निःशुल्क है?
हाँ—“Docker Compose से कंटेनर प्रबंधन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Spring Boot 4 माइक्रोसर्विस और REST API पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Spring Boot 4 माइक्रोसर्विस और REST API पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“Docker Compose से कंटेनर प्रबंधन” में मैं क्या सीखूँगा?
Docker Compose का उपयोग करके अपनी माइक्रोसर्विस के लिए कई Docker कंटेनर का संयोजन और प्रबंधन करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring Boot 4 माइक्रोसर्विस और REST API का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Spring Boot 4 माइक्रोसर्विस और REST API शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring Boot 4 माइक्रोसर्विस और REST API शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।
“Docker Compose से कंटेनर प्रबंधन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Spring Boot 4 माइक्रोसर्विस और REST API पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Spring Boot 4 माइक्रोसर्विस और REST API पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Spring Boot एप्लिकेशन को Docker कंटेनर में पैक करना
- Docker Compose से कंटेनर प्रबंधन
- कंटेनर ऑर्केस्ट्रेशन की अवधारणाएँ