समस्या यह है कि आपके आवेदन/परियोजना (कंटेनर डोकर नहीं होस्ट मशीन में postgres सॉकेट फ़ाइल तक पहुँचने का प्रयास कर रही है)।
इसे हल करने के लिए एक -p
ध्वज का उपयोग करते समय postgres कंटेनर के लिए एक बंदरगाह की स्थापना की, या -v
ध्वज का उपयोग होस्ट की मशीन के साथ यूनिक्स सॉकेट साझा करने के लिए स्पष्ट रूप से एक टीसीपी/आईपी कनेक्शन के लिए पूछने के लिए या तो।
: नोट: -v
या --volume=
ध्वज का उपयोग मतलब है कि आप होस्ट मशीन और डोकर कंटेनर के बीच कुछ जगह साझा कर रहे हैं। इसका मतलब है कि अगर आपके पास अपनी मेजबान मशीन पर पोस्टग्रेर्स स्थापित हैं और इसके चलते आप शायद मुद्दों में भाग लेंगे।
नीचे मैं दिखाता हूं कि एक पोस्टग्रेस कंटेनर कैसे चलाया जाए जो टीसीपी/आईपी और यूनिक्स सॉकेट से सुलभ है। इसके अलावा मैं postgres
के रूप में कंटेनर नामकरण कर रहा हूं।
docker run -p 5432:5432 -v /var/run/postgresql:/var/run/postgresql -d --name postgres postgres
अन्य समाधान कर रहे हैं, लेकिन मैं इस एक सबसे उपयुक्त पाते हैं। अंत में यदि एप्लिकेशन/प्रोजेक्ट जिसे एक्सेस की आवश्यकता है, वह भी एक कंटेनर है, तो बस उन्हें लिंक करना बेहतर होता है।
धन्यवाद @ टोड्सडैम्पसन लेकिन ऐसा लगता है कि आपके द्वारा लिंक की गई त्रुटि समस्या नहीं है, फिर भी मैंने आपके द्वारा अनुशंसित इंडेक्स से पूर्व-कॉन्फ़िगर की गई छवि का उपयोग करने का निर्णय लिया है। मुझे एहसास हुआ कि मैंने अधिक जानकारी प्रदान नहीं की है, लेकिन क्या आपको शायद संदेह हो सकता है कि इस तरह के व्यवहार का कारण क्या हो सकता है? – Hevlastka
@ हेवलेस्टका मैं उत्सुक हूं: अगर यह उत्तर आपको समाधान प्रदान नहीं करता है, तो आपने इसे क्यों स्वीकार किया? मैं अभी एक ही मुद्दा मार रहा हूं, और यह एक स्वीकार्य उत्तर देखने में थोड़ा निराशाजनक है जो समस्या को हल नहीं करता है। – Mihai
@ मिहाई मैंने इसे एक उत्तर के रूप में स्वीकार कर लिया है क्योंकि इसने मुझे समाधान खोजने के लिए सही रास्ते पर रखा है। यह पता चला कि मैंने जो त्रुटि अनुभव की है वह वास्तव में एक फर्जी है जो इसके पीछे वास्तविक त्रुटि को छुपा रहा है। [आधिकारिक पोस्टग्रेज़ डॉकरफाइल] पर एक नज़र डालें (https://github.com/docker-library/postgres/blob/ed23320582f4ec5b0e5e35c99d98966dacbc6ed8/9.4/Dockerfile)। मेरे मामले में पोस्टग्रेस सर्वर कभी शुरू नहीं हुआ इसलिए मुझे एक कस्टम स्क्रिप्ट बनाना पड़ा जिसे ENTRYPOINT का उपयोग करके बुलाया गया था। – Hevlastka