Docker को अपडेट करना तीन बिल्कुल अलग चीज़ों का मतलब हो सकता है। आपको Docker Engine, Docker Desktop, या वे इमेजेज़ अपडेट करनी पड़ सकती हैं जिन पर आपके कंटेनर चलते हैं।
अधिकांश डेवलपर्स को नहीं पता होता कि वास्तव में किसे अपडेट करने की ज़रूरत है, इसलिए वे या तो सब कुछ अपडेट कर देते हैं (और अपनी सेटअप को तोड़ने का जोखिम लेते हैं) या अपडेट्स से पूरी तरह बचते हैं (और खुद को कमजोरियों के लिए उजागर करते हैं)। Docker को सुरक्षित रूप से अपडेट करने के लिए, आपको बस यह जानना है कि आप क्या अपडेट कर रहे हैं और हर परिस्थिति के लिए सही चरणों का पालन करना है।
इस लेख में, मैं बिना किसी अनुमान के सबसे सुरक्षित और प्रचलित अपडेट पाथ्स के बारे में बताऊंगा। आप जानेंगे कि Docker अपडेट के हर प्रकार से वास्तव में क्या होता है, कब किसकी आवश्यकता पड़ती है, और मौजूदा कंटेनरों को तोड़े बिना चरण-दर-चरण अपडेट कैसे करें।
यदि आप Docker में नए हैं, तो अपडेट और रखरखाव पर काम करने से पहले बुनियाद मजबूत करने के लिए Introduction to Docker से शुरुआत करें।
"Docker अपडेट करना" वास्तव में क्या मतलब है?
जैसा कि मैंने बताया, "Docker अपडेट करना" तीन अलग चीज़ों को संदर्भित कर सकता है, और इन्हें मिलाना-जलाना एक काम करती प्रणाली को गलती से तोड़ने का तरीका है। आप Docker Engine (वह कोर सॉफ्टवेयर जो कंटेनर चलाता है), Docker Desktop (GUI एप्लिकेशन), या वे कंटेनर इमेजेज़ अपडेट कर सकते हैं जिनका आपकी एप्लिकेशनें उपयोग करती हैं।
हर अपडेट प्रकार आपके सिस्टम को अलग ढंग से प्रभावित करता है। मैं समझाता हूँ।
Docker Engine अपडेट बनाम इमेजेज़ अपडेट करना
Docker Engine वह रनटाइम है जो आपके कंटेनरों को मैनेज करता है।
जब आप Docker Engine को अपडेट करते हैं, तो आप उस सॉफ्टवेयर को अपग्रेड कर रहे होते हैं जो आपके सिस्टम पर कंटेनर बनाता, चलाता और मैनेज करता है। यह एक सिस्टम-स्तरीय बदलाव है जो Docker के ऑपरेशन को प्रभावित करता है। आप नए बाइनरी इंस्टॉल कर रहे हैं, डेमन को अपडेट कर रहे हैं, और संभवतः यह बदल रहे हैं कि Docker आपके ऑपरेटिंग सिस्टम के साथ कैसे इंटरैक्ट करता है।
कंटेनर इमेजेज़ वे ब्लूप्रिंट हैं जिनसे आपके कंटेनर चलते हैं।
किसी इमेज को अपडेट करने का मतलब उस कंटेनर के भीतर पैक की गई एप्लिकेशन का नया संस्करण पुल करना है। उदाहरण के लिए, यदि आप किसी कंटेनर में PostgreSQL 14 चला रहे हैं और PostgreSQL 18 पर अपग्रेड करना चाहते हैं, तो इमेज अपडेट करने का अर्थ नया संस्करण पुल करना है। स्वयं Docker Engine नहीं बदलता—केवल आपके कंटेनरों के अंदर का सॉफ्टवेयर बदलता है।
ध्यान रखने वाली मुख्य बात यह है कि Docker Engine अपडेट आपके सभी कंटेनरों को प्रभावित कर सकता है, जबकि किसी इमेज को अपडेट करना केवल उसी विशेष इमेज से बने कंटेनरों को प्रभावित करता है।
चल रहे कंटेनरों पर क्या असर पड़ता है
Docker Engine अपडेट अपने आप आपके कंटेनरों को रीस्टार्ट नहीं करता।
जब आप Linux पर Docker Engine को अपडेट करते हैं, तो Docker डेमन रीस्टार्ट होता है, लेकिन अधिकांश आधुनिक सेटअप में आपके कंटेनर चलते रहते हैं। Docker एक फीचर का उपयोग करता है जिसे live restore कहा जाता है, जो डेमन अपडेट्स के दौरान कंटेनरों को चालू रखता है। आप docker info चलाकर और "Live Restore Enabled: true" देखकर जाँच सकते हैं कि यह सक्षम है या नहीं।
Docker Desktop अलग मामला है।
macOS और Windows पर, Docker Desktop को अपडेट करना सभी चल रहे कंटेनरों को रोक देगा। अपडेट प्रक्रिया के दौरान पूरी Docker VM रीस्टार्ट होती है। अपडेट पूरा होने के बाद आपके कंटेनर अपने आप शुरू नहीं होंगे। आपको उन्हें मैन्युअल रूप से शुरू करना होगा या रीस्टार्ट नीतियों का उपयोग करना होगा।
इमेज अपडेट के लिए आपको कंटेनरों को फिर से बनाना पड़ता है।
नई इमेज का संस्करण पुल करने से चल रहे कंटेनरों पर कोई असर नहीं पड़ता। अपडेटेड इमेज का उपयोग करने के लिए, आपको पुराने कंटेनर को रोकना, हटाना, और अपडेटेड इमेज से नया कंटेनर बनाना होगा।
इसीलिए Engine अपडेट्स और इमेज अपडेट्स के बीच अंतर को समझना महत्वपूर्ण है। एक में डाउनटाइम की योजना बनानी पड़ सकती है, दूसरे में नहीं।
आपको Docker क्यों अपडेट करना चाहिए
पुराने Docker संस्करण आपको ज्ञात सुरक्षा कमजोरियों और अनुकूलता समस्याओं के प्रति उजागर करते हैं। यदि यह अकेले आपको आश्वस्त नहीं करता, तो आगे पढ़ें।
सुरक्षा और स्थिरता
हर Docker रिलीज़ पिछले संस्करणों में खोजी गई सुरक्षा खामियों को पैच करती है।
पुराना संस्करण चलाने का मतलब है कि आप उन एक्स्प्लॉइट्स के प्रति संवेदनशील हैं जिनके बारे में हमलावर पहले से जानते हैं। सुरक्षा शोधकर्ता और Docker समुदाय सक्रिय रूप से इन मुद्दों को खोजते और रिपोर्ट करते हैं, और Docker के पीछे की कंपनी उन्हें नए रिलीज़ में ठीक करती है। यदि आप अपडेट नहीं कर रहे, तो आप दरवाज़ा खुला छोड़ रहे हैं।
साथ ही, हर रिलीज़ के साथ स्थिरता बेहतर होती है। नए संस्करणों में बग फिक्स उन चीज़ों को संबोधित करते हैं जो अधिकांश उपयोगकर्ताओं को परेशान करती हैं और जो प्रोडक्शन में आपके कंटेनरों को डाउन कर सकती हैं।
हर नई रिलीज़ के आते ही आपको अपडेट करने की ज़रूरत नहीं, लेकिन महीनों तक अपडेट स्किप करना दर्जनों सुरक्षा पैच और स्थिरता सुधारों से चूक जाना है।
आधुनिक सिस्टम्स के साथ अनुकूलता
ऑपरेटिंग सिस्टम और डेवलपमेंट टूल्स आगे बढ़ते रहते हैं—चाहे आप Docker अपडेट करें या नहीं।
आपका OS अपडेट प्राप्त करता है, आपके CI/CD टूल्स में नए फीचर्स आते हैं, और Kubernetes जैसे ऑर्केस्ट्रेशन प्लेटफ़ॉर्म अंततः पुराने Docker संस्करणों के लिए सपोर्ट हटा देंगे। यदि आप दो साल पुराने Docker पर चल रहे हैं, तो पहले अनुकूलता चेतावनियाँ मिलेंगी, फिर त्रुटियाँ, और अंत में पूरी तरह से ब्रेक होना शुरू होगा।
आधुनिक कंटेनर इमेजेज़ भी नए Docker फीचर्स की अपेक्षा करती हैं। इमेज बिल्डर्स मल्टी-स्टेज बिल्ड्स, BuildKit ऑप्टिमाइजेशन, और नए स्टोरेज ड्राइवर्स का उपयोग करते हैं जिन्हें पुराने Docker संस्करण सपोर्ट नहीं करते। आप ऐसी इमेज पुल कर सकते हैं जो आपके आउटडेटेड सेटअप पर चले ही नहीं।
यदि आप Docker के साथ ऑर्केस्ट्रेशन टूल्स का उपयोग करने की योजना बना रहे हैं, तो हमारा Introduction to Kubernetes कोर्स शुरुआत करने के लिए बेहतरीन है।
अपना वर्तमान Docker संस्करण कैसे जाँचें
अपडेट करने से पहले, अपना वर्तमान संस्करण जाँचना अच्छा अभ्यास है।
इंस्टॉल्ड संस्करण की पुष्टि करना
अपना वर्तमान Docker संस्करण देखने के लिए यह कमांड चलाएँ:
यह आपकी Docker इंस्टॉलेशन के बारे में ढेर सारी जानकारी देता है, जिसमें सर्वर संस्करण, स्टोरेज ड्राइवर, कर्नेल संस्करण, और live restore जैसे फीचर्स सक्षम हैं या नहीं शामिल है। बेसिक अपडेट के लिए आपको यह सब नहीं चाहिए, लेकिन समस्या निवारण में यह उपयोगी है।
निर्णय लेना कि अपडेट की ज़रूरत है या नहीं
माइनर संस्करण अपडेट आमतौर पर सुरक्षित होते हैं और नियमित रूप से लगाने चाहिए।
यदि आप Docker 29.1.0 पर हैं और 29.1.3 उपलब्ध है, तो यह बग फिक्स और सुरक्षा पैच वाला माइनर अपडेट है। ये अपडेट शायद ही कुछ तोड़ते हैं, और आपको सुविधानुसार इन्हें लागू करना चाहिए।
मेजर संस्करण अपडेट में अधिक सावधानी चाहिए। Docker 24 से Docker 29 पर जाना ब्रेकिंग चेंजेज़, डिप्रिकेटेड फीचर्स, या नई आवश्यकताएँ ला सकता है। मेजर संस्करण पार करते हुए अपडेट करने से पहले, अपने टार्गेट संस्करण के लिए Docker रिलीज़ नोट्स देखें कि क्या बदला है।
नवीनतम Docker संस्करण आपको आधिकारिक Docker डॉक्युमेंटेशन या GitHub रिलीज़ पेज पर मिल जाएगा। docker –version जो दिखाता है, उससे तुलना करें ताकि पता चले कि आप कितने पीछे हैं।
Docker Engine कैसे अपडेट करें
अपडेट प्रक्रिया इस पर निर्भर करती है कि आप Linux पर Docker Engine चला रहे हैं या macOS/Windows पर Docker Desktop।
Linux पर Docker अपडेट करना
Linux Docker Engine को अपडेट करने के लिए आपके सिस्टम के पैकेज मैनेजर का उपयोग करता है।
सटीक कमांड डिस्ट्रीब्यूशन के अनुसार बदलते हैं, लेकिन प्रक्रिया समान है:
अपनी पैकेज सूची अपडेट करें
Docker अपग्रेड करें
Ubuntu और Debian-आधारित सिस्टम पर यह ऐसे काम करता है:
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.ioसंचालित द्वारा
CentOS या Fedora जैसे Red Hat-आधारित सिस्टम के लिए, निम्न कमांड चलाएँ:
sudo yum update docker-ce docker-ce-cli containerd.ioसंचालित द्वारा
अपडेट के दौरान Docker डेमन अपने आप रीस्टार्ट होता है।
यदि आपके पास live restore सक्षम है (docker info से जाँचें), तो आपके चल रहे कंटेनर चलते रहेंगे। यदि नहीं, तो वे रुक जाएँगे और आपको उन्हें मैन्युअल रूप से शुरू करना होगा।
अपडेट पूरा होने के बाद, नया संस्करण वेरिफ़ाई कर सकते हैं:
यदि आपने पैकेज रिपॉजिटरी की बजाय सुविधा स्क्रिप्ट से Docker इंस्टॉल किया है, तो अपडेट करने के लिए आपको स्क्रिप्ट फिर से डाउनलोड और रन करनी होगी।
macOS और Windows पर Docker Desktop अपडेट करना
Docker Desktop, Linux पर Docker Engine से अलग तरीके से अपडेट हैंडल करता है।
ऑटो-अपडेट डिफ़ॉल्ट रूप से सक्षम होता है। Docker Desktop शुरू होने पर अपडेट्स की जाँच करता है और नया संस्करण उपलब्ध होने पर नोटिफ़िकेशन दिखाता है। नोटिफ़िकेशन पर क्लिक करें, और Docker Desktop आपके लिए अपडेट डाउनलोड और इंस्टॉल कर देगा।
यदि आप मैन्युअल अपडेट पसंद करते हैं, तो Docker Desktop सेटिंग्स खोलें और "Check for updates" विकल्प देखें। आप यहाँ ऑटोमैटिक अपडेट्स को डिसेबल कर सकते हैं और मनचाहे समय पर मैन्युअल रूप से जाँच सकते हैं।
मैन्युअल रूप से Docker अपडेट करना भी ठीक है।
बस Docker वेबसाइट से नवीनतम Docker Desktop इंस्टॉलर डाउनलोड करें और रन करें। इंस्टॉलर आपकी मौजूदा इंस्टॉलेशन का पता लगाएगा और आपकी इमेजेज़ या कंटेनर हटाए बिना उसे अपग्रेड कर देगा।
बस याद रखें कि Docker Desktop अपडेट के दौरान सभी कंटेनर रोक देगा। पूरी Docker VM रीस्टार्ट होती है, इसलिए कुछ मिनट के डाउनटाइम की योजना बनाएँ। आपके कंटेनर अपने आप रीस्टार्ट नहीं होंगे जब तक कि आपने उन्हें --restart always जैसी रीस्टार्ट नीतियों के साथ कॉन्फ़िगर न किया हो।
अपडेट करने के बाद, Docker Desktop खोलें और उसे पूरी तरह स्टार्ट होने दें, फिर नया संस्करण कन्फर्म करने के लिए docker –version चलाएँ।
एक-एक करके कई कंटेनरों को मैनेज करना गर्व की बात नहीं। मल्टी-कंटेनर बिल्ड्स के बारे में जानने के लिए हमारा Docker Compose Guide देखें।
Docker अपडेट कैसे वेरिफ़ाई करें
Docker अब अपडेट हो जाना चाहिए—लेकिन चलिए सत्यापित कर लेते हैं कि सच में ऐसा ही है।
आउटपुट में आपका टार्गेट संस्करण दिखना चाहिए। यदि अभी भी पुराना संस्करण दिखता है, तो अपडेट ठीक से पूरा नहीं हुआ या नए बाइनरी पिक करने के लिए आपको अपना टर्मिनल रीस्टार्ट करना होगा।
मेरी मशीन पर संस्करण अपरिवर्तित है, लेकिन केवल इसलिए क्योंकि मैं पहले से ही नवीनतम संस्करण पर था।
यह latest टैग के साथ PostgreSQL इमेज का नवीनतम संस्करण पुल करता है। लेकिन इसका मतलब हमेशा वैसा नहीं होता जैसा आप सोचते हैं—यह बस एक टैग है जिसे इमेज मेंटेनर्स किसी भी संस्करण की ओर इंगित कर सकते हैं।
अप्रत्याशितताओं से बचने के लिए टैग्स के साथ स्पष्ट रहना हमेशा अनुशंसित है:
यह विशेष रूप से PostgreSQL संस्करण 18 पुल करता है। यदि संस्करण 18.1 आता है, तो यह कमांड दोबारा चलाने से 18 सीरीज़ में रहते हुए अपडेटेड 18.1 इमेज पुल हो जाएगी।
अन्य इमेजेज़ के लिए, पहले docker images कमांड से उनके वर्तमान संस्करण देखें। फिर आवश्यकता अनुसार नए संस्करण पुल करें। जब तक आप नए इमेज से कंटेनर रीक्रिएट नहीं करते, आपके मौजूदा कंटेनर पुरानी इमेज पर ही चलते रहेंगे।
कस्टम इमेजेज़ को रीबिल्ड करना
यदि आप Dockerfiles से अपनी इमेजेज़ बनाते हैं, तो बेस इमेज अपडेट्स पुल करने के बाद उन्हें रीबिल्ड करना होगा।
मान लीजिए आपका Dockerfile FROM python:3.14 से शुरू होता है। भले ही आप नवीनतम python:3.14 इमेज पुल कर लें, आपकी कस्टम इमेज अभी भी पुराने कैश्ड लेयर्स का उपयोग करती है। अपडेट्स लेने के लिए इसे रीबिल्ड करें:
यह सभी कैश्ड लेयर्स को अनदेखा करता है और सब कुछ स्क्रैच से रीबिल्ड करता है। इसमें समय अधिक लगता है, लेकिन यह सुनिश्चित करता है कि आप ताज़ा बेस इमेजेज़ और डिपेंडेंसीज़ का उपयोग कर रहे हैं।
रीबिल्ड करने के बाद, अपने पुराने कंटेनरों को रोकें और अपडेटेड इमेज के साथ नए कंटेनर शुरू करें—अपडेट्स अपने आप चल रहे कंटेनरों पर लागू नहीं होते।
अपडेट के बाद डिस्क स्पेस खाली करना चाहते हैं? हमारा Docker Prune ट्यूटोरियल आपको अनयूज़्ड इमेजेज़ और कंटेनरों को सुरक्षित रूप से साफ़ करना सिखाता है।
आम Docker अपडेट समस्याएँ
Docker अपडेट्स पूर्वानुमेय तरीकों से फेल होते हैं, और अधिकांश समस्याओं के त्वरित समाधान होते हैं। मैं आपको कुछ ऐसे दिखाता हूँ जिनका मैंने स्वयं सामना किया है।
परमिशन, सर्विस, और इंस्टॉल एरर्स
"Permission denied" एरर्स का मतलब है कि आपका यूज़र Docker सॉकेट तक पहुँच नहीं कर सकता।
टैग को अपनी ज़रूरत के संस्करण से बदलें। डाउनग्रेड के दौरान आपके कंटेनर और इमेजेज़ सुरक्षित रहते हैं।
macOS और Windows के लिए, रोलबैक सरल है। Docker के रिलीज़ आर्काइव से पुराना इंस्टॉलर डाउनलोड करें और रन करें। इंस्टॉलर आपके कंटेनरों या इमेजेज़ को छुए बिना वर्तमान संस्करण को पुराने से बदल देता है।
Docker अपडेट के सर्वोत्तम अभ्यास
सबसे अच्छी सलाह यह है कि Docker को नियमित रूप से अपडेट रखें। यदि आपने वर्षों से नहीं किया है, तो रिलीज़ पेज पर किसी भी ब्रेकिंग चेंज के लिए खोजें।
Docker को सुरक्षित रूप से अप टू डेट रखना
समस्याओं का इंतज़ार करने की बजाय Docker अपडेट्स जाँचने के लिए रिमाइंडर सेट करें।
मासिक रूप से अपडेट्स जाँचें—इसलिए नहीं कि हर एक इंस्टॉल करना है, बल्कि इसलिए कि आपको पता रहे क्या उपलब्ध है। और आपको याद दिलाने के लिए कुछ होना चाहिए। सुरक्षा पैच फीचर अपडेट्स से अधिक मायने रखते हैं, इसलिए उनके आते ही प्राथमिकता दें।
अपडेट करने से पहले अपनी मौजूदा सेटअप को डाक्यूमेंट करना अच्छा अभ्यास है। अपना Docker संस्करण लिख लें, docker ps से चल रहे कंटेनरों की सूची बना लें, और किसी भी कस्टम कॉन्फ़िगरेशन को नोट करें। यदि कुछ टूटता है, तो आपको पता होगा कि क्या बदला।
यदि आप प्रोडक्शन में Docker चला रहे हैं, तो पहले किसी डेवलपमेंट मशीन पर अपडेट्स टेस्ट करें। समान वातावरण स्पिन अप करें, वहाँ Docker अपडेट करें, और प्रोडक्शन को छूने से पहले सुनिश्चित करें कि आपके कंटेनर अब भी काम कर रहे हैं।
कब ऑटोमेट करना चाहिए
डेवलपमेंट वातावरण के लिए जहाँ डाउनटाइम मायने नहीं रखता, ऑटोमेशन समझ में आता है।
आप Docker Desktop को ऑटो-अपडेट के लिए कॉन्फ़िगर कर सकते हैं या Linux पर सुरक्षा पैच के लिए अनअटेन्डेड अपग्रेड सेट कर सकते हैं। यह स्थानीय डेवलपमेंट मशीनों के लिए अच्छा काम करता है जहाँ रीस्टार्ट से महत्वपूर्ण सेवाएँ बाधित नहीं होतीं।
बिना उचित सुरक्षा उपायों के प्रोडक्शन में अपडेट्स ऑटोमेट न करें।
वास्तविक वर्कलोड चलाने वाले सिस्टम्स पर अपडेट लगाने से पहले आपको मॉनिटरिंग, रोलबैक रणनीतियाँ, और टेस्टिंग की ज़रूरत होती है। Docker अपडेट्स चीज़ें तोड़ सकते हैं—प्रोडक्शन सिस्टम्स के लिए आपके पास मानवीय हस्तक्षेप होना चाहिए।
मासिक रिमाइंडर्स के जरिए मैन्युअल अपडेट मेरा पसंदीदा तरीका है, और मुझे कभी समस्याएँ नहीं हुईं।
निष्कर्ष
Docker को अपडेट करना इस समझ से शुरू होता है कि आप वास्तव में क्या अपडेट कर रहे हैं।
Docker Engine अपडेट्स, Docker Desktop अपडेट्स, और इमेज अपडेट्स—ये तीन अलग चीज़ें हैं जो आपके सिस्टम पर अलग-अलग प्रभाव डालती हैं। जो ज़रूरी है उसे जानें, अपने प्लेटफ़ॉर्म के लिए सही प्रक्रिया अपनाएँ, और बाद में टेस्ट करें। बस इतना ही।
अपने फ़ोन पर रिमाइंडर सेट करें। मासिक रूप से अपडेट्स जाँचें, सुरक्षा पैच को प्राथमिकता दें, और कुछ भी बदलने से पहले यह डाक्यूमेंट करें कि आप क्या चला रहे हैं। अपडेट्स पर तनाव नहीं होना चाहिए—वे नियमित रखरखाव का काम होना चाहिए।
प्रोडक्शन वातावरण के लिए, याद रखें कि आपके कंटेनर Docker के सही ढंग से काम करने पर निर्भर करते हैं। अपडेट्स को उसी सावधानी से लें जैसी आप किसी अन्य महत्वपूर्ण अवसंरचना परिवर्तन के लिए लेते हैं—सोच-समझकर, टेस्टिंग के साथ, और यदि कुछ गलत हो जाए तो रोलबैक प्लान के साथ।
अब आप जानते हैं कि Docker कैसे अपडेट करें—अगला कदम है हमारे Intermediate Docker कोर्स के साथ अपनी कंटेनर स्किल्स को आगे बढ़ाना। आप नेटवर्किंग, उन्नत कंटेनर इमेजेज़, और Docker Compose के बारे में सीखेंगे।
क्रोएशिया में स्थित सीनियर डेटा साइंटिस्ट। 700 से अधिक प्रकाशित लेखों के साथ टॉप टेक राइटर, जिनसे 10M+ व्यूज़ प्राप्त हुए। Machine Learning Automation with TPOT के पुस्तक लेखक।
FAQs
मैं Watchtower का उपयोग करके Docker कंटेनर अपडेट्स कैसे ऑटोमेट कर सकता/सकती हूँ?⌄
Watchtower एक कंटेनर है जो आपके चल रहे कंटेनरों की निगरानी करता है और नए इमेज संस्करण उपलब्ध होने पर उन्हें स्वतः अपडेट करता है। आप Watchtower को स्वयं एक कंटेनर के रूप में Docker सॉकेट की एक्सेस के साथ चलाते हैं, और यह समय-समय पर इमेज अपडेट्स की जाँच करता है, नए संस्करण पुल करता है, और अपडेटेड इमेज के साथ आपके कंटेनरों को रीस्टार्ट करता है। यह डेवलपमेंट वातावरण के लिए अच्छी तरह काम करता है, लेकिन प्रोडक्शन में सावधानी बरतें—उचित टेस्टिंग और रोलबैक रणनीतियों के बिना ऑटोमेटेड अपडेट्स चीज़ें तोड़ सकते हैं।
प्राइवेट Docker रजिस्ट्री सेटअप करने के सर्वोत्तम अभ्यास क्या हैं?⌄
अनधिकृत एक्सेस रोकने के लिए अपने प्राइवेट रजिस्ट्री को TLS सर्टिफिकेट और ऑथेंटिकेशन से सुरक्षित करें। स्थानीय डिस्क स्टोरेज की बजाय स्केलेबिलिटी और विश्वसनीयता के लिए S3 या Azure Blob Storage जैसे स्टोरेज बैकएंड्स का उपयोग करें। कमजोरियों के लिए इमेज स्कैनिंग लागू करें और अनयूज़्ड लेयर्स हटाकर स्पेस बचाने के लिए गार्बेज कलेक्शन सेट करें। आपको एक्सेस कंट्रोल भी कॉन्फ़िगर करना चाहिए ताकि टीमें केवल उन्हीं रिपॉजिटरीज़ पर पुश/पुल कर सकें जिनके लिए वे अधिकृत हैं।
कैनरी डिप्लॉयमेंट ब्लू-ग्रीन डिप्लॉयमेंट से कैसे अलग है?⌄
ब्लू-ग्रीन डिप्लॉयमेंट दो समान प्रोडक्शन वातावरण चलाता है—आप नया संस्करण निष्क्रिय वातावरण पर डिप्लॉय करते हैं, उसे टेस्ट करते हैं, फिर एक साथ सारा ट्रैफ़िक स्विच कर देते हैं। कैनरी डिप्लॉयमेंट नए संस्करण को पहले एक छोटे यूज़र सबसेट पर धीरे-धीरे रोल आउट करता है, समस्याओं की निगरानी करता है, फिर पुराने संस्करण के अधिकांश अनुरोध हैंडल करते रहने के दौरान धीरे-धीरे नए संस्करण पर ट्रैफ़िक बढ़ाता है। कैनरी डिप्लॉयमेंट कम यूज़र प्रभाव के साथ समस्याएँ पकड़ लेते हैं, जबकि ब्लू-ग्रीन डिप्लॉयमेंट वातावरणों को वापस स्विच करके त्वरित रोलबैक देते हैं।
Docker में मल्टी-स्टेज बिल्ड्स के उपयोग के फायदे क्या हैं?⌄
मल्टी-स्टेज बिल्ड्स आपको एक ही Dockerfile में कई FROM स्टेटमेंट्स का उपयोग करने देते हैं, यानी आप एक स्टेज में सभी बिल्ड टूल्स के साथ अपनी ऐप को कॉम्पाइल/बिल्ड कर सकते हैं, फिर केवल अंतिम आर्टिफैक्ट्स को एक न्यूनतम रनटाइम इमेज में कॉपी कर सकते हैं। इससे इमेज साइज नाटकीय रूप से घटता है क्योंकि आप प्रोडक्शन में बिल्ड डिपेंडेंसीज़, कम्पाइलर्स, या सोर्स कोड नहीं शिप करते। आपको बेहतर लेयर कैशिंग के माध्यम से तेज़ बिल्ड्स और बिल्ड तथा रनटाइम वातावरणों के बीच साफ़-सुथरा अलगाव भी मिलता है।
Docker कंटेनर परफॉर्मेंस मैट्रिक्स को प्रभावी ढंग से कैसे मॉनिटर करें?⌄
CPU, मेमोरी, नेटवर्क, और डिस्क I/O पर सभी चल रहे कंटेनरों के त्वरित रियल-टाइम मैट्रिक्स के लिए docker stats का उपयोग करें। प्रोडक्शन मॉनिटरिंग के लिए, Prometheus और cAdvisor जैसे टूल्स विस्तृत कंटेनर मैट्रिक्स एकत्र कर उन्हें विश्लेषण और अलर्टिंग के लिए स्टोर करते हैं। Docker अपने API के माध्यम से भी मैट्रिक्स एक्सपोज़ करता है जिन्हें आप मॉनिटरिंग प्लेटफ़ॉर्म से स्क्रैप कर सकते हैं। उच्च संसाधन उपयोग, कंटेनर रीस्टार्ट्स, और असफल हेल्थ चेक्स के लिए अलर्ट सेट करें ताकि समस्याएँ यूज़र्स को प्रभावित करने से पहले पकड़ी जा सकें।
Docker को अपडेट करना तीन बिल्कुल अलग चीज़ों का मतलब हो सकता है। आपको Docker Engine, Docker Desktop, या वे इमेजेज़ अपडेट करनी पड़ सकती हैं जिन पर आपके कंटेनर चलते हैं।
अधिकांश डेवलपर्स को नहीं पता होता कि वास्तव में किसे अपडेट करने की ज़रूरत है, इसलिए वे या तो सब कुछ अपडेट कर देते हैं (और अपनी सेटअप को तोड़ने का जोखिम लेते हैं) या अपडेट्स से पूरी तरह बचते हैं (और खुद को कमजोरियों के लिए उजागर करते हैं)। Docker को सुरक्षित रूप से अपडेट करने के लिए, आपको बस यह जानना है कि आप क्या अपडेट कर रहे हैं और हर परिस्थिति के लिए सही चरणों का पालन करना है।
इस लेख में, मैं बिना किसी अनुमान के सबसे सुरक्षित और प्रचलित अपडेट पाथ्स के बारे में बताऊंगा। आप जानेंगे कि Docker अपडेट के हर प्रकार से वास्तव में क्या होता है, कब किसकी आवश्यकता पड़ती है, और मौजूदा कंटेनरों को तोड़े बिना चरण-दर-चरण अपडेट कैसे करें।
यदि आप Docker में नए हैं, तो अपडेट और रखरखाव पर काम करने से पहले बुनियाद मजबूत करने के लिए Introduction to Docker से शुरुआत करें।
"Docker अपडेट करना" वास्तव में क्या मतलब है?
जैसा कि मैंने बताया, "Docker अपडेट करना" तीन अलग चीज़ों को संदर्भित कर सकता है, और इन्हें मिलाना-जलाना एक काम करती प्रणाली को गलती से तोड़ने का तरीका है। आप Docker Engine (वह कोर सॉफ्टवेयर जो कंटेनर चलाता है), Docker Desktop (GUI एप्लिकेशन), या वे कंटेनर इमेजेज़ अपडेट कर सकते हैं जिनका आपकी एप्लिकेशनें उपयोग करती हैं।
हर अपडेट प्रकार आपके सिस्टम को अलग ढंग से प्रभावित करता है। मैं समझाता हूँ।
Docker Engine अपडेट बनाम इमेजेज़ अपडेट करना
Docker Engine वह रनटाइम है जो आपके कंटेनरों को मैनेज करता है।
जब आप Docker Engine को अपडेट करते हैं, तो आप उस सॉफ्टवेयर को अपग्रेड कर रहे होते हैं जो आपके सिस्टम पर कंटेनर बनाता, चलाता और मैनेज करता है। यह एक सिस्टम-स्तरीय बदलाव है जो Docker के ऑपरेशन को प्रभावित करता है। आप नए बाइनरी इंस्टॉल कर रहे हैं, डेमन को अपडेट कर रहे हैं, और संभवतः यह बदल रहे हैं कि Docker आपके ऑपरेटिंग सिस्टम के साथ कैसे इंटरैक्ट करता है।
कंटेनर इमेजेज़ वे ब्लूप्रिंट हैं जिनसे आपके कंटेनर चलते हैं।
किसी इमेज को अपडेट करने का मतलब उस कंटेनर के भीतर पैक की गई एप्लिकेशन का नया संस्करण पुल करना है। उदाहरण के लिए, यदि आप किसी कंटेनर में PostgreSQL 14 चला रहे हैं और PostgreSQL 18 पर अपग्रेड करना चाहते हैं, तो इमेज अपडेट करने का अर्थ नया संस्करण पुल करना है। स्वयं Docker Engine नहीं बदलता—केवल आपके कंटेनरों के अंदर का सॉफ्टवेयर बदलता है।
ध्यान रखने वाली मुख्य बात यह है कि Docker Engine अपडेट आपके सभी कंटेनरों को प्रभावित कर सकता है, जबकि किसी इमेज को अपडेट करना केवल उसी विशेष इमेज से बने कंटेनरों को प्रभावित करता है।
चल रहे कंटेनरों पर क्या असर पड़ता है
Docker Engine अपडेट अपने आप आपके कंटेनरों को रीस्टार्ट नहीं करता।
जब आप Linux पर Docker Engine को अपडेट करते हैं, तो Docker डेमन रीस्टार्ट होता है, लेकिन अधिकांश आधुनिक सेटअप में आपके कंटेनर चलते रहते हैं। Docker एक फीचर का उपयोग करता है जिसे live restore कहा जाता है, जो डेमन अपडेट्स के दौरान कंटेनरों को चालू रखता है। आप
docker infoचलाकर और "Live Restore Enabled: true" देखकर जाँच सकते हैं कि यह सक्षम है या नहीं।Docker Desktop अलग मामला है।
macOS और Windows पर, Docker Desktop को अपडेट करना सभी चल रहे कंटेनरों को रोक देगा। अपडेट प्रक्रिया के दौरान पूरी Docker VM रीस्टार्ट होती है। अपडेट पूरा होने के बाद आपके कंटेनर अपने आप शुरू नहीं होंगे। आपको उन्हें मैन्युअल रूप से शुरू करना होगा या रीस्टार्ट नीतियों का उपयोग करना होगा।
इमेज अपडेट के लिए आपको कंटेनरों को फिर से बनाना पड़ता है।
नई इमेज का संस्करण पुल करने से चल रहे कंटेनरों पर कोई असर नहीं पड़ता। अपडेटेड इमेज का उपयोग करने के लिए, आपको पुराने कंटेनर को रोकना, हटाना, और अपडेटेड इमेज से नया कंटेनर बनाना होगा।
इसीलिए Engine अपडेट्स और इमेज अपडेट्स के बीच अंतर को समझना महत्वपूर्ण है। एक में डाउनटाइम की योजना बनानी पड़ सकती है, दूसरे में नहीं।
आपको Docker क्यों अपडेट करना चाहिए
पुराने Docker संस्करण आपको ज्ञात सुरक्षा कमजोरियों और अनुकूलता समस्याओं के प्रति उजागर करते हैं। यदि यह अकेले आपको आश्वस्त नहीं करता, तो आगे पढ़ें।
सुरक्षा और स्थिरता
हर Docker रिलीज़ पिछले संस्करणों में खोजी गई सुरक्षा खामियों को पैच करती है।
पुराना संस्करण चलाने का मतलब है कि आप उन एक्स्प्लॉइट्स के प्रति संवेदनशील हैं जिनके बारे में हमलावर पहले से जानते हैं। सुरक्षा शोधकर्ता और Docker समुदाय सक्रिय रूप से इन मुद्दों को खोजते और रिपोर्ट करते हैं, और Docker के पीछे की कंपनी उन्हें नए रिलीज़ में ठीक करती है। यदि आप अपडेट नहीं कर रहे, तो आप दरवाज़ा खुला छोड़ रहे हैं।
साथ ही, हर रिलीज़ के साथ स्थिरता बेहतर होती है। नए संस्करणों में बग फिक्स उन चीज़ों को संबोधित करते हैं जो अधिकांश उपयोगकर्ताओं को परेशान करती हैं और जो प्रोडक्शन में आपके कंटेनरों को डाउन कर सकती हैं।
हर नई रिलीज़ के आते ही आपको अपडेट करने की ज़रूरत नहीं, लेकिन महीनों तक अपडेट स्किप करना दर्जनों सुरक्षा पैच और स्थिरता सुधारों से चूक जाना है।
आधुनिक सिस्टम्स के साथ अनुकूलता
ऑपरेटिंग सिस्टम और डेवलपमेंट टूल्स आगे बढ़ते रहते हैं—चाहे आप Docker अपडेट करें या नहीं।
आपका OS अपडेट प्राप्त करता है, आपके CI/CD टूल्स में नए फीचर्स आते हैं, और Kubernetes जैसे ऑर्केस्ट्रेशन प्लेटफ़ॉर्म अंततः पुराने Docker संस्करणों के लिए सपोर्ट हटा देंगे। यदि आप दो साल पुराने Docker पर चल रहे हैं, तो पहले अनुकूलता चेतावनियाँ मिलेंगी, फिर त्रुटियाँ, और अंत में पूरी तरह से ब्रेक होना शुरू होगा।
आधुनिक कंटेनर इमेजेज़ भी नए Docker फीचर्स की अपेक्षा करती हैं। इमेज बिल्डर्स मल्टी-स्टेज बिल्ड्स, BuildKit ऑप्टिमाइजेशन, और नए स्टोरेज ड्राइवर्स का उपयोग करते हैं जिन्हें पुराने Docker संस्करण सपोर्ट नहीं करते। आप ऐसी इमेज पुल कर सकते हैं जो आपके आउटडेटेड सेटअप पर चले ही नहीं।
यदि आप Docker के साथ ऑर्केस्ट्रेशन टूल्स का उपयोग करने की योजना बना रहे हैं, तो हमारा Introduction to Kubernetes कोर्स शुरुआत करने के लिए बेहतरीन है।
अपना वर्तमान Docker संस्करण कैसे जाँचें
अपडेट करने से पहले, अपना वर्तमान संस्करण जाँचना अच्छा अभ्यास है।
इंस्टॉल्ड संस्करण की पुष्टि करना
अपना वर्तमान Docker संस्करण देखने के लिए यह कमांड चलाएँ:
यह आपके सिस्टम पर इंस्टॉल्ड Docker Engine संस्करण दिखाता है:
संस्करण संख्या सेमांटिक वर्ज़निंग का पालन करती है:
major.minor.patch। इस उदाहरण में, 29 मेजर संस्करण है, 1 माइनर संस्करण है, और 3 पैच संस्करण है।अपने Docker सेटअप के बारे में अधिक विवरण के लिए, इसके बजाय यह कमांड चलाएँ:
यह आपकी Docker इंस्टॉलेशन के बारे में ढेर सारी जानकारी देता है, जिसमें सर्वर संस्करण, स्टोरेज ड्राइवर, कर्नेल संस्करण, और live restore जैसे फीचर्स सक्षम हैं या नहीं शामिल है। बेसिक अपडेट के लिए आपको यह सब नहीं चाहिए, लेकिन समस्या निवारण में यह उपयोगी है।
निर्णय लेना कि अपडेट की ज़रूरत है या नहीं
माइनर संस्करण अपडेट आमतौर पर सुरक्षित होते हैं और नियमित रूप से लगाने चाहिए।
यदि आप Docker 29.1.0 पर हैं और 29.1.3 उपलब्ध है, तो यह बग फिक्स और सुरक्षा पैच वाला माइनर अपडेट है। ये अपडेट शायद ही कुछ तोड़ते हैं, और आपको सुविधानुसार इन्हें लागू करना चाहिए।
मेजर संस्करण अपडेट में अधिक सावधानी चाहिए। Docker 24 से Docker 29 पर जाना ब्रेकिंग चेंजेज़, डिप्रिकेटेड फीचर्स, या नई आवश्यकताएँ ला सकता है। मेजर संस्करण पार करते हुए अपडेट करने से पहले, अपने टार्गेट संस्करण के लिए Docker रिलीज़ नोट्स देखें कि क्या बदला है।
नवीनतम Docker संस्करण आपको आधिकारिक Docker डॉक्युमेंटेशन या GitHub रिलीज़ पेज पर मिल जाएगा।
docker –versionजो दिखाता है, उससे तुलना करें ताकि पता चले कि आप कितने पीछे हैं।Docker Engine कैसे अपडेट करें
अपडेट प्रक्रिया इस पर निर्भर करती है कि आप Linux पर Docker Engine चला रहे हैं या macOS/Windows पर Docker Desktop।
Linux पर Docker अपडेट करना
Linux Docker Engine को अपडेट करने के लिए आपके सिस्टम के पैकेज मैनेजर का उपयोग करता है।
सटीक कमांड डिस्ट्रीब्यूशन के अनुसार बदलते हैं, लेकिन प्रक्रिया समान है:
Ubuntu और Debian-आधारित सिस्टम पर यह ऐसे काम करता है:
CentOS या Fedora जैसे Red Hat-आधारित सिस्टम के लिए, निम्न कमांड चलाएँ:
अपडेट के दौरान Docker डेमन अपने आप रीस्टार्ट होता है।
यदि आपके पास live restore सक्षम है (
docker infoसे जाँचें), तो आपके चल रहे कंटेनर चलते रहेंगे। यदि नहीं, तो वे रुक जाएँगे और आपको उन्हें मैन्युअल रूप से शुरू करना होगा।अपडेट पूरा होने के बाद, नया संस्करण वेरिफ़ाई कर सकते हैं:
यदि आपने पैकेज रिपॉजिटरी की बजाय सुविधा स्क्रिप्ट से Docker इंस्टॉल किया है, तो अपडेट करने के लिए आपको स्क्रिप्ट फिर से डाउनलोड और रन करनी होगी।
macOS और Windows पर Docker Desktop अपडेट करना
Docker Desktop, Linux पर Docker Engine से अलग तरीके से अपडेट हैंडल करता है।
ऑटो-अपडेट डिफ़ॉल्ट रूप से सक्षम होता है। Docker Desktop शुरू होने पर अपडेट्स की जाँच करता है और नया संस्करण उपलब्ध होने पर नोटिफ़िकेशन दिखाता है। नोटिफ़िकेशन पर क्लिक करें, और Docker Desktop आपके लिए अपडेट डाउनलोड और इंस्टॉल कर देगा।
यदि आप मैन्युअल अपडेट पसंद करते हैं, तो Docker Desktop सेटिंग्स खोलें और "Check for updates" विकल्प देखें। आप यहाँ ऑटोमैटिक अपडेट्स को डिसेबल कर सकते हैं और मनचाहे समय पर मैन्युअल रूप से जाँच सकते हैं।
मैन्युअल रूप से Docker अपडेट करना भी ठीक है।
बस Docker वेबसाइट से नवीनतम Docker Desktop इंस्टॉलर डाउनलोड करें और रन करें। इंस्टॉलर आपकी मौजूदा इंस्टॉलेशन का पता लगाएगा और आपकी इमेजेज़ या कंटेनर हटाए बिना उसे अपग्रेड कर देगा।
बस याद रखें कि Docker Desktop अपडेट के दौरान सभी कंटेनर रोक देगा। पूरी Docker VM रीस्टार्ट होती है, इसलिए कुछ मिनट के डाउनटाइम की योजना बनाएँ। आपके कंटेनर अपने आप रीस्टार्ट नहीं होंगे जब तक कि आपने उन्हें
--restart alwaysजैसी रीस्टार्ट नीतियों के साथ कॉन्फ़िगर न किया हो।अपडेट करने के बाद, Docker Desktop खोलें और उसे पूरी तरह स्टार्ट होने दें, फिर नया संस्करण कन्फर्म करने के लिए
docker –versionचलाएँ।एक-एक करके कई कंटेनरों को मैनेज करना गर्व की बात नहीं। मल्टी-कंटेनर बिल्ड्स के बारे में जानने के लिए हमारा Docker Compose Guide देखें।
Docker अपडेट कैसे वेरिफ़ाई करें
Docker अब अपडेट हो जाना चाहिए—लेकिन चलिए सत्यापित कर लेते हैं कि सच में ऐसा ही है।
इंस्टॉल्ड संस्करण की पुष्टि
पहले संस्करण संख्या जाँचें:
आउटपुट में आपका टार्गेट संस्करण दिखना चाहिए। यदि अभी भी पुराना संस्करण दिखता है, तो अपडेट ठीक से पूरा नहीं हुआ या नए बाइनरी पिक करने के लिए आपको अपना टर्मिनल रीस्टार्ट करना होगा।
मेरी मशीन पर संस्करण अपरिवर्तित है, लेकिन केवल इसलिए क्योंकि मैं पहले से ही नवीनतम संस्करण पर था।
अगला कदम Docker डेमन की स्थिति जाँचना है:
यदि यह "Cannot connect to the Docker daemon" के साथ फेल होता है, तो डेमन चल नहीं रहा। Linux पर, निम्न कमांड से इसे रीस्टार्ट करें:
macOS और Windows पर, बस Docker Desktop खोलें और उसके स्टार्ट होने का इंतज़ार करें।
दिन-प्रतिदिन के कंटेनर कार्यों के लिए आवश्यक कमांड हमारे हालिया लेख Top 18 Docker Commands में देखें।
एक टेस्ट कंटेनर चलाना
यह सुनिश्चित करने के लिए कि अपडेट के बाद कुछ टूटा नहीं, एक साधारण कंटेनर पुल और रन करके देखें:
यह कमांड छोटे
hello-worldइमेज को पुल करके चलाता है। आपको एक संदेश दिखाई देगा जो समझाता है कि Docker सही ढंग से काम कर रहा है:Engine अपडेट के बाद Docker इमेजेज़ कैसे अपडेट करें
Docker Engine को अपडेट करने से आपकी कंटेनर इमेजेज़ अपडेट नहीं होतीं—उन्हें अलग से संभालना पड़ता है।
नए इमेज संस्करण पुल करना
किसी इमेज का नवीनतम संस्करण पाने के लिए आप
docker pullकमांड चला सकते हैं:यह
latestटैग के साथ PostgreSQL इमेज का नवीनतम संस्करण पुल करता है। लेकिन इसका मतलब हमेशा वैसा नहीं होता जैसा आप सोचते हैं—यह बस एक टैग है जिसे इमेज मेंटेनर्स किसी भी संस्करण की ओर इंगित कर सकते हैं।अप्रत्याशितताओं से बचने के लिए टैग्स के साथ स्पष्ट रहना हमेशा अनुशंसित है:
यह विशेष रूप से PostgreSQL संस्करण 18 पुल करता है। यदि संस्करण 18.1 आता है, तो यह कमांड दोबारा चलाने से 18 सीरीज़ में रहते हुए अपडेटेड 18.1 इमेज पुल हो जाएगी।
अन्य इमेजेज़ के लिए, पहले
docker imagesकमांड से उनके वर्तमान संस्करण देखें। फिर आवश्यकता अनुसार नए संस्करण पुल करें। जब तक आप नए इमेज से कंटेनर रीक्रिएट नहीं करते, आपके मौजूदा कंटेनर पुरानी इमेज पर ही चलते रहेंगे।कस्टम इमेजेज़ को रीबिल्ड करना
यदि आप Dockerfiles से अपनी इमेजेज़ बनाते हैं, तो बेस इमेज अपडेट्स पुल करने के बाद उन्हें रीबिल्ड करना होगा।
मान लीजिए आपका Dockerfile
FROM python:3.14से शुरू होता है। भले ही आप नवीनतमpython:3.14इमेज पुल कर लें, आपकी कस्टम इमेज अभी भी पुराने कैश्ड लेयर्स का उपयोग करती है। अपडेट्स लेने के लिए इसे रीबिल्ड करें:यह सभी कैश्ड लेयर्स को अनदेखा करता है और सब कुछ स्क्रैच से रीबिल्ड करता है। इसमें समय अधिक लगता है, लेकिन यह सुनिश्चित करता है कि आप ताज़ा बेस इमेजेज़ और डिपेंडेंसीज़ का उपयोग कर रहे हैं।
रीबिल्ड करने के बाद, अपने पुराने कंटेनरों को रोकें और अपडेटेड इमेज के साथ नए कंटेनर शुरू करें—अपडेट्स अपने आप चल रहे कंटेनरों पर लागू नहीं होते।
अपडेट के बाद डिस्क स्पेस खाली करना चाहते हैं? हमारा Docker Prune ट्यूटोरियल आपको अनयूज़्ड इमेजेज़ और कंटेनरों को सुरक्षित रूप से साफ़ करना सिखाता है।
आम Docker अपडेट समस्याएँ
Docker अपडेट्स पूर्वानुमेय तरीकों से फेल होते हैं, और अधिकांश समस्याओं के त्वरित समाधान होते हैं। मैं आपको कुछ ऐसे दिखाता हूँ जिनका मैंने स्वयं सामना किया है।
परमिशन, सर्विस, और इंस्टॉल एरर्स
"Permission denied" एरर्स का मतलब है कि आपका यूज़र Docker सॉकेट तक पहुँच नहीं कर सकता।
Linux पर, अपने यूज़र को docker ग्रुप में जोड़ें:
परिवर्तन प्रभावी होने के लिए लॉग आउट करके दोबारा लॉग इन करें। इसके बाद आपको docker कमांड्स के लिए
sudoकी आवश्यकता नहीं होनी चाहिए।"Cannot connect to the Docker daemon" एरर्स का मतलब है Docker चल नहीं रहा।
सर्विस स्टेटस जाँचें:
यदि यह स्टॉप या फेल है, तो स्टार्ट करें:
यदि यह शुरू नहीं होता, तो क्या टूट रहा है यह देखने के लिए
journalctl -u dockerसे लॉग्स जाँचें।macOS और Windows पर, बस Docker Desktop ऐप शुरू करें।
इंस्टॉलेशन के दौरान पैकेज कॉन्फ़्लिक्ट्स तब होते हैं जब पुराने Docker पैकेज नए पैकेजों में हस्तक्षेप करते हैं।
अपडेटेड संस्करण इंस्टॉल करने से पहले पुराने Docker पैकेज हटाने के लिए आप यह कमांड चला सकते हैं:
फिर अपने डिस्ट्रीब्यूशन के लिए आधिकारिक इंस्टॉलेशन निर्देशों का पालन करते हुए Docker को दोबारा इंस्टॉल करें।
Docker को रोल बैक या डाउनग्रेड करना
यदि अपडेट आपकी सेटअप तोड़ देता है, तो आप पिछले संस्करण पर डाउनग्रेड कर सकते हैं।
Linux पर, अपने पैकेज मैनेजर में उपलब्ध संस्करण ढूँढें:
किसी विशेष पुराने संस्करण को इंस्टॉल करें:
टैग को अपनी ज़रूरत के संस्करण से बदलें। डाउनग्रेड के दौरान आपके कंटेनर और इमेजेज़ सुरक्षित रहते हैं।
macOS और Windows के लिए, रोलबैक सरल है। Docker के रिलीज़ आर्काइव से पुराना इंस्टॉलर डाउनलोड करें और रन करें। इंस्टॉलर आपके कंटेनरों या इमेजेज़ को छुए बिना वर्तमान संस्करण को पुराने से बदल देता है।
Docker अपडेट के सर्वोत्तम अभ्यास
सबसे अच्छी सलाह यह है कि Docker को नियमित रूप से अपडेट रखें। यदि आपने वर्षों से नहीं किया है, तो रिलीज़ पेज पर किसी भी ब्रेकिंग चेंज के लिए खोजें।
Docker को सुरक्षित रूप से अप टू डेट रखना
समस्याओं का इंतज़ार करने की बजाय Docker अपडेट्स जाँचने के लिए रिमाइंडर सेट करें।
मासिक रूप से अपडेट्स जाँचें—इसलिए नहीं कि हर एक इंस्टॉल करना है, बल्कि इसलिए कि आपको पता रहे क्या उपलब्ध है। और आपको याद दिलाने के लिए कुछ होना चाहिए। सुरक्षा पैच फीचर अपडेट्स से अधिक मायने रखते हैं, इसलिए उनके आते ही प्राथमिकता दें।
अपडेट करने से पहले अपनी मौजूदा सेटअप को डाक्यूमेंट करना अच्छा अभ्यास है। अपना Docker संस्करण लिख लें,
docker psसे चल रहे कंटेनरों की सूची बना लें, और किसी भी कस्टम कॉन्फ़िगरेशन को नोट करें। यदि कुछ टूटता है, तो आपको पता होगा कि क्या बदला।यदि आप प्रोडक्शन में Docker चला रहे हैं, तो पहले किसी डेवलपमेंट मशीन पर अपडेट्स टेस्ट करें। समान वातावरण स्पिन अप करें, वहाँ Docker अपडेट करें, और प्रोडक्शन को छूने से पहले सुनिश्चित करें कि आपके कंटेनर अब भी काम कर रहे हैं।
कब ऑटोमेट करना चाहिए
डेवलपमेंट वातावरण के लिए जहाँ डाउनटाइम मायने नहीं रखता, ऑटोमेशन समझ में आता है।
आप Docker Desktop को ऑटो-अपडेट के लिए कॉन्फ़िगर कर सकते हैं या Linux पर सुरक्षा पैच के लिए अनअटेन्डेड अपग्रेड सेट कर सकते हैं। यह स्थानीय डेवलपमेंट मशीनों के लिए अच्छा काम करता है जहाँ रीस्टार्ट से महत्वपूर्ण सेवाएँ बाधित नहीं होतीं।
बिना उचित सुरक्षा उपायों के प्रोडक्शन में अपडेट्स ऑटोमेट न करें।
वास्तविक वर्कलोड चलाने वाले सिस्टम्स पर अपडेट लगाने से पहले आपको मॉनिटरिंग, रोलबैक रणनीतियाँ, और टेस्टिंग की ज़रूरत होती है। Docker अपडेट्स चीज़ें तोड़ सकते हैं—प्रोडक्शन सिस्टम्स के लिए आपके पास मानवीय हस्तक्षेप होना चाहिए।
मासिक रिमाइंडर्स के जरिए मैन्युअल अपडेट मेरा पसंदीदा तरीका है, और मुझे कभी समस्याएँ नहीं हुईं।
निष्कर्ष
Docker को अपडेट करना इस समझ से शुरू होता है कि आप वास्तव में क्या अपडेट कर रहे हैं।
Docker Engine अपडेट्स, Docker Desktop अपडेट्स, और इमेज अपडेट्स—ये तीन अलग चीज़ें हैं जो आपके सिस्टम पर अलग-अलग प्रभाव डालती हैं। जो ज़रूरी है उसे जानें, अपने प्लेटफ़ॉर्म के लिए सही प्रक्रिया अपनाएँ, और बाद में टेस्ट करें। बस इतना ही।
अपने फ़ोन पर रिमाइंडर सेट करें। मासिक रूप से अपडेट्स जाँचें, सुरक्षा पैच को प्राथमिकता दें, और कुछ भी बदलने से पहले यह डाक्यूमेंट करें कि आप क्या चला रहे हैं। अपडेट्स पर तनाव नहीं होना चाहिए—वे नियमित रखरखाव का काम होना चाहिए।
प्रोडक्शन वातावरण के लिए, याद रखें कि आपके कंटेनर Docker के सही ढंग से काम करने पर निर्भर करते हैं। अपडेट्स को उसी सावधानी से लें जैसी आप किसी अन्य महत्वपूर्ण अवसंरचना परिवर्तन के लिए लेते हैं—सोच-समझकर, टेस्टिंग के साथ, और यदि कुछ गलत हो जाए तो रोलबैक प्लान के साथ।
अब आप जानते हैं कि Docker कैसे अपडेट करें—अगला कदम है हमारे Intermediate Docker कोर्स के साथ अपनी कंटेनर स्किल्स को आगे बढ़ाना। आप नेटवर्किंग, उन्नत कंटेनर इमेजेज़, और Docker Compose के बारे में सीखेंगे।