एनईओ 4 जे के लिए एक डॉकर कंटेनर शुरू किया गया है प्रलेखन के अनुसार और निम्नलिखित कमांड का उपयोग करके ठीक से काम करना:
$ docker run \ --detach \ --publish=7474:7474 \ --publish=7473:7473 \ --publish=7687:7687 \ --volume=$HOME/neo4j/data:/data \ --volume=$HOME/neo4j/logs:/logs \ --volume=$HOME/neo4j/ssl:/ssl \ --ulimit=nofile=40000:40000 \ --name=myname-neo4j \ neo4j:3.1.1
जब मैं एक प्रदर्शन करने का प्रयास करता हूं neo4j-admin
डेटाबेस का डंप मुझे एक त्रुटि मिलती है:
$ docker exec -ti myname-neo4j bin/neo4j-admin dump --database=graph.db --to=/home/name/myname.dumpcommand failed: the database is in use -- stop Neo4j and try again
हालांकि, अगर नियो 4 जे प्रक्रिया बंद हो जाती है, जो डेटाबेस को मुक्त करने का एकमात्र तरीका प्रतीत होता है, तो कंटेनर बंद हो जाता है । यह डॉकर से अपेक्षित व्यवहार प्रतीत होता है । इसलिए, कॉल करना असंभव प्रतीत होता है neo4j-admin dump
डेटाबेस के उपयोग के बिना कंटेनर के भीतर से ।
डॉकर का उपयोग करते समय इसे कैसे हल किया जा सकता है?
1: कंटेनर बंद करो।
docker stop myname-neo4j
2: कंटेनर निकालें
docker rm myname-neo4j
3: कंटेनर को इंटरएक्टिव मोड (-इट) के रूप में विकल्प (डिटैच) के बिना चलाएं और शेल ( /बिन/बैश) को निष्पादित करें ।
docker run \--publish=7474:7474 \--publish=7473:7473 \--publish=7687:7687 \--volume=$HOME/neo4j/data:/data \--volume=$HOME/neo4j/logs:/logs \--volume=$HOME/neo4j/ssl:/ssl \--ulimit=nofile=40000:40000 \--name=myname-neo4j \-it \neo4j:3.1.1 \-c /bin/bash
अब आप नियो चलाने के बिना नियो 4 जे कंटेनर के अंदर हैं ।
4: जांचें कि नियो यूआरआई एंडपॉइंट पर जाकर नहीं है (http://yourhost:7474). आपको "कनेक्ट करने में असमर्थ" संदेश देखना चाहिए ।
5: अपना डेटाबेस डंप करें
docker exec -ti myname-neo4j bin/neo4j-admin dump --database=graph.db --to=/home/name/myname.dump
मैंने यह किया:
docker stop [neo4j container] docker run --name dump --entrypoint="/bin/bash" -it -v $HOME/neo4j/data:/data neo4j:3.1.1 -c "neo4j-admin dump --to=/data/db.dump" docker start [neo4j container]
फिर आप या तो कंटेनर को डंप कर सकते हैं और इसे पुन: उपयोग कर सकते हैं, या बस इसे हटा सकते हैं । एंट्रीपॉइंट और-सी पैरामीटर के साथ एक ही अवधारणा लोड प्रक्रिया के लिए लागू होगी ।
संयोग से अब एनईओ 4 जे 4.0 में ऐसा करना बहुत आसान है क्योंकि आप पूरे डॉकर कंटेनर को बंद किए बिना डेटाबेस को रोक और शुरू कर सकते हैं ।
इसलिए यदि हम ' फू ' नामक डेटाबेस का डंप लेना चाहते हैं, तो हम निम्नलिखित कार्य करेंगे:
STOP DATABASE foodocker exec -it our-neo4j-container neo4j-admin dump --database=foo --to=/tmp/foo.db.dumpdocker cp our-neo4j-container:/tmp/foo.db.dump .START DATABASE foo
ब्लॉग पोस्ट के रूप में भी लिखा गया है - https://markhneedham.com/blog/2020/01/28/neo4j-database-dump-docker-container/