2016-04-06 9 views
6

के माध्यम से डेटा वॉल्यूम के साथ पोस्टग्रेस कंटेनर चलाएं मुझे मैक ओएस मशीन पर डेटा फ़ोल्डर के लिए वॉल्यूम सेट अप के साथ पोस्टग्रेस कंटेनर चलाने के साथ कोई समस्या है। मैं इसे इस तरह इस तरह भागने की कोशिश की:डॉकर-मशीन

docker run \ 
    --name my-postgres \ 
    -e POSTGRES_USER=admin \ 
    -e POSTGRES_PASSWORD=password \ 
    -e POSTGRES_DB=some_db_dev \ 
    -v $PG_LOCAL_DATA:/var/lib/postgresql/data \ 
    -d postgres:9.5.1 

हर बार जब मैं लॉग में निम्न परिणाम मिला:

* Starting PostgreSQL 
The files belonging to this database system will be owned by user "postgres". 
This user must also own the server process. 

The database cluster will be initialized with locale "en_US.utf8". 
The default database encoding has accordingly been set to "UTF8". 
The default text search configuration will be set to "english". 

Data page checksums are enabled. 

fixing permissions on existing directory /var/lib/postgresql/data ... ok 
initdb: could not create directory "/var/lib/postgresql/data/pg_xlog": Permission denied 
initdb: removing contents of data directory "/var/lib/postgresql/data" 

डोकर, डोकर-मशीन, virtualbox और boot2docker के संस्करण हैं:

docker-machine version 0.6.0, build e27fb87 
Docker version 1.10.2, build c3959b1 
VirtualBox Version 5.0.16 r105871 
boot2docker 1.10.3 

मैंने इस विषय के बारे में कई प्रकाशन देखा लेकिन उनमें से अधिकतर पुराने हैं। मैंने mysql के समान समाधान करने की कोशिश की थी लेकिन इससे मदद नहीं मिली।

शायद कोई मुझे अपडेट कर सकता है: क्या डॉकर-मशीन के माध्यम से डेटा वॉल्यूम के साथ पोस्टग्रेस कंटेनर चलाने के लिए कुछ समाधान मौजूद हैं?

धन्यवाद!

उत्तर

2

यदि आप मैक पर डॉकर-मशीन चला रहे हैं, तो इस समय, आप उस निर्देशिका में माउंट नहीं कर सकते जो आपके स्थानीय उपयोगकर्ता स्थान (/Users/<user>/) का अतिरिक्त कॉन्फ़िगरेशन के बिना नहीं है।

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

Mac OS => Linux Virtual Machine => Docker 
        ^------------------^ 
        Docker Can See VM 
    ^-----------------X----------------^ 
     Docker Can't See Here 

आप VirtualBox खोलते हैं, तो आप मेजबान वी एम के लिए अपनी स्थानीय मशीन पर अन्य माउंट (अर्थात साझा फ़ोल्डर) बना सकते हैं और फिर उन्हें उस तरह से उपयोग कर सकते हैं।

विषय पर विशेष जानकारी के लिए इस मुद्दे को देखें: https://github.com/docker/machine/issues/1826

मेरा मानना ​​है कि डोकर टीम आगामी विज्ञप्ति में इन क्षमताओं (एक देशी मैक संस्करण कम काम चल रहा है, खासकर जब से) जोड़ रहा है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^