तपाईंको ल्यापटप कर्पोरेट VPN मा छ, curl आन्तरिक रजिस्ट्रीमा पुग्छ, तैपनि docker pull EOF सँगै असफल हुन्छ। यो संयोजन विरोधाभास होइन। तपाईंले टाइप गरेको आदेश तपाईंको शेलमा चल्छ, तर स्थानान्तरण Docker CLI ले छानेको डेमनभित्र चल्छ, र त्यो डेमन पूर्ण रूपमा अर्को होस्टमा हुन सक्छ। उसैको नेटवर्क मार्ग काम गर्नुपर्छ, र उसैका प्रोक्सी सेटिङहरू लागू हुन्छन्।

मार्ग होइन, इन्जिन पहिचान गरेर सुरु गर्नुहोस्

docker context show र docker version चलाउनुहोस्। संस्करणको आउटपुटले क्लाइन्ट खण्ड र सर्भर खण्ड छाप्छ, र सर्भर ब्लकले कसले जवाफ दियो भनेर बताउँछ: स्थानीय नेटिभ इन्जिन, Docker Desktop भर्चुअल मेसिन, वा टाढाको मेसिनमा रहेको डेमन। निश्चित हुन चाहनुहुन्छ भने docker context inspect छानिएको सन्दर्भको अन्तिम बिन्दु देखाउनेछ, र यी आदेशहरूमध्ये कुनैले पनि केही बदल्दैन।

DOCKER_HOST जस्तो वातावरण चरले CLI लाई तपाईंले अनुमान गर्नुभएको भन्दा फरक इन्जिनतर्फ चुपचाप निर्देश गर्न सक्छ, र ल्यापटप VPN मा देखिए पनि पुल अन्तै जाने यही सामान्य व्याख्या हो।

डेमनको आफ्नै नेटवर्क पहिचान हुन्छ

टाढाको इन्जिनलाई निजी रजिस्ट्रीसम्म आफ्नै स्वीकृत मार्ग चाहिन्छ। तपाईंको ल्यापटपको VPN क्लाइन्ट जोड्दा त्यो ल्यापटपलाई मार्ग मिल्छ; यसले प्रयोगशाला वा क्लाउड सबनेटमा बसेको डेमनलाई त्यही निजी ठेगाना दिँदैन। इन्जिन Docker Desktop भए, पुल त्यसको भर्चुअल मेसिनभित्र हुन्छ, जसको तपाईंको शेलको वातावरणबाट अलग आफ्नै नेटवर्किङ र प्रोक्सी कन्फिगरेसन छ।

त्यसैले होस्टमा सफल curl होस्टको बारेमा मात्र प्रमाण हो, त्यसभन्दा बढी केही होइन।

रजिस्ट्रीसँग कुन आदानप्रदान सकियो पत्ता लगाउनुहोस्

इमेज पुल एउटा क्रम हो: प्रमाणीकरण, म्यानिफेस्ट प्राप्ति, र त्यसपछि प्रायः वस्तु भण्डारण वा CDN अन्तिम बिन्दुमा रिडाइरेक्ट हुने blob स्थानान्तरण। सफल docker login ले पहिलो चरण मात्र प्रमाणित गर्छ, र रिडाइरेक्ट भएको blob होस्ट डेमनको नेटवर्कबाट पुग्न नसकिने हुँदा पनि टोकन पूर्ण रूपमा वैध हुन सक्छ। केही बदल्नुअघि सटीक समय, इमेज सन्दर्भ र डेमन वा क्लाइन्ट लगको पहिलो उपयोगी घटना लेख्नुहोस्।

EOF एक्लैले कुनै कारण बताउँदैन। यो काटिएको जडान, स्ट्रिम छोडिदिने प्रोक्सी, समय समाप्ति वा MTU समस्या हुन सक्छ, र समय-चिह्नित घटना बिना तिनीहरूबीच अनुमान गर्नु नै मानिसहरू स्वस्थ इन्जिन पुनर्निर्माण गर्न पुग्ने बाटो हो। क्लाइन्ट आउटपुटको बाइट अफसेटलाई डेटा मान्नुहोस्, किनकि हरेक पटक एउटै आकारमा रोकिने स्थानान्तरण कहिल्यै सुरु नहुनेभन्दा पूर्ण रूपमा फरक प्राणी हो। दुवै नतिजा लेख्नुहोस् र प्रयासहरूबीच तिनको तुलना गर्नुहोस्।

स्थानान्तरण गर्ने घटक कन्फिगर गर्नुहोस्

नेटिभ Linux इन्जिनका लागि प्रोक्सी शेलमा होइन, सेवा वातावरणमा पर्छ। /etc/systemd/system/docker.service.d/ मुनि HTTP_PROXY, HTTPS_PROXY र NO_PROXY प्रविष्टिहरू भएको drop-in फाइल, त्यसपछि systemctl daemon-reload र पुनः सुरु, यही अभिलेखित व्यवस्था हो। Docker Desktop ले तीहरूकै मान आफ्नै सेटिङमार्फत दिन्छ, र शेल प्रोफाइल सम्पादन गर्दा तीमध्ये कुनै पनि प्रभावित हुँदैन।

रजिस्ट्रीमा सिधै VPN बाट पुग्नुपर्ने भए डेमनलाई रिजोल्भर, मार्ग र जानाजान गरिएको प्रोक्सी बहिष्कार चाहिन्छ, बहिष्कार मात्र होइन। NO_PROXY मिलान प्रत्येक घटकका लागि स्ट्रिङ तुलना हो, र अन्तर्निहित मार्ग नभएको छुटले प्रोक्सी समस्याजस्तो देखिने असफलता उत्पन्न गर्छ।

जब उद्यम TLS निरीक्षण स्वीकृत मार्गमा हुन्छ, यसको प्रमाणित जरा इन्जिन वा Desktop कार्यप्रवाहमार्फत स्थापना गर्नुहोस्। रजिस्ट्रीलाई insecure-registries मा थप्नु मान्यता जाँच बन्द गर्ने फरक परिवर्तन हो, र त्यो ट्रस्ट स्टोर कन्फिगरेसन होइन।

एउटा नियन्त्रित पुल दोहोर्याउनुहोस् र के बदलियो जाँच्नुहोस्

एउटा सीमा बदल्नुहोस्, त्यसको मालिक घटक पुनः सुरु गर्नुहोस्, र त्यही सन्दर्भबाट त्यही पुल दोहोर्याउनुहोस्। त्रुटिको अनुपस्थिति होइन, परिणामस्वरूप प्राप्त इमेज सन्दर्भ र digest प्रमाणित गर्नुहोस्, किनकि क्यास गरिएको तहले दोस्रो प्रयासलाई पहिलोभन्दा धेरै कम मार्गबाट जान दिन सक्छ। वास्तवमा भएका स्थानान्तरणहरू टिकटमा राख्नुहोस्, किनकि पुनःप्रयासले साँच्चै के परीक्षण गर्यो भन्ने त्यही मात्र अभिलेख हो।

बिल्ड चरणहरू र चलिरहेका कन्टेनरका आफ्नै नेटवर्क सन्दर्भहरू हुन्छन्, त्यसैले पुल आफैं काम गरेपछि तिनलाई छुट्टाछुट्टै प्रश्न मान्नुहोस्।

सम्बन्धित लेखहरू