डॉकरफ़ाइल से डॉकर इंस्टेंस कैसे चलाएं?

Dokarafa Ila Se Dokara Instensa Kaise Cala Em



डॉकर एक लोकप्रिय खुला प्लेटफ़ॉर्म है जिसका उपयोग सार्वभौमिक रूप से कंटेनरीकृत वातावरण में अनुप्रयोगों के निर्माण, परीक्षण, तैनाती और शिपमेंट के लिए किया जाता है। डॉकर वर्चुअलाइजेशन के ओएस स्तर का उपयोग करता है और डॉकर कंटेनर, इमेज, नेटवर्क और डॉकर वॉल्यूम जैसे विभिन्न घटकों का समर्थन करता है।

डॉकर कंटेनर डॉकर प्लेटफ़ॉर्म के आवश्यक घटकों में से एक हैं जो डॉकर छवि का उपयोग करके प्रोग्राम, कॉन्फ़िगरेशन सेटिंग्स और निर्भरता को पैकेज करते हैं। डॉकर छवि एक कंटेनर का एक सरल टेम्पलेट या स्नैपशॉट है जो किसी एप्लिकेशन को कंटेनरीकृत करने के तरीके पर कंटेनर का मार्गदर्शन करता है। ये छवियां अधिकतर आधिकारिक डॉकर हब रजिस्ट्री पर उपलब्ध हैं। उपयोगकर्ता Dockerfile का उपयोग करके इन छवियों को प्रोजेक्ट आवश्यकताओं के अनुसार भी डिज़ाइन कर सकते हैं।

यह ब्लॉग समझाएगा:







डॉकरफाइल क्या है?

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



डॉकरफाइल के मूल कमांड

Dockerfile के कुछ बुनियादी कमांड जिनका उपयोग कंटेनर के मूल स्नैपशॉट को परिभाषित करने के लिए किया जाता है, नीचे सारणीबद्ध रूप में सूचीबद्ध हैं:



आदेश विवरण
से से 'कमांड का उपयोग कंटेनर टेम्पलेट के लिए आधार छवि को परिभाषित करने के लिए किया जाता है। ये चित्र आधिकारिक डॉकर रजिस्ट्री डॉकर हब से खींचे गए हैं।
मेंटेनर मेंटेनर ” कमांड लेखक (नाम और ईमेल) की जानकारी को परिभाषित करता है जो डॉकर छवि बना रहा है।
वर्कडिर यह कंटेनरीकृत एप्लिकेशन की कार्यशील निर्देशिका को निर्दिष्ट करता है।
कॉपी होस्ट सिस्टम से स्रोत और कॉन्फ़िगरेशन फ़ाइलों को डॉकर कंटेनर के निर्दिष्ट पथ पर कॉपी करने के लिए उपयोग किया जाता है।
जोड़ना जोड़ना 'कमांड' के समान है कॉपी 'कमांड लेकिन यह URL से कंटेनर पथ जैसे GitHub रिपॉजिटरी से कंटेनर पथ में फ़ाइल जोड़ने के लिए दूरस्थ URL का भी समर्थन करता है।
दौड़ना दौड़ना ' का उपयोग कंटेनर में कमांड चलाने के लिए किया जाता है। Dockerfile में, इसका उपयोग ज्यादातर कंटेनर के अंदर अतिरिक्त निर्भरता को प्रबंधित और स्थापित करने के लिए किया जाता है।
अध्यक्ष एवं प्रबंध निदेशक अध्यक्ष एवं प्रबंध निदेशक डॉकर कंटेनरों के डिफ़ॉल्ट बिंदुओं को परिभाषित करता है। यह मूल रूप से 'के निष्पादनयोग्य और डिफ़ॉल्ट मापदंडों को परिभाषित करता है' प्रवेश बिंदु ”।
प्रवेश बिंदु प्रवेश बिंदु 'कमांड का उपयोग डॉकर कंटेनर के निष्पादन योग्य को सेट करने के लिए भी किया जाता है। यह मूल रूप से डिफ़ॉल्ट एप्लिकेशन सेट करता है जो हर बार कंटेनर में उपयोग किए जाते हैं। ENTRYPOINT कमांड का उपयोग Dockerfile में एक बार भी किया जाता है।
उपयोगकर्ता इस कमांड का उपयोग कंटेनर में कमांड निष्पादित करने के लिए यूआईडी (उपयोगकर्ता नाम) सेट करने के लिए किया जाता है
आयतन आयतन 'कमांड का उपयोग बाहरी वॉल्यूम (फ़ाइल सिस्टम) को एक कंटेनर से बांधने या माउंट करने के लिए किया जाता है।
ईएनवी ईएनवी 'कमांड का उपयोग कंटेनर के पर्यावरण चर को सेट करने के लिए किया जाता है।
आर्ग आर्ग ' का उपयोग कंटेनर के अंदर तर्कों को पारित करने के लिए किया जाता है।
अनावृत करना अनावृत करना 'कमांड उन एक्सपोज़िंग पोर्ट को निर्दिष्ट करता है जिन पर कंटेनर निष्पादित किया जाएगा।
निर्माण पर यह आधार छवि से निर्देश पढ़ता है लेकिन डाउनस्ट्रीम छवि के माध्यम से इन निर्देशों को ट्रिगर करता है।
लेबल लेबल ” का उपयोग कंटेनर स्नैपशॉट के मेटाडेटा को निर्दिष्ट करने के लिए किया जाता है।

Docker में Dockerfile से Docker इंस्टेंस कैसे चलाएं?

Dockerfile का उपयोग करके Docker इंस्टेंस या कंटेनर चलाने के लिए, सबसे पहले, एक Dockerfile बनाएं। फिर, Dockerfile का उपयोग करके कंटेनर के लिए मूल स्नैपशॉट बनाएं। उसके बाद, डॉकर इंस्टेंस शुरू करने के लिए स्नैपशॉट चलाएँ।





चित्रण के लिए नीचे दिए गए निर्देशों का पालन करें।

चरण 1: एक डॉकरफ़ाइल बनाएं

सबसे पहले, एक Dockerfile बनाएं। याद रखें कि Dockerfile में कोई फ़ाइल एक्सटेंशन नहीं है। उसके बाद, निम्न कमांड को फ़ाइल में पेस्ट करें:



गोलांग से: 1.8

वर्कडिर / जाना / स्रोत / अनुप्रयोग

कॉपी करें main.go .

भागो निर्माण करो -ओ वेब सर्वर ।

अनावृत करना 8080 : 8080

प्रवेश बिंदु [ '।/वेब सर्वर' ]

चरण 2: प्रोग्राम फ़ाइल बनाएं

इसके बाद, 'नाम से एक नई फ़ाइल बनाएं मुख्य.जाओ जिसमें सरल गोलांग कार्यक्रम शामिल है। इस प्रयोजन के लिए, निम्नलिखित प्रोग्राम को फ़ाइल में पेस्ट करें:

पैकेज मुख्य
आयात (
'एफएमटी'
'लकड़ी का लट्ठा'
'नेट/http'
)

फंक हैंडलर ( में http.ResponseWriter, आर * http.अनुरोध ) {
fmt.Fprintf ( में , 'हैलो! LinuxHint ट्यूटोरियल में आपका स्वागत है' )
}
मुख्य कार्य ( ) {
http.HandleFunc ( '/' , हैंडलर )
लॉग.घातक ( http.सुनेंऔर परोसें ( '0.0.0.0:8080' , शून्य ) )
}

चरण 3: कंटेनर स्नैपशॉट जेनरेट करें

अब, 'का उपयोग करके कंटेनर का डॉकर स्नैपशॉट बनाएं' docker build -t -f ”:

डोकर निर्माण -टी जाओ-img -एफ डॉकरफ़ाइल।

उपरोक्त आदेश में, ' -टी 'विकल्प छवि का नाम या टैग सेट करता है,' -एफ 'विकल्प Dockerfile के लिए पथ निर्दिष्ट करता है जिससे Docker इंजन को बिल्ड संदर्भ को पढ़ने की आवश्यकता होती है:

यह जांचने के लिए कि छवि सफलतापूर्वक बनाई गई है या नहीं, ' चलाएँ डोकर छवियां <छवि-नाम> ' आज्ञा:

डॉकर छवियां गो-आईएमजी

आउटपुट से पता चलता है कि हमने Dockerfile से कंटेनर का स्नैपशॉट सफलतापूर्वक बना लिया है:

चरण 4: कंटेनर में आग लगाने के लिए स्नैपशॉट चलाएँ

अब, उपरोक्त चरण में बनाए गए कंटेनर के स्नैपशॉट को निष्पादित करके डॉकर कंटेनर में डॉकर का उदाहरण प्रारंभ करें:

डॉकर रन -पी 8080 : 8080 --नाम जारी रखें -डी जाओ-img

उपरोक्त आदेश में, ' -पी ' विकल्प कंटेनर को ' पर चलाता है 8080 ' पत्तन, ' -नाम 'कंटेनर का नाम सेट करता है और' -डी 'विकल्प कंटेनर को अलग मोड (पृष्ठभूमि सेवा) में चलाता है:

यह सत्यापित करने के लिए कि कंटेनर निष्पादित हो रहा है या नहीं, 'का उपयोग करके चल रहे कंटेनरों को सूचीबद्ध करें' डोकर पी.एस ' आज्ञा:

डाक में काम करनेवाला मज़दूर पी.एस.

अब, “पर जाएँ” http://localhost:8080 ” और सत्यापित करें कि एप्लिकेशन एक्सपोजिंग पोर्ट पर चल रहा है या नहीं:

उपरोक्त आउटपुट इंगित करता है कि हमने Dockerfile का उपयोग करके Docker इंस्टेंस को प्रभावी ढंग से शुरू कर दिया है।

डॉकर कंपोज़ में डॉकरफ़ाइल से एक इंस्टेंस कैसे चलाएं?

डॉकर कंपोज़ डॉकर प्लेटफ़ॉर्म का एक और प्रमुख प्लगइन है जो हमें एक समय में विभिन्न कंटेनरों में कई इंस्टेंस चलाने में सक्षम बनाता है। उपयोगकर्ता Docker कंपोज़ प्लगइन का उपयोग करके Dockerfile से Docker इंस्टेंस भी चला सकते हैं। उदाहरण के लिए, दिए गए चरणों का पालन करें।

चरण 1: डॉकरफ़ाइल बनाएं

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

गोलांग से: 1.8

वर्कडिर / जाना / स्रोत / अनुप्रयोग

कॉपी करें main.go .

भागो निर्माण करो -ओ वेब सर्वर ।

अनावृत करना 8080 : 8080

प्रवेश बिंदु [ '।/वेब सर्वर' ]

चरण 2: docker-compose.yml फ़ाइल बनाएं

इसके बाद, एक ' बनाएं docker-compose.yml ” फ़ाइल करें और निम्नलिखित कुंजी जोड़ियों को फ़ाइल में कॉपी करें:

संस्करण: '3'

सेवाएँ:

वेब:
निर्माण: ।
बंदरगाह:
- 8080 : 8080

उपर्युक्त स्निप्ड में:

  • सेवा ' का उपयोग उन कंपोज़िंग सेवाओं को निर्दिष्ट करने के लिए किया जाता है जिन्हें एक अलग कंटेनर में निष्पादित किया जाएगा। उदाहरण के लिए, हमने केवल एक सेवा कॉन्फ़िगर की है ' वेब कोड को साफ और सरल रखने के लिए।
  • निर्माण डॉकरफ़ाइल से बिल्ड संदर्भ को पढ़ने के लिए कुंजी जोड़ी का उपयोग किया जाता है। यहां, डॉकर डॉकरफाइल से निर्देशों को पढ़ेगा और उसके अनुसार कंटेनर का निर्माण करेगा।
  • बंदरगाहों कुंजी एक्सपोज़िंग पोर्ट को परिभाषित करती है जिस पर कंटेनर निष्पादित किया जाएगा।

चरण 3: डॉकर इंस्टेंस प्रारंभ करें

अब, 'का उपयोग करके डॉकर इंस्टेंस को एक कंटेनर में चलाएं डोकर-रचना करें ' आज्ञा:

डोकर-रचना करें -डी

सत्यापन के लिए, 'का उपयोग करके चल रहे कंपोज़ कंटेनरों की सूची जांचें' डोकर-लिखें पी.एस ' आज्ञा:

docker-compose पी.एस.

आउटपुट से पता चलता है कि ' वेब 'सेवा सफलतापूर्वक निष्पादित हो रही है' गोलांगएप-वेब-1 'कंटेनर:

कंपोज़ सेवा के एक्सपोज़िंग पोर्ट पर जाएँ और सत्यापित करें कि प्रोग्राम निष्पादित हो रहा है या नहीं। नीचे दिए गए परिणाम से पता चलता है कि हमने Docker कंपोज़ का उपयोग करके Dockerfile से Docker इंस्टेंस को सफलतापूर्वक शुरू कर दिया है:

यह सब एक Dockerfile से एक docker इंस्टेंस चलाने के बारे में है।

निष्कर्ष

Dockerfile से किसी कंटेनर में Docker इंस्टेंस को निष्पादित करने के लिए, पहले Dockerfile बनाएं। डॉकर कंटेनर की छवि या टेम्पलेट बनाने के लिए फ़ाइल के अंदर कमांड जोड़ें। फिर, 'का उपयोग करके कंटेनर छवि या स्नैपशॉट बनाएं' docker build -t -f ' आज्ञा। अब, डॉकर इंस्टेंस शुरू करने के लिए कंटेनर छवि को निष्पादित करें। उपयोगकर्ता Dockerfile से Docker इंस्टेंस को चलाने के लिए Docker कंपोज़ का भी उपयोग कर सकते हैं। इस पोस्ट में बताया गया है कि Dockerfile से Docker इंस्टेंस कैसे चलाया जाता है।