मैं डॉकर का उपयोग करके एक ईएलके स्टैक चलाने का प्रयास कर रहा हूं। मुझे docker-elk मिला जो docker-compose
का उपयोग कर मेरे लिए पहले ही कॉन्फ़िगरेशन स्थापित कर चुका है।कंटेनर-लेखन योग्य होस्ट निर्देशिका कैसे माउंट करें?
मैं एक कंटेनर के बजाय मेजबान मशीन पर लोचदार खोज डेटा स्टोर करना चाहता हूं। प्रति डोकर-एल्क के README रूप में, मैं docker-compose.yml
के volumes
लाइन elasticsearch
करने के खंड कहा:
elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200"
- "9300"
volumes:
- ../../env/elasticsearch:/usr/share/elasticsearch/data
हालांकि, जब मैं docker-compose up
चलाने मैं:
$ docker-compose up
Starting dev_elasticsearch_1
Starting dev_logstash_1
Starting dev_kibana_1
Attaching to dev_elasticsearch_1, dev_logstash_1, dev_kibana_1
kibana_1 | Stalling for Elasticsearch
elasticsearch_1 | [2016-03-09 00:23:35,193][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: your kernel is buggy and you should upgrade
elasticsearch_1 | Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.data' (/usr/share/elasticsearch/data/elasticsearch)
elasticsearch_1 | Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/elasticsearch
elasticsearch_1 | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
... etc ...
../../env
में देख रहे हैं, elasticsearch
निर्देशिका वास्तव में बनाया गया था, लेकिन यह खाली था। अगर मैं ../../env/elasticsearch/elasticsearch
बनाता हूं तो मुझे /usr/share/elasticsearch/data/elasticsearch/nodes
के लिए एक्सेस त्रुटि मिलती है। अगर मैं /nodes
बनाता हूं तो मुझे /nodes/0
, आदि के लिए त्रुटि मिलती है ...
संक्षेप में, ऐसा लगता है कि कंटेनर में निर्देशिका पर लेखन अनुमति नहीं है।
मैं इसे अनुमति अनुमतियाँ कैसे प्राप्त करूं? मैंने chmod a+wx ../../env/elasticsearch
को आजमाया, और फिर यह अगली निर्देशिका बनाने का प्रबंधन करता है, लेकिन उस निर्देशिका में drwxr-xr-x
की अनुमति है और यह फिर से अटक जाता है।
मुझे इसे रूट के रूप में चलाने का विचार पसंद नहीं है।
'डोकर-लिखें रन --rm elasticsearch स्टेट -c"% यू% जी "/ usr/share/elasticsearch/आंकड़ों का उत्पादन क्या है '? – kojiro
@kojiro: मुझे 'अज्ञात कर्मचारी' – Claudiu