PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

प्रारंभिक डेटा के साथ docker पोस्टग्रेज कमिट्स पर कायम नहीं है

समस्या यह है कि Dockerfile पोस्टग्रेज "/ var/lib/postgresql/data" को वॉल्यूम के रूप में घोषित करता है। यह एक सामान्य निर्देशिका है जो छवियों द्वारा उपयोग की जाने वाली यूनियन फाइल सिस्टम के बाहर रहती है। वॉल्यूम तब तक जीवित रहते हैं जब तक कि कोई कंटेनर उनसे लिंक न हो जाए और उन्हें स्पष्ट रूप से हटा दिया जाए।

आपके पास कुछ विकल्प हैं:

  • --volumes-from का उपयोग करें नए कंटेनरों के साथ डेटा साझा करने का आदेश। यह केवल तभी काम करेगा जब एक समय में केवल एक चल रही छवि पोस्टग्रेज हो, लेकिन यह सबसे अच्छा समाधान है।
  • अपना खुद का डॉकरफाइल लिखें जो वॉल्यूम घोषित करने से पहले डेटा बनाता है। कंटेनर बनने पर इस डेटा को वॉल्यूम में कॉपी किया जाएगा।
  • एक एंट्रीपॉइंट या cmd स्क्रिप्ट लिखें जो रन टाइम पर डेटाबेस को पॉप्युलेट करता है।

इन सभी सुझावों के लिए आपको कंटेनर के चलने के बाद डेटा को प्रबंधित करने के लिए वॉल्यूम का उपयोग करना होगा। वैकल्पिक रूप से, आप अपना खुद का डॉकरफाइल लिख सकते हैं और केवल वॉल्यूम घोषित नहीं कर सकते हैं। फिर आप docker commit . का उपयोग कर सकते हैं डेटा जोड़ने के बाद एक नई छवि बनाने के लिए। यह शायद अल्पावधि में काम करेगा, लेकिन निश्चित रूप से ऐसा नहीं है कि आपको कंटेनरों के साथ कैसे काम करना चाहिए - यह दोहराने योग्य नहीं है और आप अंततः यूनियन फाइल सिस्टम में परतों से बाहर हो जाएंगे।

अधिक जानकारी के लिए कंटेनरों में डेटा प्रबंधन पर आधिकारिक डॉकर दस्तावेज़ देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं postgresql के लिए HikariCP को कैसे कॉन्फ़िगर करूं?

  2. कैसे सिंध () PostgreSQL में काम करता है

  3. Ecto Fragments . का उपयोग करके टाइमस्टैम्प में अंतराल जोड़ें

  4. PostgreSQL UNIQUE बाधा को कैसे लागू करता है/यह किस प्रकार की अनुक्रमणिका का उपयोग करता है?

  5. pyspark शेल में jdbc का उपयोग करके पोस्टग्रेज से कनेक्ट करने में सक्षम नहीं है