डॉकर छवियों को फाइलसिस्टम परतों के रूप में संग्रहीत किया जाता है। Dockerfile में प्रत्येक कमांड एक परत बनाता है। आप docker commit
कुछ परिवर्तन ( docker run
संभवतः के माध्यम से ) करने के बाद कमांड लाइन से उपयोग करके भी परतें बना सकते हैं ।
इन परतों को डिफ़ॉल्ट रूप से संग्रहीत किया जाता है /var/lib/docker
। यद्यपि आप (सैद्धांतिक रूप से) चेरी को वहां से फाइलें ले सकते हैं और इसे एक अलग डॉक सर्वर में स्थापित कर सकते हैं, संभवतः डॉकर द्वारा उपयोग किए गए आंतरिक प्रतिनिधित्व के साथ खेलना एक बुरा विचार है।
जब आप अपनी छवि को आगे बढ़ाते हैं, तो ये परतें रजिस्ट्री में भेज दी जाती हैं (डिफ़ॉल्ट रूप से, जब तक आप अपनी छवि को किसी अन्य रजिस्ट्री उपसर्ग के साथ टैग नहीं करते) और वहां संग्रहीत किए जाते हैं। पुश करते समय, लेयर आईडी का उपयोग यह जांचने के लिए किया जाता है कि क्या आपके पास पहले से ही लेयर है या इसे डाउनलोड करने की आवश्यकता है। आप उपयोग कर सकते हैंdocker history
कि किन परतों (अन्य छवियों) का उपयोग किया जाता है (और, कुछ हद तक, किस कमांड ने परत बनाई है)।
डॉकटर रजिस्ट्री रजिस्ट्री को धकेलने के बिना छवि साझा करने के विकल्पों के लिए, आपके सबसे अच्छे विकल्प हैं:
docker save
एक छवि या docker export
एक कंटेनर। यह मानक आउटपुट के लिए एक टार फ़ाइल का उत्पादन करेगा, इसलिए आप कुछ ऐसा करना पसंद करेंगे docker save 'dockerizeit/agent' > dk.agent.latest.tar
। तब आप उपयोग कर सकते हैं docker load
या docker import
एक अलग होस्ट में।
अपनी निजी रजिस्ट्री होस्ट करें। - आउटडेटेड, टिप्पणियां देखें docker रजिस्ट्री छवि देखें । हमने एक s3 समर्थित रजिस्ट्री बनाई है जिसे आप आवश्यकतानुसार शुरू कर सकते हैं और रोक सकते हैं (सभी राज्य आपकी पसंद के s3 बाल्टी पर रखे गए हैं) जो सेटअप के लिए तुच्छ है। यह भी देखने का एक दिलचस्प तरीका है कि रजिस्ट्री को धक्का देने पर क्या होता है
Quay.io की तरह एक और रजिस्ट्री का उपयोग करें (मैंने व्यक्तिगत रूप से इसकी कोशिश नहीं की है), हालांकि डॉकटर हब के साथ आपकी जो भी चिंताएं हैं वे शायद यहां भी लागू होंगी।