डॉकर अमान्य संदर्भ प्रारूप

Dokara Aman Ya Sandarbha Prarupa



डॉकर छवियों या डॉकरफाइल के साथ काम करते समय, आपको 'अमान्य संदर्भ प्रारूप' त्रुटि का सामना करना पड़ सकता है।

इस ट्यूटोरियल में, हम सीखेंगे कि इस त्रुटि का क्या अर्थ है, यह क्यों होती है, और आप इसे अपने डॉकर उपयोग में कैसे हल कर सकते हैं।

डॉकर में एक छवि संदर्भ क्या है?

डॉकर में, एक छवि संदर्भ डॉकर रजिस्ट्री (डॉकर हब) या स्थानीय डॉकर होस्ट के भीतर एक विशिष्ट डॉकर छवि को पहचानने और ढूंढने की एक विधि को संदर्भित करता है।







डिफ़ॉल्ट रूप से, छवि संदर्भ में दो मुख्य घटक शामिल होते हैं:



रिपॉजिटरी - पहला भाग लक्ष्य छवि के लिए रिपॉजिटरी को परिभाषित करता है। यह डॉकर छवि के लिए शीर्ष-स्तरीय संगठनात्मक इकाई है, जिसका उपयोग मुख्य रूप से संगठन या छवि को प्रबंधित करने वाले व्यक्ति का प्रतिनिधित्व करने के लिए किया जाता है। उदाहरण के लिए, आप Microsoft/SQL-server नाम की एक छवि पा सकते हैं। इस मामले में, पहला भाग छवि बनाए रखने वाले संगठन का प्रतिनिधित्व करता है।



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





Dockerfile या docker कमांड में छवि निर्दिष्ट करते समय, छवि नाम को निम्नलिखित नामकरण नियमों का पालन करना चाहिए:

  • रिपॉजिटरी का नाम लोअरकेस होना चाहिए।
  • रिपॉजिटरी में रजिस्ट्री के भीतर संगठन या समूह को इंगित करने के लिए अक्षर, संख्याएं, हाइफ़न (-), अंडरस्कोर (_), या फॉरवर्ड स्लैश (/) भी हो सकते हैं।
  • छवि नाम में कोई रिक्त स्थान वर्ण (रिक्त स्थान या टैब) नहीं होना चाहिए।

डॉकर अमान्य संदर्भ प्रारूप

जब आपको Dockerfile या Docker कमांड चलाते समय 'अमान्य संदर्भ प्रारूप' त्रुटि मिलती है, तो इसका मतलब है कि आपका नाम उपरोक्त नियमों का पालन नहीं करता है।



एक उदाहरण इस प्रकार दिखाया गया है:

$ डॉकर ने बिजीबॉक्स को खींच लिया

यदि हम उपरोक्त कमांड चलाते हैं, तो यह दिखाए गए अनुसार एक त्रुटि लौटाएगा:

अमान्य संदर्भ प्रारूप: रिपॉजिटरी नाम लोअरकेस होना चाहिए

इस मामले में, यह हमें बताता है कि छवि नाम प्रारूप गलत है, क्योंकि छवि नाम हमेशा लोअरकेस होना चाहिए।

डॉकर अमान्य संदर्भ प्रारूप त्रुटि को कैसे ठीक करें

जैसा कि आप अनुमान लगा सकते हैं, पहली विधि यह सुनिश्चित करना है कि छवि संदर्भ प्रारूप सही है। इसमें यह सत्यापित करना शामिल है कि छवि नाम मान्य है।

उदाहरण के लिए, उपरोक्त आदेश में, हम छवि का नाम निर्दिष्ट करके त्रुटि को ठीक कर सकते हैं:

$ सूडो डॉकर पुल बिजीबॉक्स: नवीनतम

इस स्थिति में, कमांड को बिजीबॉक्स छवि का नवीनतम संस्करण खींचना चाहिए।

विधि 2 - लंबे डॉकर कमांड को विभाजित करें

कुछ अन्य मामलों में, लंबी डॉकर कमांड चलाते समय आपको 'अमान्य संदर्भ प्रारूप' त्रुटि का सामना करना पड़ सकता है।

ऐसे मामले में, कमांड को कई लाइनों में विभाजित करना अच्छा अभ्यास है। कमांड विभाजन की विधि आपके शेल और सिस्टम पर निर्भर करेगी।

  • हालाँकि, बैश शेल के लिए, मल्टीलाइन एस्केप कैरेक्टर या बैकस्लैश (\) का उपयोग करें।
  • पॉवरशेल के लिए, आप बैकटिक कैरेक्टर (`) का उपयोग कर सकते हैं।
  • अंत में, यदि आप कमांड प्रॉम्प्ट पर हैं, तो आप ^ के रूप में कैरेट वर्ण का उपयोग कर सकते हैं

उदाहरण के लिए, बैश पर, कमांड को इस प्रकार चलाएँ:

$ सूडो डॉकर बिल्ड\

-यह \

बिजीबॉक्स \

PowerShell पर, आप दिखाए गए अनुसार कमांड चला सकते हैं:

$ सूडो डोकर निर्माण `

-यह `

बिजीबॉक्स `

और अंत में, यदि आप कमांड प्रॉम्प्ट पर हैं, तो दिखाए गए अनुसार कमांड का उपयोग करें:

$ सूडो डोकर निर्माण ^

-यह ^

बिजीबॉक्स ^

विधि 3 - ${pwd} और $(pwd) पथ

इस त्रुटि का एक अन्य सामान्य कारण ${pwd} वेरिएबल का उपयोग करना है। यह उस शेल के प्रकार पर निर्भर करते हुए विरोध का कारण बन सकता है जिस पर आप उक्त कमांड निष्पादित कर रहे हैं।

पॉवरशेल के मामले में, आपको $(pwd) के बजाय ${pwd} वेरिएबल का उपयोग करना होगा।

जैसा कि आप अनुमान लगा सकते हैं, बैश के मामले में, $(pwd) के रूप में घुंघराले-ब्रेस्ड इनपुट के बजाय कोष्ठक प्रारूप का उपयोग करें।

निष्कर्ष

इस पोस्ट में Dockerfile या docker कमांड के साथ काम करते समय 'अमान्य संदर्भ प्रारूप' के प्रमुख कारणों पर चर्चा की गई। हमने तीन मुख्य तरीकों का भी पता लगाया जिनका उपयोग आप इस समस्या को ठीक करने के लिए कर सकते हैं।