Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> आभासी मशीन

सामान्य Docker कंटेनर स्टार्टअप और विलोपन समस्याओं को त्वरित रूप से हल करें

हाल ही में, मैंने Docker के उपयोग पर कुछ दिलचस्प ट्यूटोरियल लिखे हैं, एक अच्छी तकनीक जो LXC को खुशी के एक प्यारे बंडल में लपेटती है, और, मैं कैसे कहूं, कम ऑटिस्टिकली झुकाव वाले डेवलपर्स, इंजीनियरों और सिस्टम एडमिनिस्ट्रेटर्स को, Python उल्टी पर इतना उत्सुक नहीं, OS-लेवल वर्चुअलाइजेशन के चमत्कारों का आनंद लेने देती है। लेकिन समस्याएं हैं।

आज हम जिन दो मुद्दों पर चर्चा करेंगे, वे तब होते हैं जब आप एक नामित कंटेनर शुरू करते हैं, या एक को हटाने का प्रयास करते हैं। अर्थात्, स्क्रीन पर फैंसी अक्षर पढ़ेंगे: "Conflict. The name W is already in use by container XYZ. You have to delete..." और दूसरी परेशानी पढ़ती है: "Conflict, cannot remove the default name of the container..." विराम चिह्न के घोर दुरुपयोग के अलावा, अब हमें यह पता लगाने की जरूरत है कि इसे कैसे सुलझाया जाए।

समस्याएं

ठीक है, तो हमारे पास यह मुद्दा है:

docker run -d -ti -p 22 -p 80 --name <name> <repo:tag>
FATA[0000] Error response from daemon: Conflict. The name "XYZ" is already in use by container hexacode. You have to delete (or rename) that container to be able to reuse that name.

हम एक कंटेनर शुरू नहीं कर सकते, क्योंकि नाम पहले से ही उपयोग में है। docker ps कमांड चलाएं, आप इसे वहां नहीं देखेंगे। इसके अलावा अगर आप दोषी कंटेनर अवशेषों को मारने या हटाने का प्रयास करते हैं, तो आपको मिलता है:

docker rm --link <name>
Error response from daemon: Conflict, cannot remove the default name of the container
FATA[0000] Error: failed to remove one or more containers

लगता है एक डेड एंड। तो अब क्या?

समाधान

पहले, आइए पता लगाएं कि हमारे हाथ में क्या है। जाहिर है, अतीत में किसी बिंदु पर, आपने एक नामित कंटेनर बनाया था, और फिर, आपने इसे चलते छोड़ दिया। उसके बाद, आपका होस्ट किसी भी कारण से रीबूट हुआ, और आपने अपने कंटेनरों को उचित तरीके से समाप्त नहीं किया। बची हुई फाइलें अब आपको पुराने नाम के साथ नए कंटेनर को फिर से बनाने से रोकती हैं, क्योंकि सिस्टम सोचता है कि पुराने अभी भी मौजूद हैं।

इस मुद्दे को ठीक करने के दो तरीके हैं। हम पहले अनुग्रहपूर्ण तरीके से शुरू करेंगे। यदि आप docker ps कमांड चलाते हैं, तो आप अपने पुराने कंटेनरों को नहीं देखेंगे, क्योंकि वे वास्तव में नहीं चल रहे हैं। लेकिन अगर आप -a फ्लैग के साथ docker ps कमांड चलाते हैं, तो आपको अपने सभी कंटेनर रन इतिहास देखने चाहिए:

बाहर निकलने वाले कंटेनर जिनका स्टेटस कोड शून्येतर है, वे असामान्य तरीके से बाहर निकले हैं। उनके नाम के आधार पर जिन्हें आप खोजते हैं, और फिर वास्तविक हेक्साडेसिमल कोड का उपयोग करके उन्हें हटा दें, उदाहरण के लिए:

docker rm 85c2981e63f6 26ea04f41ab3

दूसरी विधि /var के तहत बची हुई फाइलों को मैन्युअल रूप से हटाना है। विशेष रूप से, फाइलें /var/lib/docker/containers/ के तहत पाई जा सकती हैं। प्रत्येक कंटेनर डायरेक्टरी में एक सुपर लंबा हैश पहचानकर्ता होगा, और इसके अंदर, टन बदसूरत JSON आउटपुट। यदि आप एक विशेष स्ट्रिंग की खोज करते हैं जो आपके वांछित कंटेनर नाम से मेल खाता है, तो आप प्रासंगिक डायरेक्टरी ढूंढ लेंगे जो इसकी कॉन्फ़िगरेशन फाइलों को रखती है।

मिलान करने वाले नाम खोज के पैरेंट डायरेक्टरी को हटाएं, फिर Docker सेवा को पुनरारंभ करें। उसके बाद, आपको अपने नाम का फिर से उपयोग करने में सक्षम होना चाहिए। यह वैसा ही है जैसा हमने KVM और libvirt अवशेषों के साथ देखा था।

systemctl restart docker

और आप चालू और चल रहे होंगे, पुराने लड़के!

निष्कर्ष

कुछ समस्याएं वास्तव में कष्टप्रद हो सकती हैं, खासकर जब वे इस बात से संबंधित हों कि सेवाएं क्रैश, रीबूट और ऐसे को कितनी अच्छी तरह और मजबूती से संभालती हैं। मुझे नापसंद है जब बची हुई फाइलें इतना दुख देती हैं। यह ऐसा नहीं होना चाहिए, और सेवाओं को राजसी ढंग से ठीक होना चाहिए। लेकिन अरे, कंटेनर अभी भी एक युवा तकनीक हैं, इसलिए इस तरह की चीजें अपेक्षित हैं।

उम्मीद है, एक शानदार एयरकॉन सिस्टम की तरह जो अपनी रोष को विंडशील्ड पर उड़ाता है, हमने नामित कंटेनर बनाने और अप्रत्याशित रीबूट और क्या-क्या के बाद बचे हुए को हटाने के आसपास के कोहरे और भ्रम को दूर कर दिया है। अब, आपका Docker अनुभव थोड़ा अधिक सुखद होगा, और आपने पृष्ठभूमि में चीजें कैसे काम करती हैं, इस पर एक या दो चीजें सीखी हैं। वहां जाएं, मज़े करें।

चीयर्स।

  1. Windows 10 अपडेट समस्याओं को शीघ्रता से हल करें: चरण-दर-चरण गाइड Windows 10 अपडेट समस्याओं को शीघ्रता से हल करें: चरण-दर-चरण गाइड

    इस समस्या निवारण गाइड में Windows 10 अपडेट समस्याओं को ठीक करने में उपयोगकर्ताओं की सहायता के लिए कई विधियां शामिल हैं, जैसे अपडेट डाउनलोड या इंस्टॉल करते समय त्रुटियां या अन्य मुद्दे जो Windows 10 को नवीनतम संस्करण (बिल्ड) में अपग्रेड करते समय हो सकते हैं। कई Windows 10 PC मालिकों को एक नए महत्वपू

  1. Windows 10 पर ब्लूटूथ समस्या निवारण: त्वरित सुधार और समाधान Windows 10 पर ब्लूटूथ समस्या निवारण: त्वरित सुधार और समाधान

    ब्लूटूथ आपको Windows 10 डिवाइस और एक्सेसरीज़ को तारों की आवश्यकता के बिना अपने PC से कनेक्ट करने की अनुमति देता है। ज्यादातर समय, ब्लूटूथ Windows 10 में अच्छा काम करता है। यदि यह नहीं करता है, हालांकि, यहां आपके Windows 10 PC पर ब्लूटूथ कनेक्शन के निवारण के लिए चरण दिए गए हैं। 1. जांचें कि आपका ब्लू

  1. Windows 10 Store समस्याओं के लिए त्वरित सुधार - 5 सिद्ध समाधान Windows 10 Store समस्याओं के लिए त्वरित सुधार - 5 सिद्ध समाधान

    Windows Store आपके कंप्यूटर पर Microsoft एप्लिकेशन प्राप्त करने के लिए आधिकारिक ऑनलाइन मार्केटप्लेस है। कभी-कभी, आप Store या वहां के ऐप्स का उपयोग करते समय समस्याओं का सामना कर सकते हैं। आज, हम Windows 10 Store समस्याओं को ठीक करने के 5 सर्वोत्तम तरीके सुझाने जा रहे हैं: 1. समस्या निवारक: किसी भी सम